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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7656|回復: 0
收起左側

通過單片機外部中斷控制數碼管動態顯示4位數字 含匯編源碼,原理圖,和hex文件

[復制鏈接]
ID:275296 發表于 2018-1-12 17:53 | 顯示全部樓層 |閱讀模式
這是之前做的外部中斷控制數碼管動態顯示數字的程序,
使用匯編代碼,基于51單片機,
附件包含單片機匯編源碼,
和Proteus仿真圖,以及hex文件,
完全自己原創,望多
捕獲.PNG

單片機匯編語言源程序:
  1. ORG 0000H                        ;開始
  2.         LJMP START                        ;跳轉到主程序
  3.         ORG 0003H                        ;外部中斷0
  4.                 LJMP PINT0                        ;跳轉到0號中斷服務子程序
  5.                 ORG 0013H                        ;外部中斷1
  6.                         LJMP PINT1                        ;跳轉到2號中斷服務子程序
  7.                         ORG 0100H                        ;程序地址
  8.                                 START:        MOV SP, #60H                        ;設置堆棧
  9.                                 MOV P0,#0FFH                        ;P0初始化為FF
  10.                                 MOV P2,#00H                                ;P2口初始化為0
  11.                                 SETB IT0                        ;設置0號中斷觸發方式為下降沿觸發
  12.                                 SETB IT1                        ;設置2號中斷觸發方式為下降沿觸發
  13.                                 SETB EA                                ;合上中斷總開關(允許中斷)
  14.                                 SETB EX0                        ;合上分開關
  15.                                 SETB EX1                        ;合上分開關
  16.                                 MOV R1,#00H                        ;R1清零
  17.                                 MOV R2,#00H                        ;R2清零
  18.                                 MOV R3,#00H                        ;R3清零
  19.                                 MOV R4,#00H                        ;R4清零
  20.                                 MOV A,#11H                        ;A設初值        
  21.                                 LJMP MAIN                        ;初始化完成,進入主程序
  22.                                 
  23.                                 ORG 0200H                        ;主程序地址
  24.                                         MAIN:        MOV P2,A                        ;選擇位選線
  25.                                         MOV 31H,R1                        ;千位存入31H單元
  26.                                         MOV 32H,R2                        ;百位存入32H單元
  27.                                         MOV 34H,R3                        ;十位存入34H單元
  28.                                         MOV 38H,R4                        ;個位存入38H單元
  29.                                         PUSH ACC                        ;保護現場
  30.                                         ANL A,#0FH                        ;保留A的第四位
  31.                                         ADD A,#30H                        ;使A與數位存放地址對應
  32.                                         MOV R0,A                ;數位存放地址存入R0
  33.                                         MOV A,@ R0                        ;取所需數位的數字
  34.                                         LCALL DISPLAY                        ;查表
  35.                                         MOV P0,A                        ;顯示所需數字
  36.                                         LCALL DELAY                        ;延時
  37.                                         POP ACC                        ;恢復現場
  38.                                         RL A                        ;A左循環移位
  39.                                         SJMP MAIN                ;死循環
  40.                                        
  41.                                         ORG 0400H                        ;0號中斷服務子程序地址
  42.                                                 PINT0:        CJNE R4,#9,L1                        ;個位不為9跳轉
  43.                                                 CJNE R3,#9,L2                        ;十位不為9跳轉
  44.                                                 CJNE R2,#9,L3                        ;百位不為9跳轉
  45.                                                 CJNE R1,#9,L4                        ;千位不為9跳轉
  46.                                                 MOV R1,#00H                        ;千位置零
  47.                                                 MOV R2,#00H                        ;百位置零
  48.                                                 MOV R3,#00H                        ;十位置零
  49.                                                 MOV R4,#00H                        ;個位置零
  50.                                                 RETI                        ;中斷返回
  51.                                                 L1:INC R4                        ;個位加一
  52.                                                 RETI                        ;中斷返回
  53.                                                 L2:INC R3                        ;十位加一
  54.                                                 MOV R4,#00H                        ;個位置零
  55.                                                 RETI                        ;中斷返回
  56.                                                 L3:INC R2                        ;百位加一
  57.                                                 MOV R4,#00H                        ;個位置零
  58.                                                 MOV R3, #00H                        ;十位置零
  59.                                                 RETI                        ;中斷返回
  60.                                                 L4:INC R1                        ;千位加一
  61.                                                 MOV R2,#00H                        ;百位置零
  62.                                                 MOV R3,#00H                        ;十位置零
  63.                                                 MOV R4,#00H                        ;個位置零
  64.                                                 RETI                        ;中斷返回
  65.                                                 
  66.                                                 ORG 0600H                        ;2號中斷服務子程序地址
  67.                                                         PINT1:        CJNE R4,#0,LA                        ;個位不為0跳轉
  68.                                                         CJNE R3,#0,LB                        ;十位不為0跳轉
  69.                                                         CJNE R2,#0,LC                        ;百位不為0跳轉
  70.                                                         CJNE R1,#0,LD                        ;千位不為0跳轉
  71.                                                         MOV R1,#9                        ;千位置9
  72.                                                         MOV R2,#9                        ;百位置9
  73.                                                         MOV R3,#9                        ;十位置9
  74.                                                         MOV R4,#9                        ;個位置9
  75.                                                         RETI                        ;中斷返回
  76.                                                         LA:DEC R4                        ;個位減一
  77.                                                         RETI                        ;中斷返回
  78.                                                         LB:DEC R3                        ;十位減一
  79.                                                         MOV R4,#9                        ;個位置9
  80.                                                         RETI                        ;中斷返回
  81.                                                         LC:DEC R2                        ;百位減一
  82.                                                         MOV R4,#9                        ;個位置9
  83.                                                         MOV R3,#9                        ;十位置9
  84.                                                         RETI                        ;中斷返回
  85.                                                         LD:DEC R1                        ;千位減一
  86.                                                         MOV R2,#9                        ;百位置9
  87.                                                         MOV R3,#9                        ;十位置9
  88.                                                         MOV R4,#9                        ;個位置9
  89.                                                         RETI                        ;中斷返回
  90.                                 
  91.                                                         ORG 0800H                        ;延時子程序地址
  92.                                                                 DELAY:        MOV R7, #30                        ;設置外層循環次數
  93.                                                                 DEL1:        MOV R6,#40                        ;設置內層循環次數
  94.                                                                 DEL2:        DJNZ R6,DEL2                        ;內層循環
  95.                                                                 DJNZ R7,DEL1                        ;外層循環
  96.                                                                 RET                        ;返回
  97.                                                                
  98.                                                                 ORG 2600H                        ;查表子程序地址
  99.                                                                         DISPLAY:        ADD A, #01H                        ;查表位置調整
  100.                                                                         MOVC A, @A+PC                        ;查表
  101.                                                                         RET                        ;返回
  102.                                                                         
  103.                                                                         TAB: DB        0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H                        ;7段碼常數表
  104.                                                                         END                                ;程序結束
