MCS-51系列单片机系统及其应用.doc

上传人:飞****2 文档编号:54338686 上传时间:2022-10-28 格式:DOC 页数:12 大小:28.50KB
返回 下载 相关 举报
MCS-51系列单片机系统及其应用.doc_第1页
第1页 / 共12页
MCS-51系列单片机系统及其应用.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《MCS-51系列单片机系统及其应用.doc》由会员分享,可在线阅读,更多相关《MCS-51系列单片机系统及其应用.doc(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、MCS-51系列单片机系统及其应用实验四:时钟实验实验内容:在实验三的基础上,利用LED显示字型的功能,应用单片机的定时器及定时器中断功能编制一程序,让LED数码显示器上显示出按精确秒信号的节律变化的字型,即电子时钟。实验目的:1:掌握在RAM区内开辟显示缓冲区的方法。2:进一步熟悉用LED数码管显示字型程序的设计方法。3:掌握定时器初始值的计算方法。4:掌握定时器的用法以及定时器中断的控制。5:明确中断子程序与一般子程序的区别及联系。6:学会设计简单的数值比较程序,学会设计根据RAM中某一单元的内容进行查表的程序。实验要求:1:设计程序时,应在内部RAM中开辟显示缓冲区,缓冲区内首先设置时钟

2、的初始时间(12-00-00 )。2:利用定时器的计数溢出产生中断,从而产生秒信号。3:将LED数字显示程序设计为子程序,将时、分、秒加“1”的溢出判断在中断服务子程序中进行,主程序完成初始化后一直调用显示子程序。程序的设计思路参考如下:1:将内部的RAM中的78H7FH这八个单元作为显示缓冲区,将时钟要显示的初值的数字(非字型代码)置入这八个单元中,等待显示子程序利用其中的数据去查出相应的字型代码,送出显示。2:用有寄存器间接寻址功能的工作寄存器R0作为显示缓冲区的指示器,将显示缓冲区内的数据与查表类指令发生联系,以便按显示缓冲区内的数据查表。3:主程序初始化时首先将定时器中断的总开关关闭,

3、选择一个定时器,设定该定时器的工作方式,将该定时器的两个计数单元赋一预先设好的初始数据。开启所有与所选择的定时器有关的中断开关,但不启动计数器,作好准备。4:当主程序初始化完毕之后,开始调用显示子程序之前开启计数器,此时主程序即进入无休止的调用显示子程序的状态,随时准备着被定时器所中断。5:在中断子程序的入口处若有必要保护主程序在中断时主要寄存器的状态,请务必执行堆栈以保护中断时CPU的现场。并且关闭所选择的定时器的中断允许控制位,但不要让定时计数器停止计数,重新对定时器的定时单元进行赋值(与主程序初始化时所赋的值相同)。6:靠定时器溢出一次,不可能产生秒信号,所以要在定时器溢出发生中断,程序

4、条入中断服务程序后,不仅要给定时器重新赋值,而且要设计一个计数器,让定时器溢出若干次,直到定时器定时的累积值达到1秒为止,然后对显示缓冲区的秒位加“1”,在加“1”之后还要判断是否产生进位,然后加以处理,结果让屏幕上所显示的数字为时钟的有效数值,即秒位与分位不能超出60,小时位则不能超出24(统一将时钟设计为24小时制)。7:为了使所设计的程序简短,建议将程序中相同的部分都设计成子程序。参考程序二例: (CJC7.ASM 、CJC8.ASM) 参考程序(CJC7.ASM与CJC8.ASM)的有关说明:程序一(CJC7.ASM)中编制了多个子程序,在程序的长度上与参考程序二(CJC8.ASM)相

5、当。主程序略有不同,中断服务程序则大有差别,但都能实现同一个目的(电子时钟)。参考程序一:CJC7.ASMORG 0000HAJMP 0030HORG 000BH ;定时器中断入口地址AJMP INTT0 ;跳入中断服务子程序MAIN:MOV 78H,#00HMOV 79H,#00HMOV 7AH,#0AHMOV 7BH,#00HMOV 7CH,#00HMOV 7DH,#0AHMOV 7EH,#02HMOV 7FH,#01H ;显示缓冲区初始化;-MOV SP,#50H ;修改堆栈指针MOV R0,#78H ;给定显示缓冲区首地址MOV TMOD,#01H ;设置定时器的定时方式MOV TH0

6、,#17HMOV TL0,#0B8H ;预置定时初值SETB 8CH SETB 0AFHSETB 0A9H ;开中断、启动定时器MOV R6,#08HLOOP0:LCALL DISP ;调用显示子程序 SJMP LOOP0;-DISP:MOV R1,#01HLOOP1:MOV A,R0MOVC A,A+DPTRMOV P0,AMOV P1,R1 ;显示1个数字ACALL DELAYINC R0MOV A,R1CJNE A,#01H,LOOP1 ;显示8个数字MOV R0,#78HRET;-DELAY:MOV R3,#0FFHDJNZ R3,$MOV R4,#0FFHDJNZ R4,$RET ;

7、0.5毫秒延时;-DATA:DB 0C0H,0F9H,0A4HDB 0B0H,99H,92HDB 82H,0F8H,80HDB 90H,0BFH ;显示字型代码表;-INTT0:MOV TH0,#17H ;中断服务程序 MOV TL0,#0B8H ;定时器再次预置初值PUSH ACC PUSH PSW ;保护现场SETB PSW.3MOV A,30HDEC AMOV 30H,AJNZ RETO ;到1秒否?MOV 30H,#08H;-MOV R0,#79HACALL ADD1 ;秒加“1”MOV A,R2XRL A,#60 ;到60秒否?JNZ RETOACALL CLR0 ;秒位清零;- M

8、OV R0,#7CHACALL ADD1 ;分加“1”MOV A,R2XRL A,#60JNZ RETO ;到60分否?ACALL CLR0 ;分位清零;-MOV R0,#7FHACALL ADD1 ;小时加“1”MOV A,R2XRL A,#24JNZ RETO ;到24小时否?ACALL CLR0 ;小时位清零;-RETO:POP PSWPOP ACC ;恢复现场RETI ;中断返回; -ADD1: MOV A,R0 ;加“1”子程序DEC R0SWAP AORL A,R0 ;合并字节ADD A,#01H ;加“1”DA AMOV R2,AANL A,#0FH ;坼分字节MOV R0,A

9、;放入显示缓冲区MOV A,R2INC R0ANL A,#0F0HSWAP AMOV R0,A ;放入显示缓冲区RET;-CLR0: CLR AMOV R0,ADEC R0MOV R0,ARET ;清零子程序-参考程序二:CJC8.ASMORG 0000HAJMP 000EH ;主程序入口ORG 000BH ;定时器中断程序入口AJMP INTT0 ;跳入中断服务程序 ORG 000EHMAIN:MOV 78H,#00HMOV 79H,#00HMOV 7AH,#0AHMOV 7BH,#00HMOV 7CH,#00HMOV 7DH,#0AHMOV 7EH,#02HMOV 7FH,#01H ;显示

10、缓冲区初始化MOV R0,#78HMOV TMOD,#01HMOV TH0,#17HMOV TL0,#0B8HSETB TR0SETB ET0SETB EA ;定时器的控制MOV R6,#08HLOOP0: LCALL DISP ;调用显示程序SJMP LOOP0;-DISP: MOV R1,#01H ;显示子程序LOOP1: MOV A,R0MOVC A,A+DPTRMOV P0,AMOV P1,R1ACALL DELAYINC R0MOV A,R1RL AMOV R1,ACJNE A,#01H,LOOP1MOV R0,#78HRET;-DELAY:MOV R3,#0FFHDJNZ R3,$

11、MOV R4,#0FFHDJNZ R4,$RET ;显示用延时程序;-DATA:DB 0C0H,0F9H,0A4HDB 0B0H,99H,92HDB 82H,0F8H,80HDB 90H,0BFH ;显示字型代码表;-INTT0: MOV TH0,#17H ;中断服务程序MOV TL0,#0B8HPUSH ACCDJNZ R6,RETOINC 78HMOV A,78HCJNE A,#0AH,RETOMOV 78H,#00HINC 79HMOV A,79HCJNE A,#06H,RETOMOV 79H,#00H INC 7BHMOV A,7BHCJNE A,#0AH,RETOINC 7CHMOV A,7CHCJNE A,#06H,RETOMOV 7CH,#00HINC 77HINC 7EHMOV A,77HCJNE A,#24,TEET ;-RETO:MOV 77H,#00HMOV 7EH,#00HMOV 7FH,#00HPOP ACCRETI;-REET:MOV A,7EHCJNE A,#0AH,RETOMOV 7EH,#00HINC 7FHMOV A,7FHCJNE A,#03H,RETOAJMP RETO ;加“1”及判断程序注意:以上二程序仅供参考,不过稍加思考即可使程序成功地运行,请大家务必注意程序设计中的细节部分,吾故如此,旨在让大家悉心思考之,以便学习。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com