




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业设计(论文)课题数码管时钟类 别毕业设计说明 毕业设计论文系 科电子工程系专 业应用电子技术 应用电子技术/应用英语电气自动化技术 电气自动化技术/市场营销计算机应用技术 计算机应用技术/广告设计与策划班 级电气061d姓 名完成日期指导教师基于89c2051单片机数码管时钟的设计摘要本设计论文介绍了选用at89c2051单片机来控制数码管时钟的硬件结构与软件设计,给出了汇编源程序。此数码管时钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,时、分调整可通过触摸按键来实现。电路由led数码管、时钟电路、复位电路等部分组成。用晶体振荡器产生时间标准信号,这
2、里采用石英晶体振荡器。根据60秒为1分、60分为1小时、24小时为1天的计数周期,分别组成两个60进制(秒、分)、一个12进制(时)的计数器。构成秒、分、时的计数,实现计时的功能。显示器件选用led七段共阳极数码管,在9012输出的驱动下,显示出清晰、直观的数字符号。针对数字钟会产生走时误差的现象,在电路中就设计有校准时间功能的电路。关键词:led数码管;at89c2051;时钟电路;复位电路 design of nixie tube clock based on at89c2051 abstractthe paper mainly presents the hardware and soft
3、ware design of the digital clock using at89c2051.the source program using assemble language is given. this digital clock is a time-device , which can display “hour”,” minute”,“second”. its time period is 24 hours and the full scale of the display is 23 hours, 59miutes,59 seconds and it has the funct
4、ion of time adjustment . the circuit constants of the clock pulas generator, the clock counter, decoding drive circuit, digital display circuit and the time adjustment circuit. it generates time standard signal using crystal oscillator, here is the quartz crystal oscillator. because 60 seconds is 1
5、minute, 60 minute is 1 hour and 24 hours is 1 day. we uses two counters of 60 parts and counter of 60 parts and a counter of 24 parts separately to constitute the count of percentage of second , second, minute , and hour .so it can realize time function . display comport selects six-segment numerica
6、l tube led. driven by decoding output circuit, it can display showing clear and intuitive figures. due to walking error of digital clock, we design time calibration circuit in the system. key word: nixie tube clock; at89c2051; clock display circuit; reset circuit目录摘要iabstractii引言11 数字钟的功能实现与设计方案21.1
7、数字钟的设计要求及功能21.2 方案的确定22 数字硬件系统设计32.1数字钟的硬件电路的设计32.1.1 系统时钟电路的设计32.1.2 系统复位电路的设计32.1.3 按键与按钮电路设计42.1.4数字钟的显示电路设计42.2 数码管的结构52.2.1 数码管的内部结构52.2.2 数码管的外部结构53系统主要程序的设计63.1 主程序63.2 显示子程序73.3 定时器t0中断服务程序73.4定时器t1中断服务程序83.5调时功能程序94 硬件电路的焊接94.1 电烙铁使用94.2 对焊接点的基本要求94.3 焊接过程94.4 在调试中遇到的问题105软件电路的调试105.1软件电路调试
8、105.2 系统程序调试13总结15参考文献- 1 -致谢- 2 -附录1- 3 -附录2 (作品成品照片)- 4 -附录3(软件程序清单)- 5 -引言20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对于我们每个人来说都是很宝贵的,市场上出现的各式个样的钟表都很受消费者的欢迎和喜爱,钟表的数字化给人们生产生活带来了极大的方便,满足大家的需求,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广
9、播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等等,所有这些,都是以钟表数字化为基础的。本设计克服了机械式钟表的诸多缺点,而且在常规电子式钟表的功能上加上了省电模式;其次,利用单片机的精确计数功能,可对时、分、秒进行精确的计数。1 数字钟的功能实现与设计方案1.1数字钟的设计要求及功能利用at89c2051 来实现六位led数码管的时钟,可以24h(小时)计时方式,分别显示时、分、秒,时分调整可通过触摸按键来实现。数码管时钟电路,秒表/时钟计时器采用at89c2051单片机最小化应用设计,采用共阳七段led显示器,利用p3.7口的s1来对显示的时、分、秒进行调整。在操
10、作键时,其一对触点闭合或断开,将引起电压的变化。此时,单片机可根据电压的变化来判断键的通断状态。采用12mhz晶振可有利于提高秒计时的精确性。1.2 方案的确定led数码管时钟电路采用24h计时方式,时、分、秒用六位数码管显示。该电路采用at89c2051单片机,使用3v电池供电,只使用一个按键开关即可进入调时、省电(不显示led数码管)和正常显示三种状态。为了实现led显示器的数字显示,可以采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等硬件,接口复杂一些,考虑时钟显示只有六位,且系统没有其它复杂的处理任务,所以决定采用动态扫描法实现led的显示。单片机采用易购的at89c2051
11、系列,这样单片机可具有足够的空余硬件资源实现其它的扩充功能,如考虑到要使用电池供电的话可采用lv系列单片机。秒表/时钟计时器电路系统的总体设计框架如图1 所示。图1 硬件系统的总体设计框架2 数字硬件系统设计 2.1数字钟的硬件电路的设计数码管时钟电路接线图如图2所示。其采用at89c2051单片机最小化应用设计,led显示采用动态扫描方式实现,p1口输出段码数据,p3.0p3.5口作扫描输出,p3.7接按钮开关。为了提供led数码管的驱动电流,用三极管9012作电源驱动输出。图2硬件电路2.1.1 系统时钟电路的设计 y、c1、c2组成振荡电路,和内部的振荡电路共同构成单片机的工作基准时钟电
12、路。它含有单片机数字电路系统的工作基准,为数字电路提供稳定的时钟信号。y为晶体,它的标称频率越高,数字电路系统的工作频率也就越高。系统时钟电路如图3所示。图3系统时钟电路2.1.2 系统复位电路的设计 电路中c3、r15组成复位电路,该电路采用的是上电复位,即整个系统从新开始工作。复位电路有很多种,分别可由不同的元件组成,可靠性也各有不同,本设计采用简单的上电复位。如图4所示。图4复位电路2.1.3 按键与按钮电路设计 本设计中只使用一个按键开关set,来对时、分、秒进行调整。set还作为复位按钮,也可以进入省电(不显示led数码管)和正常显示三种状态。图5所示为按钮电路。图5 按钮电路2.1
13、.4数字钟的显示电路设计驱动数码管采用动态显示。动态驱动是将所有的数码管的8个显示笔画“a,b,c,d,e,f,g,dp”的同名端连在一起,另外每个数码管中的公共极com增加位选通控制电路,位选通由各自独立的i/o线控制,通过分时轮流控制各个数码管的com端,就使各个数码管轮流受控制显示。r1-r8是p1口的上拉电阻, p端口必须外接上拉电阻才能正常输出“0”和“1”电平,保证p1端口所接的led数码管能够正常显示数字,和软件相配合来驱动数码管显示时、分、秒。该显示电路如图6所示。图6显示电路2.2 数码管的结构2.2.1 数码管的内部结构数码管的结构有单个数码管和集成数码管(即一个封装内至少
14、有两个数码管集成在一起)两种,结构图如图7 所示,其中(a)为数码管的引脚图,有共阴极和共阳极两种。本设计采用共阳极数码管,其内部结构图如图(b)所示。它们都是由基本的7个条状的发光二极管(led)排列而成的,可实现数字“0-9”及少量字符的显示。另外,为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8个led组成,把这些发光二极管命名为“a、b、c、d、e、f、g、dp”,对应引脚如图 7 所示。图7 数码管的内部结构与引脚图2.2.2 数码管的外部结构数码管的外部结构图,如图 8 所示。图 83系统主要程序的设计3.1 主程序本设计中计时采用定时器t0中断完成,其余状态循环调用显
15、示子程序,当p3.7端口开关按下时,转入调时功能程序。其主程序执行流程见图 9 所示。显示单元清零t0、t1设为16位计数器模式允许t0中断调用显示子程序p3.0=0?进入调时程序ny开始图 9 主程序流程图3.2 显示子程序数码管显示的数据存放在内存单元70h75h中,其中70h71h存放秒数据,72h73h存放分数据,74h75h存放时数据,每一地址单元内均为十进制bcd码。由于采用软件动态扫描实现数据显示功能,显示用十进制bcd码数据的对应段码存放在rom表中,显示时,先取出70h75h某一地址中的数据,然后查得对应的显示用段码从p1口输出,p3口将对应的数码管选中供电,就能显示该地址单
16、元的数据值。为了显示小数点及“-”“a”等特殊字符,在显示计时时采用不同的显示子程序。3.3 定时器t0中断服务程序定时器t0用于时间计时。定时溢出中断周期设为50ms,中断累计20次(即1s)时对秒计数单元进行加1操作。时钟计数单元地址分别在70h71h(秒)、76h77h(分)、78h79h(时),7ah单元内存放“熄灭符”数据(#0ah)。在计数单元中采用十进制bcd码计数,满60(秒表功能时有100)进位,t0中断服务程序执行流程见图10。保护现场1秒到?秒单元加1=60s?秒单元清零,分加1=60分?分单元清零,时加1=24h?时单元清零恢复现场, 中断返回 n n n nyyyyt
17、0中断图10 t0中断服务程序执行流程图3.4定时器t1中断服务程序t1中断服务程序用于指示调整单元数字的亮闪,在时间调整状态下,每过0.3秒,将对应单元的显示数据换成“熄灭符”数据(#0ah)。这样,在调整时间时,对应调整单元的显示数据会间隔闪亮。3.5调时功能程序调时功能程序的设计方法是:按下按键,若按下时间小于1s,进入省电状态(数码管不亮,时钟不停),否则进入调分状态,等待操作,此时计时器停止走动。当再次按下按钮时,若按下时间小于0.5秒,则时间加1min;若按下时间大于0.5s,则进入小时调整状态。在小时调整状态下,当按键按下的时间大于0.5s时退出调整状态,时钟继续走动。led数码
18、管时钟电路的完整源程序见附录3。4 硬件电路的焊接4.1 电烙铁使用1 根据焊接对象合理选用不同类型的电烙铁(选择尖头的电烙铁)。2 使用过程中不要任意敲击电烙铁头,以免损坏。内热式电烙铁连接杆钢管壁厚度只有 0.2mm ,不能用钳子夹以免损坏。在使用过程中应经常维护,保证烙铁头挂上一层薄锡。4.2 对焊接点的基本要求1 焊点要有足够的机械强度,保证被焊件在受振动或冲击时不致脱落、松动。2 焊接可靠,具有良好导电性,必须防止虚焊。3 焊点表面要光滑、清洁,焊点表面应有良好光泽,不应有毛刺、空隙,无污垢,尤其是焊剂的有害残留物质,要选择合适的焊料与焊剂。4.3 焊接过程1 焊前准备首先要熟悉所焊
19、电路板的图,并按图纸配料,检查元器件型号、规格及数量是否符合图纸要求,并做好装配前元器件引线成型等准备工作。2 焊接顺序元器件装焊顺序依次为:电阻器、电容器、晶振、三极管、集成电路等其它元器件为先小后大。3 对元器件焊接要求(1)电阻器焊接按原理图将电阻器准确装到规定位置。要求标记向上,字向一致。装完同一种规格后再装另一种规格,尽量使电阻器的高低一致。(2)电容器焊接将电容器按图装入规定位置,并注意有极性电容器其“”与“”极不能接错。 (3)三极管焊接注意e、b、c三引线位置插接;焊接时间尽可能短,焊接时用镊子夹住引线脚,以利散热。焊接大功率三极管时,若需加装散热片,应将接触面平整、打磨光滑后
20、再紧固,管脚与电路板上需连接时,要用塑料导线。(4)集成电路焊接首先按图纸要求,检查型号、引脚位置是否符合要求。焊接时先焊边沿的二只引脚,以使其定位,然后再从左到右自上而下逐个焊接。4.4 在调试中遇到的问题 1 本设计电源是采用3v直流电源直接供电,故在硬件电板的焊接中直接采用3v电源供电。2 在对软件电路仿真时,电路的输出电压较低,致使电路软件不能达到预定效果。经过检查,是三极管的型号和引脚接错。3 在对各元器件的检查发现,由于硬件电路的焊接过程中的疏忽。个别色环电阻阻值与要求有差别,阻碍了硬件电路的调试,经过仔细核对,排除了这些问题。对于电容器、三极管露在印制电路板面上多余引脚均需齐根剪
21、去。5软件电路的调试5.1软件电路调试本设计是采用at89c2051单片机控制led数码管显示电路的,其操作步骤如下:(1) 添加元件到元件列表中本设计要用到的器件有:元件中的单片机芯片at89c2051、电阻resistor 、数码管7seg-mpx-ca-blue、按键开关button、电源power、地线ground、示波器oscilloscope。在模型选择工具栏中选 元件 (默认),单击 p 按钮,出现挑选元件窗口,如图 11 所示。图 11 挑选元件窗口图将元器件添加到编辑窗口可以在左上角的关键字搜索栏keywords中输入,例如输入at89c2051,即可在results栏中筛选
22、出该名称或包含该名称的器件,双击results栏中的名称 at89c2051 即可将其添加到对象选择器。同样的方法放入7seg-mpx-ca-blue、按键开关button等。(2) 将元件放入原理图编辑窗口:在元件列表中左键选取at89c2051,在原理图编辑窗口中单击左键,这样at89c2051就被放到原理图编辑窗口中了。同样放置其它各元件。如果元件的方向不对,可以在放置以前用方向工具转动或翻转后再放入;如果已放入图纸,可以选定后,再用方向工具或块旋转工具转动。左键选择模型选择工具栏中的终端接口图标: 从模型中挑选出地线-ground和电源-power,并在原理图编辑窗口中左击放置到原理图
23、编辑窗口中。添加示波器:左键选择模型选择工具栏中的虚拟仪器图标,左键选择oscilloscope,并在原理图编辑窗口中左击,这样示波器就被放置到原理图编辑窗口中了。(3)连线按样图绘制电路连线,如图 12 所示。图 12 接线图(4)仿真对于单片机需要下载程序后才能运行,所以要将事先准备好的仿真程序调试文件下载到单片机芯片中。本设计用的是:dianzishizhong.hex。先右击at89c2051再左击,出现edit component 对话框,如图 13 所示。图 13在program file中单击出现文件浏览对话框,找到dianzishizhong.hex文件,单击“确定”即将仿真程
24、序装入单片机,单击ok退出。然后单击开始仿真,此时可以看到程序的运行结果如图 14 所示。单击分别可以暂停/终止仿真的运行。图14 显示结果图注:仿真时,元件引脚上的红色代表高电平,蓝色代表低电平。仿真波形如图 15 所示。图15 波形图5.2 系统程序调试软件调试在wave e2000编译器下进行,该编译器对源程序进行仿真编译,把.asm文件加入模块文件,出现图16所示的对话框。将所加入的模块保存,然后选择“工具菜单编译”。 编译通过后生成.hex文件,图 17 所示的为程序软件仿真通过的结果图。图16图17 程序仿真结果图总结本课题设计总体上来说是顺利完成了,但由于自己的理论知识和实践操作
25、水平有限,致使作品所实现功能的过程中出现了很多问题,不过经过仔细的核对排查,解决了很多设计时出现的问题。在设计中我们小组考虑了多种硬软件实现方案,通过比较并论证了采用单片机at89c2051型号是合理、而又最为经济的;在系统实现阶段,详细论述了整个控制系统的流程;在系统调试阶段,详细介绍了与单片机配套的调试软件(wave软件和proteus isis软件);在整机联调阶段,由于焊接水平有限和部分零件的参数不匹配从而方面出现了很多问题(led不显示数字、数字以乱码形式出现等等)。以下是我们所遇到的具体问题:原设计电源是用+5v直流电源,用小型变压器来实现将220v交流电压整流成+5v的直流电压。
26、由于在选择变压器的时候没有注意额定电流的大小,所以硬件电路没有任何显示。发现这个问题后,我们就把usb接口接到电脑上的usb接口后,有显示。但显示出来的是乱码,而且是随机乱码,经过几遍的硬件电路检查,线路连接方面没有问题。我们也分析了一下原因:由于所选择的变压器型号有误,所以电路中所流过的电流太大,而导致一些元器件损坏了。在对电路进行软件仿真的时候,也遇到过一些问题。我们仿真软件是用proteus isis软件进行硬件电路仿真,出现的主要问题就是所选择的元器件的型号和设置的参数问题,因为所选择的元件库有很多,可供选择的型号也很多,虽然元器件的图形符号一样,但选择的型号要求与原理图上的要求不匹配
27、,致使编译出来的结果就不一样。我们第一次原理图仿真出来出现了好多错误,经过仔细的核对,排除了这些问题。用伟福软件进行程序的编译,在程序调试过程中,在设计过程中没有过多的注意细节问题,比如说在立即数前忘了加#,而导致程序在编译的过程中出现了错误等等。由于以上软件,我们都是初次使用,所以在使用过程中出现了以上种种问题。不过经过仔细的核对排查,解决了很多设计时出现的问题。所以我们认为在我们未来的生活或工作当中,无论做什么事情,都要有认真仔细的态度,以免造成不可挽回的损失。参考文献参考文献内容1 王幸之. at89系列单片机原理与接口技术. 北京:航空航天大学出版社,20042 李念强. 单片机原理及
28、应用. 北京:机械工业出版社,20073 何桥. 单片机原理及应用. 北京:中国铁道出版社,20044 胡健. 单片机原理及接口技术实践教程. 北京:机械工业出版社,20055 朱宇光. 单片机应用新技术教程. 北京:电子工业出版社,20006 刘大茂. 单片机原理及应用. 上海:上海交通大学出版社,20017 马家辰. 单片机原理及接口技术. 哈尔滨:哈尔滨工业大学出版社,20018 李建忠. 单片机原理及应用. 西安:西安电子科技大学出版社,20029 杨将新. 单片机程序设计及应用. 北京:电子工业出版社,2006致谢在离校之际,借这毕业论文的最后一页,表达对老师们的谢意。本次毕业设计是
29、在路桂明老师的精心指导下完成的。从课题选择、方案论证到具体设计和调试,无不凝聚着路老师的心血。平时,路老师对我们的设计要求严格、也给了我们相当独立的空间。设计的过程是不简单的,不论是在做作品还是在写论文方面.正因为它的不简单,使我明白了如果真的要做好一件事也是要付出辛勤和汗水的,世界上没有不劳而获的事,只有自己努力过了才能体会其中的乐趣。当然设计的成功并不是我一个人的功劳,在这里首先要感谢的是我的指导老师路老师。路老师这段时间课挺多,但在我们做毕业设计时还不时的关心我们的进程,给我们一些建议,才使得设计顺利成功。同时,我要感谢课题组的各位同学,张小磊、缪静华。在毕业设计的短短2个月的时间里,他
30、们给我提出了很多宝贵的意见,给了我不少帮助还有工作上的支持,在此也真诚的谢谢他们。本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向南通职业大学电子工程系的全体老师表示由衷的谢意,感谢他们三年来的辛勤栽培。即将结束三年的大学生活,相信等待我的是一片充满机遇、风险与快乐的土地。 附录1材料清单器件名称数量单价(元)总数(元)基本功能部分万用板11010at89c2051(cpu)155数码管616按钮10022晶振1080825v 10f电容2020430pf电容20102
31、9012三极管602124.7k 电阻6021210k电阻10022导线2芯片插槽10202合计31附录2 (作品成品照片) 附录3(软件程序清单);*; at89c2051秒表/时钟程序 ;*; 定时器t0、t1溢出周期为ms,t0为秒计数用,t1为调整时闪烁用,; p3.7为调整按钮,p1口为字符输出口,采用共阳显示管。;*; 中断入口程序 ;* org 0000h ;程序执行开始地址 ljmp start ;跳到标号start执行 org 0003h ;外中断0中断程序入口 reti ;外中断0中断返回 org 000bh ;定时器t0中断程序入口 ljmp intt0 ;跳至intt0
32、执行 org 0013h ;外中断1中断程序入口 reti ;外中断1中断返回 org 001bh ;定时器t1中断程序入口 ljmp intt1 ;跳至intt1执行 org 0023h ;串行中断程序入口地址 reti ;串行中断程序返回;* ; 主程序 ;* start: mov r0, #70h ;清70h-7ah共11个内存单元 mov r7, #0bh ;cleardisp: mov r0, #00h ; inc r0 ; djnz r7, cleardisp ; mov 20h,#00h ;清20h(标志用) mov 7ah,#0ah ;放入“熄灭符数据” mov tmod,#1
33、1h ;设t0、t1为16位定时器 mov tl0,#0b0h ;50ms定时初值(t0计时用) mov th0,#3ch ;50ms定时初值 mov tl1,#0b0h ;50ms定时初值(t1闪烁定时用) mov th1,#3ch ;50ms定时初值 setb ea ;总中断开放 setb et0 ;允许t0中断 setb tr0 ;开启t0定时器 mov r4,#14h ;1s定时用初值(50ms*20) start1: lcall display ;调用显示子程序 jnb p3.7,setmm1 ;p3.7口为0时转时间调整程序 sjmp start1 ;p3.7口为1时跳回start
34、1 setmm1: ljmp setmm ;转到时间调整程序setmm;*; 1秒计时程序 ;*;t0中断服务程序 intt0: push acc ;累加器入栈保护 push psw ;状态字入栈保护 clr et0 ;关t0中断允许 clr tr0 ;关闭定时器t0 mov a,#0b7h ;中断响应时间同步修行 add a,tl0 ;低8位初值修正 mov tl0,a ;重装初值(低8位修正值) mov a,#3ch ;高8位初值修正 addc a, th0 ; mov th0,a ;重装初值(高8位修正值) setb tr0 ;开启定时器t0 djnz r4, outt0 ;20次中断未
35、到中断退出addss: mov r4,#14h ;20次中断到(1s)重赋初值 mov r0,#71h ;指向秒计时单元(71h-72h) acall add1 ;调用加1程序(加1s操作) mov a,r3 ;秒数据放入a(r3为2位十进制数组合) clr c ;清进位标志 cjne a, #60h, addmm ; addmm: jc outt0 ;小于60s时中断退出 acall clr0 ;大于或等于60s时对秒计时时单元清零 mov r0,#77h ;指向分计时单元(76h-77h) acall add1 ;分计时单元加1min mov a,r3 ;分数据放入a clr c ;清进位
36、标志 cjne a, #60h,addhh ;addhh: jc outt0 ;小于60s时对秒计时单元清0 acall clr0 ;大于或等于60min时分计时单元清0 mov r0,#79h ;指向小时计时单元(78h-79h) acall add1 ;小时计时单元加1h mov a,r3 ;时数据放入a clr c ;清进位标志 cjne a,#24h,hour ; hour: jc outt0 ;小于24h小时计时单元清0 acall clr0 ;大于或等于24h小时计时单元清0outt0: mov 72h,76h ;中断退出时将分、时计时单元数据移入对应显示单元 mov 73h,77
37、h ; mov 74h,78h ; mov 75h,79h ; pop psw ;恢复状态字(出栈) pop acc ;恢复累加器 setb et0 ;开放t0中断 reti ;中断返回;*; 闪动调时程序 ;*;t1中断服务程序,用作时间调整时调整单元闪烁指示intt1: push acc ;中断现场保护 push psw ; mov tl1, #0b0h ;装定时器t1定时初值 mov th1, #3ch ; djnz r2,intt1out ;0.3s未到退出中断(50ms中断6次) mov r2,#06h ;重装0.3s定时用初值 cpl 02h ;0.3s定时到对闪烁标志取反 jb
38、02h,flash1 ;02h位为1时显示单元“熄灭” mov 72h,76h ;02h位为0时正常显示 mov 73h,77h ; mov 74h,78h ; mov 75h,79h ;intt1out: pop psw ;恢复现场 pop acc ; reti ;中断退出flash1: jb 01h,flash2 ;01h位为1时,转小时熄灭控制 mov 72h,7ah ;01h位为0时,“熄灭符”数据放入分 mov 73h,7ah ;显示单元(72h-73h),将不显示分数据 mov 74h,78h ; mov 75h,79h ; ajmp intt1out ;转中断退出flash2:
39、mov 72h,76h ;01h位为1时,“熄灭符”数据放入小时 mov 73h,77h ;显示单元(74h-75h),小时数据将不显示 mov 74h,7ah ; mov 75h,7ah ; ajmp intt1out ;转中断退出;*; 加子程序 ;* add1: mov a,r0 ;取当前计时单元数据到a dec r0 ;指向前一地址 swap a ;a中数据高4位与低4位交换 orl a,r0 ;前一地址中数据放入a中低4位 add a,#01h ;a加1操作 da a ;十进制调整 mov r3,a ;移入r3寄存器 anl a,#0fh ;高4位变0 mov r0,a ;放回前一地
40、址单元 mov a,r3 ;取回r3中暂存数据 inc r0 ;指向当前地址单元 swap a ;a中数据高4位与低4位交换 anl a,#0fh ;高4位变0 mov r0,a ;数据放入当前地址单元中 ret ;子程序返回;*; 清零程序 ;*;对计时单元复零用 clr0: clr a ;清累加器 mov r0,a ;清当前地址单元 dec r0 ;指向前一地址 mov r0,a ;前一地址单元清0 ret ;子程序返回;*; 时钟调整程序 ;*;当调时按键按下时进入此程序 setmm: clr et0 ;关定时器t0中断 clr tr0 ;关闭定时器t0 lcall dl1s ;调用1s
41、延时程序 jb p3.7,closedis ;键按下时间小于1s,关闭显示(省电) mov r2,#06h ;进入调时状态,赋闪烁定时初值 setb et1 ;允许t1中断 setb tr1 ;开启定时器t1 set2: jnb p3.7,set1 ;p3.0口为0(键未释放),等待 setb 00h ;键释放,分调整闪烁标志置1 set4: jb p3.7,set3 ;等待键按下 lcall dl05s ;有键按下,延时0.5s jnb p3.7,sethh ;按下时间大于0.5s转调小时状态 mov r0,#77h ;按下时间小于0.5s加1min操作 lcall add1 ;调用加1子程
42、序 mov a,r3 ;取调整单元数据 clr c ;清进位标志 cjne a,#60h,hhh ;调整单元数据与60比较 hhh: jc set4 ;调整单元数据小于60转set4循环 lcall clr0 ;调整单元数据大于或等于60时清0 clr c ;清进位标志 ajmp set4 ;跳转到set4循环 closedis: setb et0 ;省电(led不显示)状态,开t0中断 setb tr0 ;开启t0定时器(开时钟) close: jb p3.7,close ;无按键按下,等待 lcall display ;有键按下,调显示子程序延时消抖 jb p3.7,close ;是干扰返回close等待waith: jnb p3.7,waith ;等待键释放 ljmp start1 ;返回主程序(led数据显示亮)sethh: clr 00h ;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南省长沙市九校联盟2024-2025学年高三下学期第二次联考物理试卷
- 学生日常行为规范养成月方案:助力学生实现全面且可持续的发展
- 迎新年晚会赞助策划书
- 小学三年级数学几百几十加减几百几十单元测试题带答案
- 运动员的广播稿
- 遗愿清单观后感(24篇)
- 导购员的销售心得体会
- 破局内卷式竞争重在综合整治良性竞争是推动经济发展的核心动力
- 道路工程施工安全培训
- 新亚洲高层+洋房居住项目区规划设计方案
- 一种陆空一体垂直起降飞行汽车的制作方法
- 创新者的窘境课件
- 慢性呼吸疾病肺康复护理专家共识课件
- 小红书代运营推广合作协议(模板)
- 离婚登记申请受理回执单
- 松下全自动COG机操作规范
- 诊所备案信息表
- 4.2微波炉说明书
- 工程项目对分包单位安全管理办法
- 商业秘密及内部事项保密管理办法
- 发展汉语初级综合1电子版
评论
0/150
提交评论