ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:17.31KB ,
资源ID:8315931      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8315931.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MCS51系列单片机系统及其应用Word文档格式.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

MCS51系列单片机系统及其应用Word文档格式.docx

1、将内部的RAM中的78H7FH这八个单元作为显示缓冲区,将时钟要显示的初值的数字(非字型代码)置入这八个单元中,等待显示子程序利用其中的数据去查出相应的字型代码,送出显示。用有寄存器间接寻址功能的工作寄存器R0作为显示缓冲区的指示器,将显示缓冲区内的数据与查表类指令发生联系,以便按显示缓冲区内的数据查表。主程序初始化时首先将定时器中断的总开关关闭,选择一个定时器,设定该定时器的工作方式,将该定时器的两个计数单元赋一预先设好的初始数据。开启所有与所选择的定时器有关的中断开关,但不启动计数器,作好准备。当主程序初始化完毕之后,开始调用显示子程序之前开启计数器,此时主程序即进入无休止的调用显示子程序

2、的状态,随时准备着被定时器所中断。在中断子程序的入口处若有必要保护主程序在中断时主要寄存器的状态,请务必执行堆栈以保护中断时CPU的现场。并且关闭所选择的定时器的中断允许控制位,但不要让定时计数器停止计数,重新对定时器的定时单元进行赋值(与主程序初始化时所赋的值相同)。靠定时器溢出一次,不可能产生秒信号,所以要在定时器溢出发生中断,程序条入中断服务程序后,不仅要给定时器重新赋值,而且要设计一个计数器,让定时器溢出若干次,直到定时器定时的累积值达到1秒为止,然后对显示缓冲区的秒位加“1”,在加“1”之后还要判断是否产生进位,然后加以处理,结果让屏幕上所显示的数字为时钟的有效数值,即秒位与分位不能

3、超出60,小时位则不能超出24(统一将时钟设计为24小时制)。7:为了使所设计的程序简短,建议将程序中相同的部分都设计成子程序。参考程序二例: (CJC7.ASM 、CJC8.ASM) 参考程序(CJC7.ASM与CJC8.ASM)的有关说明:程序一(CJC7.ASM)中编制了多个子程序,在程序的长度上与参考程序二(CJC8.ASM)相当。主程序略有不同,中断服务程序则大有差别,但都能实现同一个目的(电子时钟)。参考程序一:CJC7.ASMORG 0000H AJMP 0030HORG 000BH ;定时器中断入口地址AJMP INTT0 ;跳入中断服务子程序MAIN: MOV 78H,#00

4、HMOV 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,#17HMOV TL0,#0B8H ;预置定时初值SETB 8CH SETB 0AFHSETB 0A9H ;开中断、启动定时器MOV R6,#08HLOOP0: LCALL DISP ;调用显示子程序 SJMP LOOP0;-DISP: MOV R1,#0

5、1HLOOP1: MOV A,R0MOVC A,A+DPTRMOV P0,AMOV P1,R1 ;显示1个数字ACALL DELAYINC R0MOV A,R1CJNE A,#01H,LOOP1 ;显示8个数字 MOV R0,#78H RET;DELAY: MOV R3,#0FFH DJNZ R3,$ MOV R4,#0FFH DJNZ R4,$ RET ;0.5毫秒延时;DATA: DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H DB 82H,0F8H,80H DB 90H,0BFH ;显示字型代码表;-INTT0: MOV TH0,#17H ;中断服务程序 定时器再次预

6、置初值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 ;秒位清零- MOV R0,#7CH分加“1”XRL A,#60到60分否?分位清零-MOV R0,#7FH小时加“1”MOV A,R2XRL A,#24到24小时否?小时位清零;RETO: POP PSWPOP ACC ;恢复现场RETI ;中断返回 -ADD1: MOV A,R

7、0 ;加“1”子程序DEC R0SWAP AORL A,R0 ;合并字节ADD A,#01H ;加“1”DA AMOV R2,AANL A,#0FH ;坼分字节MOV R0,A ;放入显示缓冲区ANL A,#0F0HRETCLR0: CLR AMOV R0,ARET ;清零子程序-参考程序二:CJC8.ASM AJMP 000EH ;主程序入口定时器中断程序入口跳入中断服务程序 ORG 000EH显示缓冲区初始化MOV R0,#78HMOV TMOD,#01HMOV TL0,#0B8HSETB TR0SETB ET0SETB EA ;定时器的控制调用显示程序SJMP LOOP0- MOV R1

8、,#01H ;显示子程序 MOV A,R0MOV P1,R1RL AMOV R1,ACJNE A,#01H,LOOP1 MOV R0,#78H RET RET ;显示用延时程序-DB 0B0H,99H,92H MOV TH0,#17H ;中断服务程序PUSH ACCDJNZ R6,RETOINC 78HMOV A,78HCJNE A,#0AH,RETOMOV 78H,#00HINC 79HMOV A,79HCJNE A,#06H,RETOMOV 79H,#00H INC 7BHMOV A,7BHINC 7CHMOV A,7CHMOV 7CH,#00HINC 77HINC 7EHMOV A,77HCJNE A,#24,TEET -RETO:MOV 77H,#00HMOV 7EH,#00HMOV 7FH,#00HPOP ACCRETIREET: MOV A,7EHINC 7FHMOV A,7FHCJNE A,#03H,RETOAJMP RETO ;加“1”及判断程序注意:以上二程序仅供参考,不过稍加思考即可使程序成功地运行,请大家务必注意程序设计中的细节部分,吾故如此,旨在让大家悉心思考之,以便学习。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2