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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機2io5鍵盤模擬音量數碼管顯示匯編源碼與仿真實例

[復制鏈接]
跳轉到指定樓層
樓主
包括溫度檢測/4線步進電機/鍵盤模擬音量/點陣顯示等


單片機源程序如下:
  1. ;*******************************************************************************
  2. ;*文件: 5key_volume_con.asm                                                    *
  3. ;*版本: ver1.0                                                                 *
  4. ;*功能描述: 混合鍵盤模擬音量數碼管顯示                                         *
  5. ;*          上兩鍵:左鍵音量-,右鍵音量+                                         *
  6. ;*          下三鍵:左鍵音量24級,中鍵音量32級,右鍵音量05級                      *
  7. ;*備注:                                                                        *
  8. ;*軟件仿真: PROTEUS 6                                                          *
  9. ;*******************************************************************************
  10.     KEY_OK      BIT     00H
  11.     VOLNUMB     EQU     22H     
  12.     PHONE       EQU     21H
  13.     COUNTER     EQU     23H     ;用于顯示的計數器
  14.     KEYVAL      EQU     25H
  15.     DISPBUF     EQU     5EH
  16.     FIRST       BIT     P2.7    ;第一位數碼管的位控制
  17.     SECOND      BIT     P2.6    ;第二位數碼管的位控制
  18.     TMRVAR      EQU     60110   ;65536-5000*12/11.0592  定時器初值5毫秒
  19. ;===============================================================================        
  20.     ORG     0000H   
  21.     JMP     START
  22.     ORG     0*8+3               ;INT0中斷入口
  23.     RETI
  24.     ORG     1*8+3               ;TIMER0中斷入口
  25.     JMP     INT_T0              ;轉去定時器0中斷服務程序入口
  26.     ORG     2*8+3               ;INT1中斷入口
  27.     RETI
  28.     ORG     3*8+3               ;TIMER1中斷入口
  29.     RETI
  30.     ORG     4*8+3               ;串行中斷入口
  31.     RETI
  32. ;===============================================================================
  33. START:
  34.     mov     sp,#5fh
  35.     mov     p1,#0ffh
  36.     mov     p3,#0ffh         
  37.     mov     volnumb,#40h
  38.     call    init_t0
  39.     setb    ea
  40. ;===============================================================================
  41. LOOP:;主程
  42.     ACALL KEY
  43.     JB KEY_OK,KEYPROC
  44.     ACALL DISP_VOL
  45.     AJMP LOOP         
  46. ;===============================================================================  
  47. disp_vol:;顯示處理
  48.         mov a,volnumb
  49.         swap a
  50.         anl a,#0fh
  51.         mov dispbuf,a;十位到DISPBUF
  52.         mov a,volnumb
  53.         anl a,#0fh
  54.         mov dispbuf+1,a;個位到DISPBUF+1
  55.         ret
  56. ;==============================================================================
  57. keyproc:;鍵處理散轉
  58.     mov a,keyval
  59.     mov keyval,#00h
  60.     rl a
  61.     mov dptr,#tab_key
  62.     jmp @a+dptr
  63. tab_key:
  64.     ajmp loop
  65.     ajmp volup
  66.     ajmp voldw
  67.     ajmp volrsum
  68.     ajmp vol24
  69.     ajmp vol05
  70. ;===============================================================================
  71. KEY:;鍵盤程序
  72.          clr key_ok;清鍵按下標志
  73.          orl p3,#11000000b;下面三鍵判斷
  74.          clr key_ok
  75.          mov a,p3
  76.          orl a,#00111111b
  77.          cpl a
  78.          jz key_1
  79.          acall delay
  80.          acall delay
  81.          mov a,p3
  82.          orl a,#00111111b
  83.          jz key_1
  84.          nop
  85.          jnb acc.7,keydw1
  86.          nop
  87.          jb acc.6,key_ret
  88.          setb key_ok
  89.          mov keyval,#3
  90. key_ret1:mov a,p3
  91.          orl a,#00111111b
  92.          cpl a
  93.          jnz key_ret1;鍵松開否
  94.          ajmp key_ret
  95. key_ret:ret

  96. keydw1:  
  97.          nop
  98.          jnb acc.6,keydw2
  99.          setb key_ok
  100.          mov keyval,#4
  101.          jmp key_ret1
  102. keydw2:  setb key_ok
  103.          mov keyval,#5
  104.          jmp key_ret1  

  105. key_1:   
  106.          setb p3.6
  107.          clr p3.7 ;vol+按下
  108.          nop
  109.          nop
  110.          jnb p3.6,key01
  111.    
  112.          clr  p3.6;vol-按下
  113.          setb p3.7
  114.          nop
  115.          nop
  116.          jnb  p3.7,key02
  117.          
  118. keyexit: ajmp key_ret

  119. key01:
  120.          acall delay
  121.          acall delay
  122.          nop
  123.          nop
  124.          jb p3.6,key01_ret
  125.          setb key_ok
  126.          mov keyval,#1
  127.          nop
  128.          acall delay
  129.          acall delay
  130. key01_ret:jnb p3.6,$
  131.          ajmp keyexit
  132. key02:
  133.          acall delay
  134.          acall delay
  135.          nop
  136.          nop
  137.          jb p3.7,key02_ret
  138.          setb key_ok
  139.          mov keyval,#2
  140.          nop
  141.          acall delay
  142.          acall delay
  143. key02_ret:jnb p3.7,$
  144.          ajmp keyexit
  145. delay:;                去鍵抖延時
  146.          push psw
  147.          setb rs0
  148.          mov  r7,#50
  149.      d1: mov  r6,#50
  150.      d2: djnz r6,d2
  151.          djnz r7,d1
  152.          pop  psw
  153.          ret
  154. ;===============================================================================   
  155. volup:;鍵盤音量+
  156.         mov phone,volnumb
  157.         mov a,phone
  158.         xrl a,#70h
  159.         jz volup1
  160.         acall uaa
  161.         mov volnumb,phone
  162.         jmp loop
  163. volup1: mov volnumb,#70h
  164.         jmp loop
  165. ;===============================================================================
  166. voldw:;鍵盤音量-
  167.         mov phone,volnumb
  168.         mov a,phone
  169.         jz voldw1
  170.         acall daa
  171.         mov volnumb,phone
  172.         jmp loop
  173. voldw1: mov volnumb,#00h
  174.         jmp loop
  175. ;===============================================================================
  176. volrsum:;32級
  177.         mov volnumb,#32h
  178.         ajmp loop

  179. vol24:;24級
  180.        mov volnumb,#24h
  181.        ajmp loop

  182. vol05:;05級
  183.        mov volnumb,#05h
  184.        ajmp loop

  185. ;===============================================================================
  186. uaa:;遞增1
  187.         mov a,phone
  188.         swap a
  189.         anl a,#0fh
  190.         mov r5,a
  191.         mov a,phone
  192.         anl a,#0fh
  193.         nop
  194.         cjne a,#09h,uaa_1
  195.         nop
  196.         mov r4,#00h
  197.         inc r5
  198.         ajmp uaa_2
  199. uaa_1:
  200.         inc a
  201.         mov r4,a
  202. uaa_2:
  203.         mov a,r5
  204.         swap a
  205.         add a,r4
  206.         mov phone,a
  207.         ret
  208. ;===============================================================================
  209. daa:;遞減1
  210.         mov a,phone
  211.         swap a
  212.         anl a,#0fh
  213.         mov r5,a
  214.         mov a,phone;
  215.         anl a,#0fh
  216.         jnz daa_1
  217.         mov r4,#09h
  218.         dec r5
  219.         nop
  220.         sjmp daa_2
  221.   daa_1:
  222.         dec a
  223.         mov r4,a
  224.   daa_2:
  225.         mov a,r5;
  226.         swap a
  227.         add a,r4
  228.         mov phone,a
  229.         ret
  230. ;===============================================================================   
  231. INIT_T0:                ;初始化T0為5毫秒的定時器
  232.     MOV     TMOD,#01H
  233.     MOV     TH0,#HIGH(TMRVAR)
  234.     MOV     TL0,#LOW(TMRVAR)
  235.     SETB    ET0         ;開T0中斷
  236.     SETB    TR0         ;定時器0開始運行
  237.     RET                 ;返回
  238. ;===============================================================================
  239. ;以下是中斷程序,實現數碼管顯示
  240. INT_T0:                 ;定時器T0的中斷響應程序
  241.     PUSH    ACC         ;ACC入棧
  242.     PUSH    PSW         ;PSW入棧
  243.     MOV TH0,#HIGH(TMRVAR)
  244. ……………………

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

