dayin程序源代码.doc_第1页
dayin程序源代码.doc_第2页
dayin程序源代码.doc_第3页
dayin程序源代码.doc_第4页
dayin程序源代码.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

程序源代码:ORG 0000H LJMP MAIN ORG 000BH ;定时器0中断入口地址 LJMP INTT0 WEEK BIT P1.0 ;定义调星期键 HOURBIT P1.1 ;定义调时键MIN BIT P1.2 ;定义调分键QING BIT P1.3 ;定义清零键MAIN: MOV TMOD,#01H ;定时器0,工作模式1 MOV TH0,#03CH ;赋初值,定时50ms MOV TL0,#0B0H SETB EA ;开中断总开关SETB ET0 ;定时器0中断允许位 SETB TR0 ;开启定时器0 MOV R6,#0 ;计中断次数 MOV R5,#0 ;R5扫描按键的时间间隔 MOV 20H,#0 ;秒个位清零 MOV 21H,#0 ;秒十位清零 MOV 22H,#0 ;分个位清零 MOV 23H,#0 ;分十位清零 MOV 24H,#0 ;时个位清零 MOV 25H,#0 ;时十位清零MOV 26H,#1 ;星期位清零 LJMP DISPLAY ;清零数据显示;T0中断子程序INTT0: CLR EA INC R6 ;中断次数加一 INC R5 MOV TH0,#03CH MOV TL0,#0B0H ;重新赋初值 SETB EA RETIJIA_TIME: CJNE R6,#20,EXIT ;定时器中断20次,1秒到 MOV R6,#0 SETB P1.7 ;关闭闹钟 INC 20H ;秒加一 MOV A,20H CJNE A,#10,EXIT ;如果秒个位等于10,清零 MOV 20H,#00H INC 21H ;秒 MOV A,21H CJNE A,#6,EXIT ;如果秒十位等于6,清零 MOV 21H,#00H MIAO1: INC 22H ; MIN: MOV A,22H CJNE A,#10,EXIT ;如果分个位等于10,清零 MOV 22H,#00H INC 23H MOV A,23H CJNE A,#6,EXIT ;如果分十位等于6,清零CLR P1.7 ;ssssss MOV 23H,#00H MIN1: INC 24H ; HOUR: MOV A,25H CJNE A,#2,LOOP ;如果时十位等于2,检查时个位 MOV A,24H CJNE A,#4,EXIT ;如果时个位等于4,清零 MOV 24H,#00H ;清零时个位 MOV 25H,#00H ;清零时十位 HOUR1:INC 26HXINGQI:MOV A,26HCJNE A,#8,EXITMOV 26H,#1LJMP EXIT LOOP: MOV A,24H CJNE A,#10,EXIT ;如果时个位等于10,清零 MOV 24H,#00H INC 25H LJMP EXIT EXIT:MOV A,21HCJNE A,#1,DISPLAYSETB P1.7 LJMP DISPLAY ;加完毕跳转到显示DISPLAY: MOV DPTR,#TABLE MOV A,20H MOVC A,A+DPTR MOV P0,A SETB P2.7 LCALL DELAY CLR P2.7 ;显示秒个位 MOV A,21H MOVC A,A+DPTRMOV P0,ASETB P2.6LCALL DELAYCLR P2.6 ;显示秒十位MOV A,22HADD A,#10MOVC A,A+DPTRMOV P0,ASETB P2.5LCALL DELAYCLR P2.5 ;显示分个位MOV A,23HMOVC A,A+DPTRMOV P0,ASETB P2.4LCALL DELAYCLR P2.4 ;显示分十位MOV A,24HADD A,#10MOVC A,A+DPTRMOV P0,ASETB P2.3LCALL DELAYCLR P2.3 ;显示时个位MOV A,25HMOVC A,A+DPTRMOV P0,ASETB P2.2LCALL DELAYCLR P2.2 ;显示时十位MOV A,#40HMOV P0,ASETB P2.1LCALL DELAYCLR P2.1 ;显示-MOV A,26HMOVC A,A+DPTRMOV P0,ASETB P2.0LCALL DELAYCLR P2.0;显示星期CJNE R5,#4,KEY_SCAN ;当R5到4时,扫描按键MOV R5,#0KEY_SCAN:JNB WEEK,JIA_XINGQIJNB HOUR,JIA_HOURJNB MIN,JIA_MINJNB QINGQINGLINGLJMP JIA_TIME ;无键按下,跳至走时JIA_XINGQI:LCALL DELAY1;消抖延时JNB WEEK,JIA1JIA1:LJMP HOUR1JIA_HOUR:LCALL DELAY1;消抖延时JNB HOUR,JIA2;小时加1JIA2: LJMP MIN1 ;更新JIA_MIN:LCALL DELAY1;消抖延时JNB MIN,JIA3;分钟加1JIA3: LJMP MIAO1 ;更新QINGLING:MOV 20H,#0 ;秒个位清零 MOV 21H,#0 ;秒十位清零 MOV 22H,#0 ;分个位清零 MOV 23H,#0 ;分十位清零 MOV 24H,#0 ;时个位清零 MOV 25H,#0 ;时十位清零MOV 26H,#1 ;星期清零LJMP DISPLAYEXIT0:LJMP JIA_TIMEDELAY: MOV R7,#150 ;扫描延时 DJNZ R7,$RETDELAY1: MOV R7,#60 ;消抖延时DELAY2: MOV R6,#125DELAY3: DJNZ R6,DELAY3DJNZ R7,DELAY2RET TABLE: ;数码管字形显示编码表 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;字形显示编码 END ;程序结束DEL10: MOV R7,#200DEL1: MOV R6,#25DEL2: DJNZ R6,DEL2 ;25*2=50s DJNZ R7,DEL1 ;0.05ms*200=10ms RETDEL1S: MOV R5, #100LLL: ACALL DEL10 DJNZ R5, LLL RET ORG 0000H SJMP MAIN;上电,转向主程序 ORG 0003H;外部中断0入口地址 SJMP INSER;转向中断服务程序 ORG 0030H ;主程序MAIN: SETB EX0 ;允许外部中断0中断 SETB IT0 ;选择边沿触发方式 SETB EA ;CPU开中断MAIN1: mov a, #0feh mov r5, #4Output: mov p1,a rl a call Delay2S djnz r5, Output Ljmp MAIN1中断服务程序及延时子程序 ORG 0200HINSER :MOV 30H, P1 MOV P1, #00H ACALL DEL2S MOV P1,30H RETIDEL2S: MOV R4, #20LLL:ACALL DEL100MSDJNZ R4, LLLRETDEL100MS:;2502002=100000mov r6, #250Delay: mov r7, #200Dela: djnz r7, Dela djnz r6, Delayret END DBUF0 EQU 30H TEMP EQU 40H DIN BIT P2.0 CLK BIT P2.1bb bit 00h ORG 0000H LJMP START org 001bh ljmp serve ORG 0030H START: mov tmod,#10hmov th1,#0d8hmov tl1,#0f0hsetb tr1mov b,#100mov 50h,#0mov 51h,#00hmov 52h,#00hmov ie,#10001000bMOV 30H,#16 MOV 31H,#16 MOV 32H,#16 MOV 33H,#16 MOV 34H,#16MOV 35h,#16lcall displcall disp1start1:jnb bb,$clr bblcall fenlcall displcall disp1sjmp start1DISP:MOV R0, #DBUF0 MOV R1, #TEMP MOV R2, #6 DP10:MOV DPTR,#SEGTAB MOV A, R0 MOVC A, A+DPTR MOV R1, A INC R0 INC R1 DJNZ R2, DP10 retdisp1:MOV R0, #TEMP MOV R1, #6DP12:MOV R2, #8 MOV A, R0DP13:RLC A MOV DIN,C CLR CLK SETB CLK DJNZ R2, DP13 INC R0 DJNZ R1, DP12 retfen: mov a,50hanl a,#0f0hswap amov 30h,amov a,50hanl a,#0fh mov 31h,amov a,51hanl a,#0f0hswap amov 32h,amov a,51hanl a,#0fh mov 33h,amov a,52hanl a,#0f0hswap amov 34h,amov a,52hanl a,#0fh mov 35h,aretserve: push pswpush accmov th1,#0d8hmov tl1,#0f0hdjnz b,returnsetb bbmov b,#100mov a,#01h add a,52hda amov 52h,acjne a,#60h,returnmov 52h,#0mov a,#01h add a,51hda amov 51h,

温馨提示

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

评论

0/150

提交评论