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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2484|回復: 1
打印 上一主題 下一主題
收起左側

用單片機匯編語言寫的數字鐘 按鍵調節時分秒不能用 求幫助

[復制鏈接]
跳轉到指定樓層
樓主
可以通過按鍵調節時分秒,用8255擴展了IO口,并且擴展了RAM和ROM各8KB


單片機源程序如下:
  1.                 ORG 0000H
  2.                 AJMP MAIN
  3.                 ORG 000BH
  4.                 LJMP INTT0
  5.                 ORG 0100H
  6. ;/**********主程序***********/
  7. MAIN:
  8.                 MOV SP,#60H ;確立堆棧區
  9.                 MOV PSW,#00H
  10.                 MOV R0,#20H   ;RAM區首地址
  11.                 MOV R7,#5FH ;RAM區單元個數
  12. QL:
  13.                 MOV @R0,#00H ;RAM清零        
  14.                 INC R0
  15.                 DJNZ R7,QL

  16.                 MOV IP,#02H ;IP初始化,優先定時器0
  17.                 MOV IE,#82H ;IE初始化
  18.                 MOV TMOD,#01H ;定時器0方式1工作
  19.                 LCALL PP ;調P.子程序
  20. NEXT:
  21.                 LCALL KEY ;按鍵檢測子程序
  22.                 JB ACC.0,RUNF ;A鍵按下運行
  23.                 LCALL DISP ;調用顯示子程序
  24.                 SJMP NEXT
  25. RUNF:
  26.                 LCALL OUTT ;調傳送子程序
  27.                 LCALL TIME ;開電子鐘
  28. JK:
  29.                 LCALL DISP
  30.                 LCALL KEY
  31.                 JZ JK
  32.                 LCALL ANKEY        ;調用鍵功能子程序
  33.                 LCALL DISP
  34.                 SJMP JK
  35. ;/***P點顯示的8LED段碼初始化子程序***/
  36. PP:
  37.                 MOV 37H,#12 ;P點編碼送寄存器,對應最左LED  (共陽極,0CH )
  38.                 MOV R0,#30H ;第8個LED,最右LED,段碼存儲的地址
  39.                 MOV R7,#07H         ;第8到第2個LED,共7個,初始化段碼顯示空白
  40. PPP:
  41.                 MOV @R0,#10  ;顯示空白
  42.                 INC R0
  43.                 DJNZ R7,PPP
  44.                 RET
  45. ;/*********鍵掃描子程序***********/
  46. KEY:
  47.                 LCALL KEYS ;調用鍵值處理子程序
  48.                 JZ EXIT ;沒有鍵按下轉到返回
  49.                 LCALL DISP
  50.                 LCALL DISP ;調用顯示去抖動
  51.                 LCALL KEYS
  52.                 JZ EXIT
  53.                 MOV B,20H ;保存鍵值
  54. KEYSF:
  55.                 LCALL KEYS
  56.                 JZ KEYY ;鍵釋放,轉到恢復鍵值
  57.                 LCALL DISP ;調顯示子程序延時
  58.                 AJMP KEYSF ;等到鍵釋放
  59. KEYY:
  60.                 MOV A,B ;鍵值送A
  61. EXIT:        RET
  62. KEYS:
  63.                 ;MOV P1,#0FFH ;先向P1口寫1
  64.                 ;MOV A,P1 ;P1口值送A         (有按鍵按下,對應0,取反后1)
  65.                 ;CPL A
  66.                 ;ANL A,#0FH ;保存P1口的低4位
  67.                 ;MOV 20H,A ;A值送20H保存
  68.                 ;RET
  69.                                 ;MOV A,#82H
  70.                                 ;MOV DPTR,#0003H
  71.                                 ;MOVX @DPTR,A
  72.                                 ;MOV DPTR,#0001H
  73.                                 ;MOVX A,@DPTR
  74.                                 ;CPL A
  75.                                 ;ANL A,#0FH
  76.                                 ;MOV 20H,A
  77.                                 ;RET
  78.                 CLR A
  79.                 MOV A,P3
  80.                 CPL A
  81.                 ANL A,#0FH
  82.                 MOV 20H,A
  83.                 RET
  84. ;/********鍵功能子程序********/
  85. ANKEY:
  86.                 CLR EA ;關中斷
  87. CHECK:
  88.                 JB TR0,YXZ ;判斷是否運行
  89. K0:
  90.                 CJNE A,#01H,K1
  91.                 AJMP RUN ;A鍵按下,恢復運行,轉運行
  92. K1:
  93.                 CJNE A,#02H,K2
  94.                 AJMP KEY1 ;轉時調整
  95. K2:
  96.                 CJNE A,#04H,K3
  97.                 AJMP KEY2 ;轉分調整
  98. K3:
  99.                 CJNE A,#08H,OUT          ;轉
  100.                 AJMP KEY3 ;轉秒調整
  101. YXZ:
  102.                 JB ACC.0,STOP        ;A鍵按下,暫停
  103.                 AJMP OUT
  104. KEY1:
  105.                 MOV R0,#45H ;時調整
  106.                 LCALL ADD1 ;調加一子程序
  107.                 CLR C
  108.                 CJNE A,#24H,OUTT ;轉傳送顯示數據子程序
  109.                 ACALL CLR0 ;調時間清理子程序
  110.                 AJMP OUTT
  111. KEY2:
  112.                 MOV R0,#43H ;分調整
  113.                 LCALL ADD1
  114.                 CLR C
  115.                 CJNE A,#60H,OUTT
  116.                 ACALL CLR0
  117.                 AJMP OUTT
  118. KEY3:
  119.                 MOV R0,#41H ;秒調整
  120.                 ACALL ADD1
  121.                 CLR C
  122.                 CJNE A,#60H,OUTT
  123.                 ACALL CLR0
  124. ;/*****傳送顯示數據子程序*****/
  125. OUTT:
  126.                 MOV 30H,40H ;秒顯示單元40H-41H
  127.                 MOV 31H,41H
  128.                 MOV 32H,#11 ;"-"
  129.                 MOV 33H,42H ;分顯示單元42H-43H
  130.                 MOV 34H,43H
  131.                 MOV 35H,#11 ;"-"
  132.                 MOV 36H,44H ;時顯示單元44H-45H               
  133.                 MOV 37H,45H
  134.                 RET
  135. STOP:
  136.                 CLR TR0
  137.                 RET
  138. RUN:
  139.                 LCALL TIME ;調運行電子鐘子程序
  140. OUT:
  141.                 SETB EA ;無鍵按下或完成功能跳出
  142.                 RET
  143. ;/*****運行電子鐘子程序*****/                                                                        
  144. TIME:
  145.                 SETB EA
  146.                 MOV TL0,#0B0H  ;3CB0H
  147.                 MOV TH0,#3CH
  148.                 MOV R4,#20  ;50ms,20次循環
  149.                 SETB TR0 ;啟動定時器0
  150.                 RET
  151. ;/******定時器0中斷處理子程序******/
  152. INTT0:
  153.                 PUSH ACC
  154.                 PUSH PSW
  155.                 CLR ET0
  156.                 CLR TR0                                                                        
  157.                 MOV TL0,#0B0H  ;重新設置定時初值
  158.                 MOV TH0,#3CH
  159.                 SETB TR0
  160.                 DJNZ R4,OUTT0  ;r4-1 != 0 1秒未到,轉OUTTO
  161. ADDSS:
  162.                 MOV R4,#14H  ;20次計數
  163.                 MOV R0,#41H  ;秒十位
  164.                 ACALL ADD1
  165.                 CLR C
  166.                 CJNE A,#60H,ADDMM ;1分到
  167. ADDMM:
  168.                 JC OUTT0         ;1分,60秒未到
  169.                 ACALL CLR0         ;1分到,清零
  170.                 MOV R0,#43H         ;分十位
  171.                 ACALL ADD1
  172.                 CLR C
  173.                 CJNE A,#60H,ADDHH ;1小時到
  174. ADDHH:
  175.                 JC OUTT0
  176.                 ACALL CLR0
  177.                 MOV R0,#45H          ;時十位
  178.                 ACALL ADD1
  179.                 CLR C
  180.                 CJNE A,#24H,HOUR ;1天到
  181. HOUR:
  182.                 JC OUTT0
  183.                 ACALL CLR0
  184. OUTT0:
  185.                 MOV 30H,40H ;秒顯示單元40H-41H
  186.                 MOV 31H,41H
  187.                 MOV 32H,#11 ;"-"
  188.                 MOV 33H,42H ;分顯示單元42H-43H
  189.                 MOV 34H,43H
  190.                 MOV 35H,#11 ;"-"
  191.                 MOV 36H,44H ;時顯示單元44H-45H               
  192.                 MOV 37H,45H
  193.                 POP PSW
  194.                 POP ACC
  195.                 SETB ET0
  196.                 RETI
  197. ;/*****時間清理子程序*****/
  198. CLR0:
  199.                 CLR A
  200.                 MOV @R0,A
  201.                 DEC R0
  202.                 MOV @R0,A
  203.                 RET
  204. ;/*****加一子程序*****/
  205. ADD1:
  206.                 MOV A ,@R0  ;取十位
  207.                 DEC R0
  208.                 SWAP A
  209.                 ORL A,@R0  ;組合十位與個位           
  210.                 ADD A,#01H  ;加1
  211.                 DA A ;十進制調整
  212.                 MOV R3,A  ;暫存
  213.                 ANL A,#0FH  ;屏蔽十位
  214.                 MOV @R0,A  ;放入個位單元
  215.                 MOV A,R3  ;取值
  216.                 INC R0
  217.                 SWAP A
  218.                 ANL A,#0FH  ;屏蔽個位
  219.                 MOV @R0,A  ;放入十位單元
  220.                 MOV A,R3  ;數值放入A中等待判斷
  221.                 RET
  222. ;/*****顯示子程序*****/
  223. ……………………

  224. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