所有資料51hei提供下載:
Proteus單片機仿真實例大全[1].part001.rar (500 KB, 下載次數: 11)


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线观看成人小视频 | 亚洲视频在线播放 | 国产精品夜色一区二区三区 | 台湾av在线 | 精品视频在线一区 | 亚洲国产精品一区 | 久久久精品黄色 | 免费在线观看黄色av | av片在线观看 | 亚洲激情在线视频 | 国产欧美一区二区三区久久人妖 | 亚洲男人网| 午夜精品| 97伦理电影 | 欧美激情精品久久久久久 | 亚洲欧美在线观看视频 | 成人精品 | 国产免费va | 亚洲一区二区免费视频 | 久久久精品一区 | 我爱操| 欧美激情欧美激情在线五月 | 宅男噜噜噜66一区二区 | 日韩h| 久久国产精品亚洲 | 成人小视频在线观看 | 国产视频2021 | 91视视频在线观看入口直接观看 | 欧美精品久久久久久 | 视频一区二区中文字幕日韩 | 日本黄色大片免费 | 一级做a爰片性色毛片视频停止 | 2022精品国偷自产免费观看 | 亚洲欧美中文字幕 | 欧美日韩国产在线观看 | 亚洲欧美一区二区三区1000 | 久草视频2 | 国产一区二区三区四区五区加勒比 | 日韩精品一区二区三区中文在线 | 亚洲自拍偷拍免费视频 | av片在线播放 |