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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5793|回復: 3
收起左側

基于8086的八路搶答器仿真與源碼

[復制鏈接]
ID:276124 發表于 2018-1-15 12:41 | 顯示全部樓層 |閱讀模式
0.jpg

8086芯片八路搶答器仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.jpg

8086搶答器源程序如下:
  1. ;$CS$ $A1$ $A0$
  2. ;  1    1    1  控制端口
  3. ;  1    0    0  數據A
  4. ;  1    0    1  數據B
  5. ;  1    1    0  數據C

  6. C8255 EQU 306H                ;0011 0000 0110b
  7. IPA EQU 300H                ;0011 0000 0000b
  8. IPB EQU 302H                ;0011 0000 0010b
  9. IPC EQU 304H                ;0011 0000 0100b

  10. A8255 EQU 206H                ;0010 0000 0110b
  11. APA EQU 200H                ;0010 0000 0000b
  12. APB EQU 202H                ;0010 0000 0010b
  13. APC EQU 204H                ;0010 0000 0100b

  14. C8253 EQU 106H                ;0001 0000 0110b
  15. CPA EQU 100H                ;0001 0000 0000b
  16. CPB EQU 102H                ;0001 0000 0010b
  17. CPC EQU 104H                ;0001 0000 0100b

  18. data segment
  19.         ;blank DD 255 DUP(?)
  20.         LED DW 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H
  21.         HH  DW 00H
  22.         HL  DW 00H
  23.         LP  DW 0H
  24.         MS  DW 0H
  25.         sxh dw 0h,?,?
  26.         sss dw 0h,?,?
  27.         keydata db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,07fh        ;0 ~ 7掃描碼
  28.         segdata db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h
  29.         flag         db 0                ; 0 ~ F 對應字符代碼
  30.         zj          db 00111111b
  31.         tmp     db 00111111b
  32. data ends

  33. code        segment 'code' ;定義代碼段
  34.         assume cs:code,ds:data



  35. main proc far
  36.         
  37. start:        
  38.         mov ax,data        ;建立DS段地址
  39.         mov ds,ax

  40.         xor ax,ax
  41.         mov es,ax
  42.         
  43.         mov ax,offset IT
  44.         mov es:[8H],ax
  45.       
  46.         mov ax,seg IT
  47.         mov es:[0AH],ax
  48.                
  49. ;**********************************初始化C8255        
  50. LL:
  51.         mov        dx,306H        
  52.         mov al,92h
  53.         out dx,al
  54.         mov dx,304h
  55.         mov al,0FFh
  56.         out dx,al
  57. ;**********************************程序初始化
  58. L:
  59.         mov dx,302h
  60.         in al,dx
  61.         cmp al,0ffh
  62.         jz L
  63.         call delay10
  64.         cmp al,011111110b        ;判斷是不是按下開始鍵
  65.         jz  L1               
  66.         jmp L
  67. ;**********************************復位(目前貌似沒啥用了)
  68. L3:        
  69.         mov dx,IPC
  70.         mov al,011000000b
  71.         out dx,al                ;數碼管復位為0
  72.         
  73. ;***********************************開始 數碼管顯示為0
  74. L1:        
  75.         mov dx,304h
  76.         mov al,0c0h
  77.         mov flag,0
  78.         nop


  79. ;***********************************初始化A8255并進行按鍵檢測        
  80. AGAIN:
  81.         mov dx,0206h
  82.         mov al,92h
  83.         out dx,al
  84.         mov dx,0204h
  85.         mov al,0c0h
  86.         out dx,al
  87.         mov dx,0302h
  88.         in al,dx
  89.         cmp al,7fh
  90.         jz L3
  91.         cmp al,0F7h
  92.         jz LL

  93.         mov dx,0300h
  94.         in al,dx
  95.         cmp al,0FFh
  96.         jz AGAIN

  97.         call delay10                ;延時防抖動
  98.         in al,dx
  99.         cmp flag,1                ;按下鍵后,判斷flag是否為1
  100.         jz AGAIN

  101.         inc flag
  102.         mov bx,0
  103. ;**********************************根據按下的值查表
  104. GKEY:
  105.         mov ah,keydata[bx]
  106.         cmp al,ah
  107.         jz         DISP
  108.         inc bl
  109.         LOOP GKEY
  110. ;**********************************再查表并顯示搶答的一組
  111. DISP:
  112.         inc bl
  113.         mov al,segdata[bx]
  114.         mov dx,IPC
  115.         not al
  116.         out dx,al
  117.         mov tmp,al
  118.         mov dx,IPB
  119. ;*********************************延時等待計時
  120. waits:
  121.         call delay10
  122.         in al,dx
  123.         cmp al,11011111b        ;判斷是不是按下計時鍵
  124.         jz L4
  125.         jmp waits
  126. ;*********************************開始計時,計時完跳回程序最初位置
  127. L4:        
  128.         ;mov sss,1h
  129.         call jishi
  130.         ;mov sss,0h
  131.         jmp start
  132. ;********************************延時循環
  133. loop1:
  134.         loop $
  135.         loop AGAIN

  136. main endp

  137. jishi proc
  138. ;*********************************初始化
  139.         mov dx,A8255    ;選中控制寄存器   ***
  140.         mov al,80H   ;命令字 10000000
  141.         out dx,al    ;初始化8255
  142.       
  143.         mov dx,C8253   ;00010110  ;8253    ***
  144.         mov al,00010100B
  145.         out dx,al      
  146.       
  147.         mov ax,03E8H        

  148.         mov dx,CPA                ;****
  149.         mov al,0H
  150.         out dx,al

  151.         mov dx,C8253   ;001000        *****
  152.         mov al,00100100B
  153.         out dx,al

  154.         mov dx,CPA   ;001000        ******
  155.         mov al,ah
  156.         out dx,al

  157.         mov dx,APC        ;        ****
  158.         mov al,00010000B
  159.         out dx,al  
  160.         mov HH,00H
  161.         mov HL,06H
  162. ;********************************初始賦值
  163. LOP1:
  164.         mov ah,00000010B
  165.         mov LP,0
  166. ;********************************數碼管計數的顯示
  167. LSP:      

  168.         mov bx,offset HH
  169.         mov ax,LP
  170.         xlat
  171.         mov bx,offset LED
  172.         xlat
  173.          
  174.         mov dx,APB        ;        *****
  175.         out dx,al

  176.         mov dx,APA        ;        *****
  177.         mov al,ah
  178.         out dx,al

  179.         mov dx,APA        ;        *****
  180.         mov al,0H
  181.         out dx,al

  182.         shr ah,1
  183.         inc LP

  184.         cmp ah,0H
  185.         jz  LOP1
  186.         loop LSP        
  187. ire:
  188.         ret        
  189. jishi endp

  190. IT proc
  191. ;********************************計時100ms     
  192.         inc MS
  193.         cmp MS,64H
  194.         jne re
  195.         mov MS,0H
  196.         jmp ad
  197. ;********************************秒的第二位減為0時重新賦值為9
  198. init:
  199.         mov HH,0aH
  200.         DEC HL
  201.         jmp ad
  202. ;*******************************倒計時計數 C8255實時顯示搶答組號
  203. ad:
  204.         push dx
  205.         push ax
  206.         push bx
  207.         push cx
  208.         mov dx,C8255        ;0111 0000 0000b,8255A控制端口地址
  209.         mov al,92H        ;10010010b,方式選擇字:PA,PB輸入、PC輸出
  210.         out dx,al

  211.         mov al,tmp
  212.         mov dx,IPC
  213.         out dx,al

  214.         pop cx
  215.         pop bx
  216.         pop ax
  217.         pop dx
  218.         out dx,al
  219.         mov dx,IPB
  220.         in al,dx
  221.         cmp sxh,1h
  222.         jz start

  223.         cmp HL,0
  224.         JZ  out1
  225.         cmp HH,0
  226.         jz  init
  227.         jmp oend
  228. ;******************************計數判斷以及跳轉
  229. oend:
  230.         DEC HH        
  231.         cmp HH,00H
  232.         jne re

  233.         cmp HL,00H
  234.         jz out2

  235.         cmp HL,00H
  236.         jz re
  237.         jmp re
  238. out1:
  239.         cmp HH,0
  240.         jnz oend
  241.         jmp ire
  242. out2:
  243.         mov HH,0
  244.         MOV HL,0
  245. re:            
  246.         iret
  247. IT endp

  248. delay10 proc
  249.         mov cx,8820
  250.         loop $
  251.         ret
  252. delay10 endp                 ;延時

  253. code        ends        ;代碼段結束
  254.         end start
