51单片机汇编语言万年历完美版.doc
《51单片机汇编语言万年历完美版.doc》由会员分享,可在线阅读,更多相关《51单片机汇编语言万年历完美版.doc(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、51单片机汇编语言万年历完美版;*万年历制作 BY-信工七班 ;* ;* ;-RCK BIT P0.5SCK BIT P0.4DAT BIT P0.7RST BIT P0.6BUZZER BIT P1.3 ;蜂鸣器BYTE EQU 40H;用于给锁存器送入数据GEWEI EQU 41H;用于存放数码管显示的第一位 SHIWEI EQU 42H;用于存放数码管显示的第二位BAIWEI EQU 43H;用于存放数码管显示的第三位QIANWEI EQU 44H;用于存放数码管显示的第四位TEMP1 EQU 45HTEMP2 EQU 46HCOUNT EQU 47H ;用于扩展定时器计数时间KTIME
2、 EQU 49H TEMP EQU 50HDMS EQU 51H;用于存放运动秒表的最低位DSECOND EQU 52H;用于存放运动秒表的秒DMIN EQU 53H;用于存放运动秒表的分钟CLKMIN EQU 54H ;用于存放闹钟分钟CLKHOUR EQU 55H;用于存放闹钟时CLKF EQU 56H;用于闹钟开启的标志位;- ORG 0000HAJMP MAIN ORG 000BH;定时器0中断入口地址AJMP T0_INTORG 001BH;定时器1中断入口地址AJMP T1_INT;*主程序*;-MAIN:MOV R4,#00 ;计数秒MOV R5,#50 ;计数分MOV R6,#
3、15 ;计数时 MOV R0,#14H ;2013年MOV R1,#0DH MOV R2,#6 ;6月MOV R3,#18 ;18日MOV COUNT,#0HMOVA,#5 ;开始使A不等于0,用于后面的判断MOVCLKMIN,#0HMOVCLKHOUR,#0HMOVCLKF,#0HMOV SP,#60HMOV TMOD,#11H ;设置定时器0为工作模式1 MOV TH0, #03CHMOV TL0, #0B0H ;定时50000 usMOV TH1, #0D8HMOV TL1, #0F0H ;定时1000us=1MS SETB ET0 ;允许定时器中断SETB ET1SETB EA ;允许
4、全局中断SETB PT0 ;定时器中断设为高优先级SETB EX0 ;允许外部中断SETB EX1 SETB IT0 ;外部中断设为下降沿触发SETB IT1SETB TR0 ;启动定时器;-START:MOVDPTR,#TABLELJMPKEYSCAN ;首先进入时间显示,由于地址相差太远所以代码顺序有所改变;-MARK2:LJMPKEYSCAN ;地址差跳远无法跳转,此处进行中间跳转到时间显示界面KEYCLK:MOVA,CLKF;此处为闹钟设置刚进入时的程序,由按键s12进入JNZKEYCLKF;进入后通过CLKF来判断闹钟功能是否启动,未启动时正常 ;显示为SHOWCLKF,启动时显示S
5、HOWCLKF1,此两种显示差一个数码管最低位标志的点KEYCLK1:LCALLSHOWCLK ;此处判定未启动闹钟功能时的显示LCALLS4;在闹钟界面查看有无切换显示模式(此处也可认为是确定 ;按键)的按键s4按下,JZMARK2 ;按下后跳转到时间显示LCALLS8;在闹钟显示界面下查看启动闹钟功能的键s8是否按下MOVA,CLKFJNZKEYCLKF;按下后显示SHOWCLKF1的显示LCALLS16;未按下则显示没有闹钟标志的数码管显示,再查看有无进 ;入调节s16的键按下,CJNE A,#7EH,KEYCLK1 ;未按下继续闹钟界面显示 KEYCLK2:LCALLSCLKMIN ;
6、按下进入调节MOVA,CLKMIN;显示设置分钟的调节MOVTEMP,ALCALLKEYSUB1;通过加减键s8,s12来设置闹钟LCALLKEYADD1MOVA,TEMPSUBBA,#60;调节分钟不超过59JCREMAIN0MOVTEMP,#0REMAIN0:MOVA,TEMPMOVCLKMIN,ALCALLS16;查看有无进入调节s16的键按下,CJNE A,#7EH,KEYCLK2 ;未按下继续显示分钟调节KEYCLK3:LCALLSCLKHOUR;按下进入显示时调节MOVA,CLKHOURMOVTEMP,A;送入参数,通过加减键进行调节设置LCALLKEYSUB2LCALLKEYAD
7、D2MOVA,TEMPSUBBA,#24;时的设置不超过24JCREMAIN1MOVTEMP,#0;超过24置0REMAIN1:MOVA,TEMPMOVCLKHOUR,ALCALLS16CJNE A,#7EH,KEYCLK3 ;再次判断有无调节的切换键(按3次为确定)按下KEYCLK4:LCALLSHOWCLK;按下后跳转为闹钟的界面正常显示LCALLS4;再判断有无切换显示模式的键按下,按下跳转显示JZKEYSCANLCALLS8;再判断有无启动(关闭)闹钟功能的键按下MOVA,CLKF;根据CLKF(闹钟功能启动)的标志位显示不同的闹钟界面JNZKEYCLKF;闹钟功能启动,跳转到KEYC
8、LKF显示闹钟启动标记GOON:LCALLS16;未启动则又判断有无进入调节的键按下CJNEA,#7EH,KEYCLK4;没有按下继续正常显示AJMPKEYCLK2;按下后重复KEYCLK2开始的内容KEYCLKF:LCALLSHOWCLK1;显示出闹钟功能启动后的标记(数码管最低位标记)LCALLS4;查看有无切换显示模式(闹钟设置确定后)键按下JZKEYSCAN;按下后跳转到显示时间的界面LCALLS8;未按则扫描开启(关闭)闹钟功能的键按下MOVA,CLKFJZKEYCLK4;根据闹钟功能的标记位跳转显示,若判断闹钟功能关闭则 ;跳转到KEYCLK4 显示无标志的闹钟LCALLS16;若
9、判断闹钟功能开启则扫描有无进入调节的按键s16按下CJNEA,#7EH,KEYCLKF;未按下则继续显示有标记的闹钟界面AJMPKEYCLK2;按下后则又进入调节界面KEYCLK2;-MARK3:LJMP MARK1 ;地址差跳远无法跳转,此处进行中间跳转到闹钟界面;-KEYSCAN:LCALLHOURMINUTE ;显示时间PUSHACC ;为s12的判断先把A入堆栈,否则s12出会出现判断错误LCALLS4;查看有无切换键s4按下,按下跳转显示秒JZKEYSCAN1 MOVA,CLKF ;在显示时间时判断闹钟功能是否开启,未开则跳转显示JZGOMOVA,R6 ;判断是否与闹钟设置的时间相等
10、,R6-时CJNEA,CLKHOUR,GOMOVA,R5;R5-分CJNEA,CLKMIN,GOLCALLSOUND ;闹钟功能开启,时分相等,则闹铃响;-GO:POPACC; 如果不pop,A=0一直成立,此时出现错误跳转LCALLS12 ;查看有无进入闹钟设置的键按下JZMARK3 ; 按下则跳入显示闹钟设置界面LCALLS16;查看有无进入调节键s16按下,按下进入调节CJNE A,#7EH,KEYSCAN;未按下则 继续显示时间SMINUTE:LCALLMINUTE ;s16按下后进入分调节显示MOVTEMP,R5;将要调节的分钟送入函数参数LCALLKEYADD1 ;进入调节后查看是
11、否按下加法键s8,按下加一 LCALL KEYSUB1;进入调节后查看是否按下减法键s8,按下减一 MOVA,TEMPSUBBA,#60;调节不超过60JCREMAIN2MOVTEMP,#0REMAIN2:MOVR5,TEMP;把运算完后的分钟送出显示LCALLS16CJNE A,#7EH,SMINUTE;没有s16按下,继续显示分调节SHOUR: LCALLHOUR;按下后进入显示时调节MOVTEMP,R6;R6为 装时 的寄存器,送入参数进行调节LCALLKEYADD2LCALL KEYSUB2MOVA,TEMPSUBBA,#24;调节不超过24JCREMAIN3MOVTEMP,#0REM
12、AIN3:MOVR6,TEMPLCALLS16 ;再次按下s16键可确定时间调节完成CJNE A,#7EH,SHOURAJMPKEYSCAN;调节完后重新正常显示时间;-;-KEYSCAN1:LCALLSHOWSECOND;按切换键s4后进入的秒显示LCALLS4;与时间显示的时候一样查看有无切换模式的键按下JZKEYSCAN2;按下则跳转显示日期LCALLS12;此处为查看有无进入闹钟功能的键按下,有则跳转JZMARK1LCALLS16;若无闹钟键按下,查看有无进入调节的键s16按下CJNE A,#7EH,KEYSCAN1SMS:LCALLMS;调节键按下显示需要调节内容MOVA,COUNT
13、 ;与之前的一样把调节参数送入进行调节,此处调姐秒显示的低位MOVTEMP,ALCALLKEYADD1LCALL KEYSUB1MOVA,TEMPSUBBA,#60;调节不超过60JCREMAIN4MOVTEMP,#0MOVA,TEMPREMAIN4:MOVA,TEMPMOVCOUNT,ALCALLS16 ;查看有无切换调节内容的键s16按下CJNE A,#7EH,SMS;没有s16键按下则显示原先调节内容SSECOND: LCALLSECOND ;有键s16按下则显示进入秒的调节MOVTEMP,R4 ;参数送入进行调节LCALLKEYADD2 LCALL KEYSUB2MOVA,TEMPSU
14、BBA,#60;调节不超过60JCREMAIN9MOVTEMP,#0REMAIN9:MOVR4,TEMPLCALLS16 ;再次按下s16键可确定时间调节完成CJNE A,#7EH,SSECOND ;未按下则继续显示选中的调节内容AJMPKEYSCAN1;-MARK1:LJMPKEYCLK;地址差跳远无法跳转,此处进行中间跳转到闹钟界面;-KEYSCAN2:LCALLSHOWDAY ;此处为日期显示,当切换模式键按下两下后进入显示LCALLS4 ;与时间显示的时候一样查看有无切换模式的键按下JZKEYSCAN3;按下则跳转显示年份LCALLS12;此处为查看有无进入闹钟功能的键按下,有则跳转J
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 汇编语言 万年历 完美
限制150内