单片机电子时钟汇编语言程序_第1页
单片机电子时钟汇编语言程序_第2页
单片机电子时钟汇编语言程序_第3页
单片机电子时钟汇编语言程序_第4页
单片机电子时钟汇编语言程序_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、51 单片机架构下时钟控制程序;KEYA A 键功能程序 开启/关闭定时器;KEYB B 键功能程序 时值加1;KEYC C 键功能程序 分值加1;KEYD D 键功能程序 秒值加1 ;KEYE E 键功能程序 12/24时值转换 ;BEEP_BL 整点报时;P0 显示接口KEYAEQU P3.0;单片机控制设置KEYBEQU P3.1;单片机控制设置KEYCEQU P3.2;单片机控制设置KEYDEQU P3.3;单片机控制设置KEYEEQU P3.4;单片机控制设置BEEPEQU P3.7;单片机控制设置ORG0000HAJMPMAIN;转到系统初始化程序ORG000BHAJMPPITO;

2、转到定时器0 中断服务程序ORG0100HMAIN: MOVSP,#60H;确立堆栈区MOVTMOD,#01H;设定定时器 0 为工作方式 1MOVTL0,#0DCH;装计数器初值MOVTH0,#0BHCLR21H.0CLRTR0; TR0 置 0,定时关闭SETBEA; EA 置 1,中断总允许SETBET0; ET0 置 1,定时器 0 中断; 允许MOV30H,#10H; 循环次数MOV7EH,#0AH;p.点显示初始化MOVR0,#79HMOVR1,#05HPP: MOVR0,#0BHINCR0DJNZR1, PPMOVR0,#31H; 时、分、秒值存储单元清零MOVR1,#06HQ0

3、0: MOVR0,#00HINCR0DJNZR1,Q00/、* |1 ,、 .*/、 监控程序LOOP: LCALLDIR; 调显示子程序LCALLKEY; 调键扫描子程序LOOP1: JB20H.0,KEYA; A 键是否按下,是跳转到 A 键功能程序开启关闭定时器JB20H.1,KEYB;B键是否按下,是跳转到B键功能程序时值加JB20H.2,KEYC;C键是否按下,是跳转到C键功能程序分值加JB20H.3,KEYD;D键是否按下,是跳转到D键功能程序秒值加JB20H.4,KEYE;E键是否按下,是跳转到E键功能程序时值转换LCALLDIRLJMPLOOP跳转到监控程序键功能子程序KEYA

4、: CPLTR0;开启/关闭定时器SETB21H.0AJMPLOOP;返回键功能子程序KEYB: JBTR0,KEYB1; 定时器是否运行,是跳转JNB21H.0,KEYB2MOVR0,#36H; 时值存储单元地址送 R0LCALLDAAD1; 调加 1 子程序MOVA,R3; 时值加 1 后的值送累加器 ALCALLBEEP_BL; 整点报时XRLA,#12H;时值是否到 12 时JNZKEYB0BACK: XRLA,#24H;判是否到 24 时JNZKEYB1; 时值是否到 24 时,否返回LCALLCLR0; 时值存储单元清零KEYB0: JB20H.4,KEYB1;是否启用 12 时值

5、,否返回LCALLCLR0; 时值存储单元清零KEYB1: MOV7DH,35HMOV7EH,36HKEYB2: LJMPLOOP; 返回监控程序;C 键功能子程序* KEYC: JB8CH, KEYC1 8CH, KEYC1 ; 定时器是否运行,否跳转JNB21H.0,KEYC2MOVR0,#34H;分值存储单元地址送 R0LCALLDAAD1调加1 子程序MOVA,R3;分值加1后的值送累加器AXRLA,#60H ;JNZKEYC1分值是否到60 分,否返回LCALLCLR0分值存储单元清零KEYC1: MOV7CH,34HMOV7BH,33HKEYC2: LJMPLOOP返回监控程序;D

6、 键功能子程序;D 键功能子程序KEYD: JB8CH,KEYD1; 定时器是否运行,否跳转JNB21H.0,KEYD2MOVR0,#32H;秒值存储单兀地址送R0LCALLDAAD1; 调加 1 子程序MOVA,R3; 秒值加 1 后的值送 R0XRLA,#60HJNZKEYD1秒值是否到60 秒,否返回LCALLCLR0秒值存储单兀清0KEYD1: MOV79H,31HMOV7AH,32HKEYD2: LJMPLOOP返回监控程序PITO: PUSHPSW;中断服务程序,现场保护PUSHASETBRS0;选第三组通用寄存器SETBRS1MOVTL0,#0DCH; 计数器重新加载MOVTH0

