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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
跳轉到指定樓層
樓主
ID:302296 發(fā)表于 2018-4-5 10:28 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
包括溫度檢測/4線步進電機/鍵盤模擬音量/點陣顯示等


單片機源程序如下:
  1. ;*******************************************************************************
  2. ;*文件: 5key_volume_con.asm                                                    *
  3. ;*版本: ver1.0                                                                 *
  4. ;*功能描述: 混合鍵盤模擬音量數(shù)碼管顯示                                         *
  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     ;用于顯示的計數(shù)器
  14.     KEYVAL      EQU     25H
  15.     DISPBUF     EQU     5EH
  16.     FIRST       BIT     P2.7    ;第一位數(shù)碼管的位控制
  17.     SECOND      BIT     P2.6    ;第二位數(shù)碼管的位控制
  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. ;以下是中斷程序,實現(xiàn)數(shù)碼管顯示
  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, 下載次數(shù): 11)


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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日噜噜噜夜夜爽爽狠狠视频, | 欧美无乱码久久久免费午夜一区 | 国产亚洲www | 亚洲欧美日韩电影 | 91精品国产乱码久久蜜臀 | 国产精品亚洲一区 | 精品欧美一区二区精品久久久 | 国产精品永久免费 | 国产精品久久久久久福利一牛影视 | 日韩av一二三区 | 久久精品国产99国产精品 | 成人福利片 | 成人黄色三级毛片 | 国产精品国产a级 | 涩涩操| 天堂中文字幕av | 中文字幕在线第一页 | 久久久久国产 | 久久夜视频 | 久草资源在线视频 | 国产精品久久久久久久久久软件 | 久久精品网 | 久久久久久免费毛片精品 | 亚洲国产精品成人综合久久久 | 欧洲av一区 | 亚洲午夜精品久久久久久app | 久久久久久久国产精品 | 日韩一区二区在线视频 | 欧美一区免费 | 久久成人高清视频 | 成人福利网站 | 北条麻妃国产九九九精品小说 | 亚洲激情一区二区三区 | 精品一区二区三区在线观看国产 | 福利一区在线观看 | 福利片在线| 午夜ww| 亚洲欧美激情精品一区二区 | 中文字幕在线观看日韩 | 一级午夜aaa免费看三区 | 91精品国产综合久久婷婷香蕉 |