復制代碼

多指教全部資料51hei下載地址:
10-27-外部中斷控制數碼管動態顯示4位數字.zip (10.14 KB, 下載次數: 55)


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久婷婷| 亚洲一区二区在线视频 | 免费看a| 欧美日韩精品一区 | 激情久久久久 | 久久国产精品99久久久久久丝袜 | 视频一区二区三区中文字幕 | 日韩在线免费视频 | 成人小视频在线观看 | 麻豆一区| 91网视频 | 精品国产一区二区三区四区在线 | 久久综合色综合 | 成人久久视频 | 91精品麻豆日日躁夜夜躁 | 亚洲a人| 国产亚洲精品美女久久久久久久久久 | 亚洲激情在线观看 | 中文字幕综合在线 | 国产一级视频在线观看 | 337p日本欧洲亚洲大胆精蜜臀 | 国产精品久久久久久久久久久久 | 成人精品一区二区户外勾搭野战 | 91精品久久久久久久 | 成人精品一区 | 久久久蜜桃 | 亚洲精品视频免费 | 亚洲视频在线看 | 超碰成人av| 亚洲天天干 | 国产在线a视频 | 午夜国产 | 精品亚洲一区二区三区四区五区 | 中文字幕欧美在线观看 | 亚洲国产欧美一区二区三区久久 | 一区二区三区视频 | 超碰在线免费公开 | 成人国产一区二区三区精品麻豆 | 五月婷婷丁香婷婷 | 色综合99 | 久久91视频 |