久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 單片機(jī)數(shù)字時(shí)鐘匯編語言程序與Proteus仿真圖 能顯示秒、分、時(shí) [打印本頁]

作者: zxcvbnm123c4    時(shí)間: 2022-5-5 23:42
標(biāo)題: 單片機(jī)數(shù)字時(shí)鐘匯編語言程序與Proteus仿真圖 能顯示秒、分、時(shí)
這是基于單片機(jī)的簡易數(shù)字時(shí)鐘,能顯示秒、分、時(shí)。其中第一個(gè)按鍵按下后是時(shí)加一,第二個(gè)按鍵按下后是分加一,第三個(gè)按鍵是清零
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)匯編語言程序:
  1. ;====================================================================
  2. ; Main.asm file generated by New Project wizard
  3. ;
  4. ; Created:   周五 5月
  5. ; Processor: 80C51
  6. ; Compiler:  ASEM-51 (Proteus)
  7. ;====================================================================

  8. $NOMOD51
  9. $INCLUDE (8051.MCU)

  10. ;====================================================================
  11. ; DEFINITIONS
  12. ;====================================================================

  13. ;====================================================================
  14. ; VARIABLES
  15. ;====================================================================

  16. ;====================================================================
  17. ; RESET and INTERRUPT VECTORS
  18. ;====================================================================

  19.       ; Reset Vector
  20.       
  21.         ORG 0000H;程序開始地址
  22.         LJMP MAIN;跳到MAIN
  23.         ORG 000BH;TO 中斷程序入口
  24.         LJMP INTT0;跳到To開始執(zhí)行程序
  25.         ORG 0100H

  26. MAIN:
  27.         MOV @R0,#70H;準(zhǔn)備7OH-79H 10個(gè)字節(jié)空間
  28.         MOV        R7,#09H

  29. XIANSHICHUSHIHUA:
  30.         MOV @R0,#00H;將70H-79H初始化為00H
  31.         INC R0
  32.         DJNZ        R7,XIANSHICHUSHIHUA
  33.         MOV TMOD,#01H;設(shè)To為16位定時(shí)器
  34.         MOV TL0,#0B0H;賦初始值
  35.         MOV TH0,#3CH
  36.         SETB EA;CPU開中斷
  37.         SETB ET0;允許To中斷
  38.         SETB TR0;啟動(dòng)To
  39.         MOV        R4,#14H;1S設(shè)定初始值

  40. LOOP:
  41.         LCALL         XIANSHI;調(diào)用顯示程序
  42.         JB P1.0,LOOP1;判斷P1.0有無按下
  43.         LCALL         HOUR_SET;調(diào)用小時(shí)設(shè)定程序
  44.         AJMP         LOOP

  45. LOOP1:
  46.         JB P1.1,LOOP2;判斷P1.1有無按下
  47.         LCALL MIN_SET;調(diào)用分設(shè)定程序
  48.         AJMP LOOP

  49. LOOP2:
  50.         JB P1.2,LOOP3;判斷P1.2有無按下
  51.         LCALL         CLR0;調(diào)用清零程序,這里只清零秒
  52.         AJMP LOOP

  53. LOOP3:
  54.         AJMP LOOP

  55. HOUR_SET:
  56.         ACALL         XIANSHI;調(diào)用顯示程序
  57.         JNB P1.0,HOUR_SET ;P1.0按下跳到調(diào)小時(shí)程序
  58.         INC 78H;小時(shí)的個(gè)位加1
  59.         MOV R6,78H
  60.         CJNE R6,#10,HOUR1 ;個(gè)位不為10跳到HOUR1
  61.         MOV 78H,#0;個(gè)位清零
  62.         INC 79H;十位加1
  63.         JMP EXIT;跳到EXIT

  64. HOUR1:
  65.         MOV R6,78H
  66.         CJNE R6,#4,EXIT;個(gè)位不為4跳到EXIT
  67.         MOV R6,79H
  68.         CJNE R6,#2,EXIT;十位不為2跳到EXIT
  69.         MOV 78H,#0;小時(shí)清零
  70.         MOV 79H,#0

  71. EXIT:
  72.         RET;調(diào)時(shí)返回

  73. MIN_SET:
  74.         CALL         XIANSHI;調(diào)用顯示程序
  75.         JNB P1.1,MIN_SET;P1.1按下跳到調(diào)分程序
  76.         INC        76H;分的個(gè)位加1
  77.         MOV        R5,76H
  78.         CJNE        R5,#10,EXIT ;個(gè)位不為10 跳到 MIS1
  79.         MOV 76H,#0;個(gè)位清零
  80.         INC         77H;十位加1
  81.         MOV        R5,77H
  82.         CJNE R5,#6,EXIT;十位不為6跳到MIS1
  83.         MOV         77H,#0;分清零
  84.         MOV         76H,#0
  85.         RET

  86. INTT0:
  87.         PUSH        ACC;入棧,保護(hù)現(xiàn)場
  88.         PUSH         PSw
  89.         CLR         ET0;關(guān)閉中觀允許
  90.         CLR TR0;關(guān)閉中斷
  91.         MOV         A,#0B7H;中斷響應(yīng)時(shí)間同步修正
  92.         ADD         A,TL0;低8位初值修正
  93.         MOV         TL0        ,A
  94.         MOV         A,#3CH;高8位初值修正
  95.         ADDC        A,TH0
  96.         MOV         TH0,A
  97.         SETB         TR0;開啟定時(shí)器TO
  98.         DJNZ        R4,OUT;20 次中斷未到中斷退出

  99. ADDS:
  100.         MOV        R4,#14H;20次中斷到重賦初值
  101.         MOV        R0,#71H;指向秒計(jì)時(shí)單元
  102.         ACALL         ADD1;調(diào)用ADD1
  103.         MOV         A,R3;秒數(shù)據(jù)放入A
  104.         CLR         C;清零進(jìn)位標(biāo)志
  105.         CJNE         A,#60,ADDMM;秒是否到了60.是則跳轉(zhuǎn)

  106. ADDMM:
  107.         JC         OUT;小雨60秒中斷退出
  108.         ACALL         CLR0;等于60秒調(diào)用 CLRO清零秒
  109.         MOV R0,#77H;指向分計(jì)時(shí)單元
  110.         ACALL         ADD1;調(diào)用 ADD1
  111.         MOV         A,R3;分?jǐn)?shù)據(jù)放入A
  112.         CLR         C;清零進(jìn)位標(biāo)志
  113.         CJNE         A,#60,ADDH;分是否到了60,是則跳轉(zhuǎn)

  114. ADDH:
  115.         JC         OUT;小于60分時(shí)中斷退出
  116.         ACALL         CLR0;等于60分調(diào)用 CLRO清零秒
  117.         MOV R0,#79H;指向時(shí)計(jì)時(shí)單元
  118.         ACALL         ADD1;調(diào)用ADD1
  119.         MOV         A,R3;時(shí)數(shù)據(jù)放入A
  120.         CLR C;清零進(jìn)位標(biāo)志
  121.         CJNE         A,#24H,HOUR ;時(shí)是否到了24是則跳轉(zhuǎn)

  122. HOUR:
  123.         JC         OUT;小于24時(shí)時(shí)中斷退出
  124.         ACALL         CLR0;調(diào)用 CLRO

  125. OUT:
  126.         MOV         72H,76H;將分的存儲地址轉(zhuǎn)移
  127.         MOV         73H,77H
  128.         MOV         74H,78H;將時(shí)的存儲地址轉(zhuǎn)移
  129.         MOV         75H,79H
  130.         POP PSW;恢復(fù)現(xiàn)場
  131.         POP ACC
  132.         SETB         ET0
  133.         RETI

  134. CLR0:
  135.         CLR         A;清零A
  136.         MOV @R0,A;清零RO存放地址中的數(shù)據(jù)
  137.         DEC R0;RO地址減1
  138.         MOV @R0,A
  139.         RET

  140. ADD1:
  141.         MOV         A,@R0;取當(dāng)前計(jì)時(shí)單元數(shù)據(jù)到A
  142.         DEC R0;指向前一地址
  143.         SWAP         A;A中數(shù)據(jù)高四位與低四位交換
  144.         ORL         A,@R0;前一地址中數(shù)據(jù)放入A中低四位
  145.         ADD         A,#01H;A加1操作
  146.         DA                A;十進(jìn)制調(diào)整
  147.         MOV         R3,A;移入R3寄存器
  148.         ANL                 A,#0FH;高四位變0
  149.         MOV         @R0,A;放回前一地址單元
  150.         MOV         A,R3;取回R3中暫存數(shù)據(jù)
  151.         INC R0;指向當(dāng)前地址單元
  152.         SWAP         A;A中數(shù)據(jù)高四位與低四位交換
  153.         ANL         A,#0FH;高四位變0
  154.         MOV @R0,A;數(shù)據(jù)放入當(dāng)削地址單元中
  155.         RET;子程序返回

  156. XIANSHI:
  157.         MOV R1,#70H;指向顯示數(shù)據(jù)首址
  158.         MOV R5,#01H;掃描控制字初值

  159. PLAY:
  160.         MOV         A,R5;掃描字放入A
  161.         MOV         P2,A;從P2口輸出
  162.         MOV A,@R1;取顯示數(shù)據(jù)到A
  163.         MOV DPTR,#TAB;取段碼表地址
  164.         MOVC         A,@A+DPTR;查顯示數(shù)據(jù)對應(yīng)段碼
  165.         MOV P0,A;段碼放入PO口
  166.         LCALL         DL1MS;顯示1MS
  167.         INC         R1;指向下一地址
  168.         MOV         A,R5;掃描控制字放入A
  169.         JB         ACC.5,ENDOUT ;ACC.5=0時(shí)一次顯示結(jié)束
  170.         RL        A;A中數(shù)據(jù)循環(huán)左移
  171.         MOV         R5,A;放回R5內(nèi)
  172.         AJMP         PLAY;跳回PLAY循環(huán)

  173. ENDOUT:
  174.         CLR         P2.5;一次顯示結(jié)束,P2口復(fù)位
  175.         RET;子程序返回

  176. TAB:
  177. DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

  178. DL1MS:        ;1毫秒延時(shí)程序
  179.         MOV R6,#14H
  180. DL1:
  181.         MOV R7,#19H
  182. DL2:
  183.         DJNZ R7,DL2
  184.         DJNZ R6,DL1
  185.         RET
  186.         END

  187. ;====================================================================
  188. ; CODE SEGMENT
  189. ;====================================================================

  190. ;====================================================================
  191.       
復(fù)制代碼

Proteus8.8仿真文件下載: 時(shí)鐘.zip (22.74 KB, 下載次數(shù): 39)





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲电影在线播放 | 久久久成| 日韩1区 | 精品国产一区二区在线 | 久久人| 91久色| 色婷婷精品久久二区二区蜜臂av | 亚洲精品三级 | 欧美黑人又粗大 | 国精品一区二区 | 久久久入口 | 在线观看欧美日韩视频 | 蜜桃特黄a∨片免费观看 | 欧美一极视频 | 91一区二区| 久久青草av | 天天碰日日操 | 亚洲精品在线看 | 久久精品国产清自在天天线 | 天天澡天天操 | 欧美日韩最新 | a爱视频 | 91国内视频在线 | 久久久综合色 | 一级国产精品一级国产精品片 | 亚洲自拍一区在线观看 | 成人久久18免费网站图片 | 国产精品一区久久久久 | 国产一区二区三区高清 | 欧美三级成人理伦 | 午夜资源 | 久久精品| 日韩在线观看 | 亚洲色图在线观看 | h视频免费看 | 免费的日批视频 | 久久88| 亚洲视频一区在线观看 | 国产精品久久久久无码av | 欧美一区二区三区 | 91最新入口 |