7、,#0BHMOVA,30H;循环次数减1DECAMOV30H,AJNZRETO;不满16次,转RETO返回MOV30H,#10H;满 16 次开始计时操作MOVR0,#32H;秒显示单兀地址ACALLDAAD1; 秒加 1MOVA,R3 ;加1后秒值在R3中XRLA,#60H ;判是否到60秒JNZRETO不到转 RETO 返回ACALLCLR0;到 60 秒显示单兀清 0MOVR0,#34H;分显示单兀地址ACALLDAAD1; 分加 1;加1 子程序MOVA,R3 ;加1后分值在R3中XRLA,#60H ;判是否到60 分JNZRETO不到转RETO返回ACALLCLR0; 到 60 分显

8、示单元清 0MOVR0,#36H ;时显示单元地址ACALLDAAD1; 时加 1MOVA,R3; 加1后时值在R3中LCALLBEEP_BL ;整点报时XRLA,#12H ;时值是否到 12 时JNZKEYB3XRLA,#24H ;判是否到 24 时JNZRETO不到转RETO返回ACALLCLR0; 到 24 时显示单元清 OKEYB3:JB20H.4,RETO;是否启用12 时值,否返回ACALLCLR0时值存储单元清零RETO: CLRRS0返回第0组通用寄存器CLRRS1POPA; 现场恢复POPPSWMOV79H,31H ;时、分、秒值放缓冲区MOV7AH,32HMOV7BH,33

9、HMOV7CH,34HMOV7DH,35HMOV7EH,36HRETI中断返回DAAD1: MOVA,R0;加1子程序,十位送ADECR0SWAPA; 十位数占高4 位ORLA,R0 ;个位数占低4位ADDA,#01H ;加1DAA; 十进制调整MOVR3,A;全值暂存 R3 中ANLA,#0FH ;屏蔽十位数,取出个位数MOVR0,A; 个位值送显示缓冲单元MOVA,R3INCR0ANLA,#0F0H ;屏蔽个位数取出十位数SWAPA; 使十位数占低四位MOVR0,A; 十位数送缓冲单元RET返回CLR0: CLRA清缓冲单元子程序MOVR0,A;十位缓冲单元清0DECMOVRETR0R0,

10、 A ; 个位数缓冲单元清0; 返回KEY: LCALLKEYCHULI ;调键值处理子程序JZEXIT没有键按下转到返回LCALLDIRLCALLDIR; 调显示去抖动LCALLKEYCHULI ;调键值处理子程序JZEXIT没有键按下转到返回MOVB,20H; 保存键值KEYSF: LCALLKEYCHULI ;调键值处理子程序JZKEY1键释放,转到恢复键值LCALLDIR; 调显示子程序延时AJMPKEYSF等到键释放KEY1: MOV20H,B;键值送 20H 单元保存EXIT: RET返回KEYCHULI: PUSHPSW; 保护现场CLRRS1; 改变寄存器组号SETBRS0MO

11、VP1,#0FFH ;先向Pl 口写1MOVA,P1 ;P1 口值送累加器 ACPLAA 值取反ANLA,#0FH ;保存Pl 口的低4位MOV20H,A;A 值送 20H 保存CLRRS1; 改变寄存器组号CLRRS0POPPSW; 恢复现场RETDIR: PUSHPSW恢复现场SETBRS1; 改变寄存器组号CLRRS0MOVR0,#79H ;建立显示缓冲区首地址MOVR3,#0FBH ;设置位控码LD0: MOVP2,R3 ;送位控码MOVA,R0; 缓冲区值送累加器 ADISP1: ADDA,#1BHMOVCA,A+PC; 取段控码并送 A 中DISP2: MOVP0,A;送段控码MO

12、VR2,#09H ;设置延时循环次数ACALLDEY; 延时点亮INCR0缓冲区地址加1MOVA,R3 ;位控码送AJNBACC.1,HERE ;是否到最高位,是转到返回JBACC.5,LD2RLARLA不到向显示器高位移位LD2:RLAMOVR3,A;位控值保存到R4中AJMPLD0; 继续扫描HERE: CLRRS0; 改变寄存器组号CLRRS1POPPSW; 恢复现场RET返回DBB: DB0C0HDB0F9HDB0A4HDB0B0HDB99HDB92HDB82HDB0F8HDB80HDB90HDB0CHDB0FFHBEEP_BL: MOV R6,#100BL1:CALL BL2 CPL B

温馨提示

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

评论

0/150

提交评论