锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

我的第一个单片机程序—简易秒表

时间:2024-06-11 20:07:11


程序做得很粗糙,功能还算齐全,也还没进行优化,所以我只让它保存15个数据,如果能优化一下数据结构,应该可以保存更多数据,分两种模式,0和1模式。也没有计算误差,每次暂停会有少于1MS的误差,开始计时也有少于1MS误差。

写了好几天,往往都是因为其中一个单词写错,害得我弄上他几个小时,比如就因为我把JC写成了JB,害得我从昨天中午开始一直弄到今天,把程序改来改去,到最后才知道原来也就差一个单词,今天做好了,不想改了,也不用优化了,简易秒表嘛,要求也不是很高的,做出来,交给老师检查,希望过关

说一下功能吧,最左边复位键复位,中间键开始键,在复位被点后中间键没被点前,右边键改模式(0和1两种模式,0是单人模式,记录启动后开始键点击间隔,就是这次点击减去上次点击记录下来,1模式是多人模式,记录启动后每次点击开始键时间),开始键是启动秒表的按键,在秒表启动后是记录时间的按键。启动后,右边键为暂停键,暂停后可以点中间键继续计时。暂停后也可以再点暂停键查看记录的数据。只能记录15个数据哦!

ORG 0000HLJMP MAINORG 000BHLJMP DINGORG 0030HMAIN: MOV R7,#28H;定时器中断40次,记下一个时间单位1次是250US,MOV SP,#30HMOV R0,#40HMOV R1,#32HMOV R5,#00HQING0: MOV @R0,#00HINC R0DJNZ R1,QING0MOV IE,#82HMOV TMOD,#02HMOV TH0,#06H;定时器值MOV TL0,#06HSETB TR0CLR IE.7CLR 00HCLR 01HCLR 02HCLR 03HXIAN: MOV P1,#0FFHMOV A,P1JB ACC.0,JIANGPANMOV A,50HCJNE A,#00H,NONGLCALL AN1NONG: MOV 50H,#32H;定义键盘延时,延时时间为显示程序运行一次所需时间*定义数值JIANGPAN: MOV A,50HCJNE A,#00H,NONG2SJMP NONG3NONG2: DEC 50HNONG3: MOV A,P1JB ACC.1,JIANPAN1MOV A,51HCJNE A,#00H,NONG1LCALL AN2NONG1: MOV 51H,#32H;定义键盘延时,延时时间为显示程序运行一次所需时间*定义数值JIANPAN1:MOV A,51HCJNE A,#00H,NONG8SJMP NONG9NONG8: DEC 51HNONG9: MOV R3, #02HMOV R0,40HMOV R2,#0FEHCLR   00HMOV R4,#00HXIAN1: MOV A,R0MOV B,#0AHDIV ABMOV R0,AMOV A,R2RR AMOV R2,AMOV A,BMOV DPTR,#TABJNB 00H,XIAN2CLR 00HADD A,#0AHXIAN2: MOVC A,@A+DPTRMOV P0,#0FFHMOV P2,R2CPL AMOV P0,AINC R4DJNZ R3,XIAN1CJNE R4,#06H,XIAN3MOV R3,#02HMOV R0,43HSJMP XIAN4XIAN3: JNC WEIMOV R3,#02HCJNE R4,#04H,XIAN111MOV R0,42HSJMP XIAN4XIAN111: MOV R0,41HXIAN4: SETB 00HLJMP XIAN1WEI:LJMP  XIANAN1: JB 01H,AN11SETB 01HSETB 02HMOV 40H,45HMOV 41H,46HMOV 42H,47HMOV 43H,48HSETB IE.7LJMP AN12AN11: SETB 02HCLR CMOV A,#0EHSUBB A,4AHJC MEINVASJMP MEINVA1MEINVA: LJMP AN12MEINVA1: MOV A,4AHMOV B,#03HMUL ABADD A,#52HMOV R0,AMOV @R0,40HINC R0MOV @R0,41HINC  R0MOV @R0,42HMOV R1,#48HCJNE @R1,#01H,MMMMGLJMP DDDDMMMMG: MOV A,4AHCJNE A,#00H,MMMMLJMP DDDDMMMM: DEC R0DEC R0MOV A,R0MOV R1,AMOV R0,#45HMOV R4,#64HMOV A,@R0MOV R3,AMOV A,@R1LCALL JIANFAMOV @R1,AJNC MMMM1INC R1MOV R3,#01HMOV A,@R1MOV R4,#3CHLCALL JIANFAMOV @R1,ADEC R1JNC MMMM1INC R1INC R1MOV R3,#01HMOV A,@R1LCALL JIANFAMOV @R1,ADEC R1DEC R1MMMM1: INC R1INC R0MOV R4,#3CHMOV A,@R0MOV R3,AMOV A,@R1LCALL JIANFAMOV @R1,AJNC MMMM18INC R1MOV R3,#01HMOV A,@R1LCALL JIANFAMOV @R1,ADEC R1MMMM18: INC R1INC R0MOV A,@R0MOV R3,AMOV A,@R1LCALL JIANFAMOV @R1,ADDDD: MOV 45H,40HMOV 46H,41HMOV 47H,42HINC 4AHAN12: RETJIANFA: CLR CMOV 4FH,R3CJNE A,4FH,JIANDA12NOPJIANDA12: JC JIANDA1SUBB A,R3SJMP JIANFA2JIANDA1: ADD A,R4SUBB A,R3SETB CJIANFA2: RETAN2: JNB 01H,AN21CLR IE.7MOV 45H,40HMOV 46H,41HMOV 47H,42HCLR 01HMOV R5,#01HLJMP AN22AN21: JB 02H,AN23MOV A,#01HXRL A,43HMOV 43H,AMOV 48H,ALJMP AN22AN23: MOV 43H,R5MOV A,R5MOV B,#03HMUL ABADD A,#4FHMOV R1,AMOV 43H,R5MOV 40H,@R1INC R1MOV 41H,@R1INC R1MOV 42H,@R1MOV A,R5CJNE A,4AH,AN24MOV R5,#00HAN24: INC R5AN22: RETDING:  PUSH 00HPUSH ACCPUSH PSWPUSH DPHPUSH DPLDJNZ R7,DINGSHI1MOV R0,#40HMOV R7,#28H;定时器中断40次,记下一个时间单位1次是250US,INC @R0CJNE @R0,#64H,DINGSHI1MOV @R0,#00HINC R0INC @R0CJNE @R0,#3CH,DINGSHI1MOV @R0,#00HINC R0INC @R0CJNE @R0,#3CH,DINGSHI1MOV @R0,#00HDINGSHI1: POP DPLPOP DPHPOP PSWPOP ACCPOP 00HRETITAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH     DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFHEND

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章