復制代碼

所有資料51hei提供下載:
基于8086的八路搶答器.7z (63.4 KB, 下載次數: 151)
回復

使用道具 舉報

ID:359970 發表于 2019-12-29 10:49 | 顯示全部樓層
感謝dalao,很有幫助
回復

使用道具 舉報

ID:664974 發表于 2019-12-29 13:58 來自手機 | 顯示全部樓層
不錯的資料,感謝
回復

使用道具 舉報

ID:1120780 發表于 2024-5-15 00:00 | 顯示全部樓層
仿真打不開,怎么弄
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品99久久免费观看 | 中文字幕一区二区三区不卡 | 国产成人精品久久二区二区 | 精品免费视频 | 操操日| 色免费视频 | 欧美二区三区 | 免费看国产一级特黄aaaa大片 | 日韩黄色av| 午夜精品一区二区三区在线观看 | 欧美成人免费在线 | 国产一区中文字幕 | 91免费看片 | 亚洲一二三区不卡 | 亚洲精品18 | 日日干夜夜操天天操 | 国产精品乱码一二三区的特点 | 青青伊人久久 | 日韩在线免费视频 | 欧美中文字幕一区二区三区亚洲 | 国产四区 | 国产精品视频一区二区三区不卡 | 凹凸日日摸日日碰夜夜 | 国产.com | 亚洲国产成人精品女人久久久 | 欧美13videosex性极品 | 成人精品毛片国产亚洲av十九禁 | 亚洲国产精品日韩av不卡在线 | 亚洲一区久久 | 国产视频一区二区三区四区五区 | 免费大黄视频 | 欧美精品久久久 | 久久国产精品-久久精品 | 久久久久久亚洲精品 | 99精品国产一区二区三区 | 99精品久久久 | 九九久久在线看 | 超碰成人免费观看 | 成人精品一区二区三区中文字幕 | 色约约视频 | 国产成人麻豆免费观看 |