利率显示屏设计.doc_第1页
利率显示屏设计.doc_第2页
利率显示屏设计.doc_第3页
利率显示屏设计.doc_第4页
利率显示屏设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机系统课 程 设 计成绩评定表1 概述41.1 研究背景41.2 设计思想及基本功能42 总体方案设计42.1 方案选取42.2 系统框图52.3 总体方案设计63 硬件电路设计63.1 电源电路63.2 晶振电路73.3 复位电路83.4 键盘电路93.5 显示电路103.6 电路分析144 系统软件设计144.1 主程序软件设计144.2 键盘程序设计154.3 按键功能程序164.4 中断程序175 系统调试196 实验总结21参考文献22附录1 系统原理图23附录2 键盘示意图24附录3 系统程序251 概述1.1 研究背景随着科技的发展,人们对物质文明和精神文明需求的不断增长, 银行管理水平和形象要求也在不断提高。计算机不断更新和银行利率、汇率的不断变化, 以前那种靠手工写牌的时代己不适应现代的需要,各类银行迫切要求采用电子显示屏来显,为此我们设计了利用LED数码管显示,并可以进行数据修改的利率显示屏。1.2 设计思路及基本功能运用数码管显示代替人工手写,并能进行修改,能给银行管理带来很大的方便,在设计时尽量简化电路,用最简单的电路来实现其功能。其基本功能是能通过数码管显示银行利率,可以进行利率显示的修改。2 设计总方案2.1 方案选取 单片机在各种电子产品中的应用已经越来越广泛,很多的电子产品利用单片机所取得的便利得到了人们的好评,针对单片机的利率显示控制系统的要求,实现的方案有: (1)用LED矩阵显示; (2)用数码管显示; (3)用彩屏显示。但是成本较高,所以不采用此方案。 下面是LED矩阵显示与数码管显示的效果。 图2-1 LED显示的利率显示屏 图2-2 数码管显示的利率显示屏 在本次设计中,选取第二种方案,此方案成本低,操作简单。2.2 系统框图 方案二的系统框图为: 图2-3 系统框图2.3 总体设计方案利率显示屏在显示的同时也需要人为控制,银行利率会不断变化,显示屏也需要随利率变化而变化,这就需要对显示屏的控制。 图2-4 显示屏控制结构图3 硬件电路设计3.1 电源电路单片机正常工作电压为5V,因此设计的电源电路主要是提供单片机工作电压。图3.1是为单片机提供电压的电源电路。在这个电路中采用了三端集成稳压器LM7805,可以输出5V的直流电压以供给单片机。 图3-1 电源电路3.2 晶振电路电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。通过基准频率来控制电路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出时钟信号。片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz24MHz之间选取。C1、C2是反馈电容,其值在20pF100pF之间选取,典型值为30pF。本电路选用的电容为30pF,晶振频率为12MHz。 振荡周期; 机器周期 指令周期。XTAL1接外部晶体的一个引脚,XTAL2接外晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端。采用外部振荡器时,对HMOS单片机,该引脚接外部振。在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。这一特定频率就是石英晶体的固有频率,也称谐振频率。石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,以便使MCS-51片内的OSC电路按石英晶振相同频率自激振荡。通常,OSC的输出时钟频率fOSC为0.5MHz-16MHz,典型值为12MHz或者11.0592MHz。电容C1和C2可以帮助起振,典型值为30pF,调节它们可以达到微调fOSC的目的。 图3-2 时钟电路3.3 复位电路复位电路的主要功能是使单片机进行初始化,在初始化的过程中需要在复位引脚上加大于2个机器周期的高电平。复位后的单片机地址初始化为0000H,然后继续从0000H单元开始执行程序。在复位电路中提供复位信号,等到系统电源稳定后,再撤销复位信号。图3-3 复位电路3.4 键盘电路在本设计中,键盘主要用于输入显示数据和修改显示数据,还有需要修改的项,是人为控制该系统的主要部件。在本次设计中,采用的键盘是4*4矩阵键盘,为了提高CPU的工作效率,采用了中断扫描工作方式。即只有在键盘有键按下时,发出中断请求,CPU响应中断请求后哦,转入中断服务程序,进行键盘扫描,识别键码,中断扫描工作方式的一种简易键盘电路图如下: 图3-4 键盘电路图 用P1口高4位与低4为构成行线与列线,将P1.4-P1.7作为键输出线,P1.0-P1.3为扫描输入线。扫描方式:给P1口赋初值,让P1.0-P1.3为1,P1.4-P1.7为0,无键按下时,P1.0-P1.3的与门输出为1,当有键按下时,P1高4位有线接入低4位,使得低4位其中一位为0,导致与门输出为0,开启中断,进入中断扫描程序,扫描时,先让P1.4为0,其余3位为1,扫描低4位,逐位检查看是否为0,为0赋键值,没有为0的跳到下一行,让p1.5为0,其余3位为1,在进行扫描,没有0再跳下一行,最终会检测出按下键的键值。 键盘具有16个键,其中有0-9十个个数字键,一个确定修改键,一个复位键,4个需要修改项的键。3.5 显示电路 显示电路主要用于给出的利率数据,在本次设计中采用LED数码管进行显示是因为LED数码管具有以下几个优点:(1)能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容。(2)发光响应时间极短(0.1s),高频特性好,单色性好,亮度高。(3)体积小,重量轻,抗冲击性能好。数码管有共阴极与共阳极数码管,在这里采用共阴极数码管。 图3-5 LED数码管在电路中,将数码管的a、b、c、d、e、f、g端分别与74hc164的D0-D6端连接,因为采用的共阴极数码管,所以当有1输入时,对应的二极管就会发光,编写好需要的数据代码后输入就能得到需要显示的数据了。表1 LED字型码 字形dp g f e d c b a 字型码 010111111BFH 11000011086H 211011011DBH 311001111CFH 411100110E6H 511101101EDH 611111101FDH 71000011187H 811111111FFH 911101111EFH本次用到16个数码管,每组4个,分为4组,每组由4个74hc164串接起来。每个164接一个数码管每组4个164采用公共cp端、公共复位端,可以对每组进行统一复位和给予时钟信号。 图3-6 74HC164164引脚功能图3-7 引脚功能 74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。 用164与数码管连接的显示电路如下图:图3-8 显示电路3.6 电路分析 在系统电路中,主要是键盘电路和显示电路,键盘电路是由单片机P1口接出,由高4位与低4位组合,并接到外部中断口P3.2,在前面的键盘电路已经分析了。 在显示电路中,可以显示4组数据,每组由4个数码管显示,分别与4个164连接,第一个164的数据输入端由串行接口P3.0接入,第二个的数据输入点与第一个的Q7端相接,第三个也与第二个Q7端相接,第四个也如此,就可以实现输入的数据一位一位的往后移动。每组164的CP端是串行口P3.1和P2口低四位的其中一位相与后输入。串行口在方式0工作时,P3.0输出数据,P3.1输出对应脉冲,在与P2口的一位相与后就可以控制脉冲的输入了,当相与位为0时,将脉冲关断,相与位为1时,开启脉冲,就可以对该组进行数据输入了,否则在没有脉冲的情况下,数据是无法输入的。每组164的复位端与P2的高4位其中一位相接,当该位输入低电平时,就可以使该组复位。所以可以得到P2口高四位用来控制每组数码管的复位,低四位用来开启与关断数据输入。由于银行利率通常是百分数,都保留了两位小数,所以在接线时,每组数码管的第一个第二个第四个的dp端都没有接,所以他们的小数点都不会亮,只有第三个的dp端与Q7相接了,所以只有第三个数码管的dp再有数据给他的时候会一直发光。在整体的看上去就可以让输入的数为有两位小数的形式了。4 系统软件设计 在设计中,系统软件包括,主程序、键盘扫描程序、中断程序、显示程序、延时子程序等程序组成,每个部分都是不可或缺的。系统程序在附录中查看。4.1 主程序软件部分 主程序需要对单片机进行初始化、设置串行口功能、中断工作方式、对某些引脚赋予初值,并且需要无限循环下去等待中断。图4-1 主程序流程图4.2 键盘程序设计 本次设计采用的是中断工作方式,只要有键按下时,就会发出中断申请,相对于其他方式,不需要一直不断地扫描看是非有键按下。所以键盘程序包含在中断程序中。 图4-2 键盘扫描程序流程图 程序只在有中断请求后执行。4.3 按键功能程序在设计中设定的当键值小于10时为数值输入和显示。下面给出的程序流程图为键值小于10时的流程图。图4-3 数字键程流程图 在数据输出到164后,还不一定可以显示出来,还需要功能键使输入的数据能够显示出来。 当键值不小于10时,键值为12-15,分别可以控制一组让其显示出数据,需要在开始输入数据之前按下,按下后会先清除原有的数据,之后输入数据就可以让输入的数据显示出来。键值为10时为复位功能,按下将使全部数码管复位熄灭。键值为11为确定修改键,按下后保持修改的数据,并且之后再按数据键将不影响显示的数据。4.4 中断程序 中断程序为此设计的主要程序,其中包含了键盘扫描程序、键功能赋予程序。 图4-4 中断程序流程图在中断程序开始时,需要关闭中断,以免中断还没有执行完时中断再次出现,然后进行保护现场。接着跳到扫描程序、功能赋予程序,当前面的程序执行完后,恢复现场,还需要在调入延时程序。如果没有延时程序,再一次按键按下后,由于每次中断执行的速度很快,所以按一次键会相当于按了很多次,所以需要调入延时程序,使中断后恢复的时间变久一点,能够达到按一次中断一次的效果。调入延时程序后在开中断,然后返回主程序,等待下一次中断。5 系统调试 调试时,由于设计用到的164、数码管较多,在实验室不能调出来,说以采用proteus仿真调试。在调试中,经过对线路与程序的反复修改,最终终于调试成功。 再输入数据时的效果图如下:按下0按下01按下012按下0123图5-1 输入效果图总体仿真线路图:图5-2 仿真线路图6 实验总结 在这两个星期的设计中,通过对各种资料的查询,与同学们的相互请教,终于完成了利率显示屏的设计。回想在设计时走了些弯路,在对键盘的设计上,还是应该把键盘的键按下后怎么变化理解清楚,然后在写程序时会比较容易写出来,资料也只能作为参考,不能生拉硬套。不然理解不够透彻到后来写程序也可能会出错。再设计硬件电路时也应该想着程序应该怎么写,再结合程序设计硬件电路,这样在设计中会取到事半功倍的效果。在程序设计时,用汇编语言编写需要对单片机内部如何工作的原理理解清楚,以及对汇编语言的熟练。在编写时,通过我对课本的反复翻阅,加深了对单片机的理解并且能够对汇编语言掌握更加熟练,这样的效果是比在课堂上学习的效果更加的好。在我的设计中,虽然完成了,可以通过设计显示基本的利率信息,但是他的功能也不够完好。还有很多地方可以更加完善,但是要想做到,需要我对自己的能力进行更多的提高。在设计中,还用到了许多软件,并且学习到了它们的使用,这对于我也是个很大的收获,其中有protel、visio、proteus仿真、keil开发软件等,这些软件对于我们的专业都是非常有用的。这些都为我以后能够更好的设计打下了稳固基础。参考文献1 余永劝等. 单片机应用系统的功率接口技术M . 北京::北京航空航天大学出版社, 1992. 79- 842 张迎新等.单片微型计算机原理、应用及接口技术.北京:国防工业出版社,1993.123 王志慧, 李树华. 单片机控制实时时钟的设计与实现 J . 内蒙古大学学报( 自然科学版) , 1999, 30( 6) ::766768.4 杨家成单片机原理与应用及C51程序设计北京:清华大学出版社,2007附录1 系统总原理图附录2 键盘示意图活期半年一年两年确定复位9876543210附录3 系统程序 ORG 0000H ;主程序入口 LJMP MAIN ORG 0003H ;外部中断0入口 LJMP EXINT EXINT: CLR EA ;关中断 PUSH PSW ;保护现场 PUSH ACC LJMP SUBDISUB: CLR P1.7 ;让P1高4位回到0 CLR P1.6 CLR P1.5 CLR P1.4 POP ACC ;恢复现场 POP PSW LCALL DELAY ;延时 LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY SETB EA ;开中断 RETI ;返回主程序MAIN: MOV SP,#30H CLR IT0 ;设定中断工作方式 SETB EA ;允许总中断 SETB EX0 ;允许外部中断0 MOV SCON,#00H ;设定串行口工作方式 MOV P1,#0FH MOV P2,#0F0HHERE: SJMP HERE ;等待中断SUB: ;扫描按下按键 SETB P1.7 SETB P1.6 SETB P1.5 SETB P1.4K1: CLR P1.4 LCALL L1 JC K2 ADD A,#00H LJMP DL0K2: SETB P1.4 CLR P1.5 LCALL L1 JC K3 ADD A,#04H LJMP DL0K3: SETB P1.5 CLR P1.6 LCALL L1 JC K4 ADD A,#08H LJMP DL0K4: SETB P1.6 CLR P1.7 LCALL L1 ADD A,#0CHDL0: ;给功能键赋予功能 CJNE A,#0AH,DL1DL1: JC DH0 ;数字键跳至DH0 CJNE A,#0AH,DL2 CLR P2.4 CLR P2.5 CLR P2.6 CLR P2.7 SETB P2.4 SETB P2.5 SETB P2.6 SETB P2.7 LJMP DISUBDL2: CJNE A,#0BH,DL3 CLR P2.0 CLR P2.1 CLR P2.2 CLR P2.3 LJMP DISUBDL3: CJNE A,#0CH,DL4 CLR P2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论