匯編語言數字鐘.zip (64.58 KB, 下載次數: 4)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:872319 發表于 2021-1-2 20:45 | 只看該作者
你代碼呢
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色视频a级毛片 | 欧美1区| 欧美成人免费在线 | 欧美在线观看一区二区 | 日韩久久久久久 | 久草精品视频 | 剑来高清在线观看 | 国产精品久久久久久久久免费软件 | 中文字幕一区二区三区乱码在线 | 欧美美女被c | 成人在线观看免费视频 | 成人精品在线观看 | 国产精品视频一 | 精品久久电影 | 黄色永久免费 | a在线免费观看 | 天天操天天天干 | 伊人免费在线观看 | 一区二区国产精品 | 中文天堂在线一区 | 久久久成人网 | 午夜影院在线观看 | 久久久久久成人网 | 亚洲欧美一区在线 | 国产超碰人人爽人人做人人爱 | 天天玩天天操天天干 | 天天操天天射天天 | 久久网站免费视频 | 久久久久久亚洲精品 | 欧美一级在线 | 久久99精品久久久 | 日日噜噜噜夜夜爽爽狠狠视频97 | 91av视频在线免费观看 | av在线黄 | 久久久久久久久国产成人免费 | 在线视频 欧美日韩 | 国产精品伦理一区 | 国产性色视频 | 九九99精品| 亚洲一区二区av | 一区二区三区国产精品 |