找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4585|回復(fù): 1
收起左側(cè)

Proteus仿真8086CPU 八人搶答器程序設(shè)計(jì)

[復(fù)制鏈接]
ID:409479 發(fā)表于 2020-4-25 09:26 | 顯示全部樓層 |閱讀模式
這是最近幾天做的,利用proteus仿真軟件,做的八人搶答器~
附圖片,代碼。和整個(gè)工程

最后說(shuō)一下,我用的proteus 8.6版本
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

原理圖部分

原理圖部分

代碼截取部分

代碼截取部分


8086源程序如下:
  1. ;====================================================================
  2. ; Main.asm file generated by New Project wizard
  3. ;
  4. ; Created:   周三 十一月 7 2018
  5. ; Processor: 8086
  6. ; Compiler:  MASM32
  7. ; Before starting simulation set Internal Memory Size
  8. ; in the 8086 model properties to 0x10000
  9. ;====================================================================

  10. DATA  SEGMENT
  11.         
  12.         ;U1
  13.         IOCON         EQU 8006H          ;設(shè)置com
  14.         IOA      EQU 8000H          ;設(shè)置A端口
  15.         IOB      EQU 8002H          ;設(shè)置B端口
  16.         IOC      EQU 8004H            ;設(shè)置C端口
  17.         
  18.         ;U2
  19.         IOCON2         EQU 9006H          ;設(shè)置com
  20.         IOA2     EQU 9000H          ;設(shè)置A端口
  21.         IOB2     EQU 9002H          ;設(shè)置B端口
  22.         IOC2     EQU 9004H            ;設(shè)置C端口
  23.         
  24.         X0      DB  0FEH
  25.         X1      DB  0FDH
  26.         X2      DB  0FBH
  27.         X3      DB  0F7H
  28.         
  29.         X4      DB  0EFH
  30.         X5      DB  0DFH
  31.         X6      DB  0BFH
  32.         X7      DB  07FH
  33.         
  34.         DISPLAY DB  6FH, 7FH, 07H, 7DH, 6DH, 66H, 4FH, 5BH, 06H
  35.         DATA    ENDS
  36.         CODE    SEGMENT
  37.         ASSUME  CS:CODE,DS:DATA
  38.         
  39.         
  40. START:  MOV     BX,OFFSET DISPLAY  ;把DISPLAY的有效地址送到BX

  41.         MOV        AL,80H             ;設(shè)置8255(1)的工作方式:方式0
  42.         MOV        DX,IOCON
  43.         OUT        DX,AL
  44.         
  45.         MOV        AL,80H             ;設(shè)置8255(2)的工作方式:方式0
  46.         MOV        DX,IOCON2
  47.         OUT        DX,AL
  48.         
  49.         
  50.         MOV        DX,IOC             ;按鍵保持高電平狀態(tài)   
  51.         MOV        AL,0FFH                  
  52.         OUT        DX,AL
  53.         
  54.         MOV        DX,IOC2            ;按鍵保持高電平狀態(tài)   
  55.         MOV        AL,0FFH                  
  56.         OUT        DX,AL
  57.         
  58.         MOV        DX,IOA2           
  59.         MOV        AL,0FFH                  
  60.         OUT        DX,AL
  61.         
  62.         MOV        AL,0FFH            ;設(shè)置LED燈初始保持關(guān)閉狀態(tài)
  63.         MOV        DX,IOB
  64.         OUT        DX,AL
  65.         
  66.         MOV     CX,9                ;設(shè)置重復(fù)次數(shù)

  67. BEGIN:  MOV     DX,IOC2             ;獲取IOC2的狀態(tài)
  68.         IN      AL,DX               ;把IOC2的狀態(tài)傳送到累加器AX(AL)
  69.         CMP     AL,X0               ;主持人按下啟動(dòng)
  70.         JE      TIMER
  71.         JMP     BEGIN
  72.         
  73. TIMER:        
  74.         MOV        AL,0FEH        
  75.         MOV        DX,IOA2                    
  76.         OUT        DX,AL
  77.         
  78.         MOV     DX,IOC             ;獲取IOC的狀態(tài)
  79.         IN      AL,DX              ;把IOC的狀態(tài)傳送到累加器AX(AL)
  80.         
  81.         CMP     AL,X0              ;比較兩個(gè)數(shù)的大小 LED0
  82.         JE      LED0
  83.         CMP     AL,X1              ;比較兩個(gè)數(shù)的大小 LED1
  84.         JE      LED1
  85.         CMP     AL,X2              ;比較兩個(gè)數(shù)的大小 LED2
  86.         JE      LED2
  87.         CMP     AL,X3              ;比較兩個(gè)數(shù)的大小 LED3
  88.         JE      LED3
  89.         CMP     AL,X4              ;比較兩個(gè)數(shù)的大小 LED4
  90.         JE      LED4
  91.         CMP     AL,X5              ;比較兩個(gè)數(shù)的大小 LED5
  92.         JE      LED5
  93.         CMP     AL,X6              ;比較兩個(gè)數(shù)的大小 LED6
  94.         JE      LED6
  95.         CMP     AL,X7              ;比較兩個(gè)數(shù)的大小 LED7
  96.         JE      LED7
  97.         
  98.         MOV        DX,IOA  
  99.         MOV     AL,[BX]            ;取一個(gè)數(shù)據(jù)送到AL
  100.         OUT        DX,AL              ;IO輸出對(duì)應(yīng)斷碼
  101.         INC     BX                 ;修改地址指針
  102.         DEC     CX                 ;循環(huán)次數(shù)減1
  103.         JZ      LED                ;CX=0跳轉(zhuǎn)LED
  104.         CALL        DELAY1             ;延時(shí)一段時(shí)間
  105.         
  106.         JMP        TIMER

  107. LED0:   MOV        AL,X0        
  108.         MOV        DX,IOB                     
  109.         OUT        DX,AL
  110.         
  111.         MOV        AL,0FDH        
  112.         MOV        DX,IOA2                    
  113.         OUT        DX,AL
  114.         
  115.         JMP        STOP
  116. LED1:   MOV        AL,X1        
  117.         MOV        DX,IOB                     
  118.         OUT        DX,AL
  119.         
  120.         MOV        AL,0FDH        
  121.         MOV        DX,IOA2                    
  122.         OUT        DX,AL
  123.         
  124.         JMP        STOP
  125. LED2:   MOV        AL,X2        
  126.         MOV        DX,IOB                     
  127.         OUT        DX,AL
  128.         
  129.         MOV        AL,0FDH        
  130.         MOV        DX,IOA2                    
  131.         OUT        DX,AL
  132.         
  133.         JMP        STOP               
  134. LED3:   MOV        AL,X3        
  135.         MOV        DX,IOB                     
  136.         OUT        DX,AL
  137.         
  138.         MOV        AL,0FDH        
  139.         MOV        DX,IOA2                    
  140.         OUT        DX,AL
  141.         
  142.         JMP        STOP
  143. LED4:   MOV        AL,X4        
  144.         MOV        DX,IOB                     
  145.         OUT        DX,AL
  146.         
  147.         MOV        AL,0FDH        
  148.         MOV        DX,IOA2                    
  149.         OUT        DX,AL
  150.         
  151.         JMP        STOP
  152. LED5:   MOV        AL,X5        
  153.         MOV        DX,IOB                     
  154.         OUT        DX,AL
  155.         
  156.         MOV        AL,0FDH        
  157.         MOV        DX,IOA2                    
  158.         OUT        DX,AL
  159.         
  160.         JMP        STOP
  161. LED6:   MOV        AL,X6        
  162.         MOV        DX,IOB                     
  163.         OUT        DX,AL
  164.         
  165.         MOV        AL,0FDH        
  166.         MOV        DX,IOA2                    
  167.         OUT        DX,AL
  168.         
  169.         JMP        STOP               
  170. LED7:   MOV        AL,X7        
  171.         MOV        DX,IOB                     
  172.         OUT        DX,AL
  173.         
  174.         MOV        AL,0FDH        
  175.         MOV        DX,IOA2                    
  176.         OUT        DX,AL
  177.         
  178.         JMP        STOP        
  179.         
  180. STOP:   MOV        DX,IOA  
  181.         MOV     AL,[BX]             ;取一個(gè)數(shù)據(jù)送到AL
  182.         OUT        DX,AL               ;IO輸出對(duì)應(yīng)斷碼
  183.         
  184.         MOV     DX,IOC2            
  185.         IN      AL,DX            
  186.         CMP     AL,X1
  187.         JE        START
  188.         
  189.         JMP     STOP
  190.         
  191. LED:    MOV        AL,0F0H            ;如果沒(méi)人搶答,四個(gè)LED閃爍
  192.         MOV        DX,IOB
  193.         OUT        DX,AL
  194.         CALL        DELAY2
  195.         MOV        AL,0FFH            
  196.         MOV        DX,IOB
  197.         OUT        DX,AL
  198.         
  199.         CALL        DELAY2
  200.         MOV        AL,0F0H            
  201.         MOV        DX,IOB
  202.         OUT        DX,AL
  203.         CALL        DELAY2
  204.         MOV        AL,0FFH            
  205.         MOV        DX,IOB
  206.         OUT        DX,AL
  207.         
  208.         CALL        DELAY2
  209.         MOV        AL,0F0H            
  210.         MOV        DX,IOB
  211.         OUT        DX,AL
  212.         CALL        DELAY2
  213.         MOV        AL,0FFH            
  214.         MOV        DX,IOB
  215.         OUT        DX,AL
  216.         CALL        DELAY2
  217.         
  218.         MOV     BX,OFFSET DISPLAY   ;把DISPLAY的有效地址送到BX
  219.         MOV     CX,9                ;設(shè)置重復(fù)次數(shù)
  220.         JMP     TIMER               
  221.         
  222. DELAY1:        
  223.         PUSH        AX
  224.         PUSH        CX
  225.         MOV        CX,0004H
  226. DELY2:        
  227.         CALL        DELAY2
  228.         LOOP        DELY2
  229.         POP        CX
  230.         POP        AX
  231.         RET
  232. DELAY2:        
  233.         PUSH        CX
  234.         MOV        CX,0f000H
  235.         ;--------------------------------------;
  236.         MOV     DX,IOC             ;獲取IOC的狀態(tài)
  237.         IN      AL,DX              ;把IOC的狀態(tài)傳送到累加器AX(AL)
  238.         
  239.         CMP     AL,X0              ;比較兩個(gè)數(shù)的大小 LED0
  240.         JE      LED0
  241.         CMP     AL,X1              ;比較兩個(gè)數(shù)的大小 LED1
  242.         JE      LED1
  243.         CMP     AL,X2              ;比較兩個(gè)數(shù)的大小 LED2
  244.         JE      LED2
  245.         CMP     AL,X3              ;比較兩個(gè)數(shù)的大小 LED3
  246.         JE      LED3
  247.         CMP     AL,X4              ;比較兩個(gè)數(shù)的大小 LED4
  248.         JE      LED4
  249.         CMP     AL,X5              ;比較兩個(gè)數(shù)的大小 LED5
  250.         JE      LED5
  251.         CMP     AL,X6              ;比較兩個(gè)數(shù)的大小 LED6
  252.         JE      LED6
  253.         CMP     AL,X7              ;比較兩個(gè)數(shù)的大小 LED7
  254.         JE      LED7
  255.         ;--------------------------------------;
  256. DELA1:        
  257.         LOOP        DELA1
  258.         POP        CX
  259.         RET
  260.         
  261. ENDLESS:
  262.         JMP     ENDLESS
  263. CODE    ENDS
  264.         END START
復(fù)制代碼
51hei.png
所有資料51hei提供下載:
八人搶答器.rar (81.07 KB, 下載次數(shù): 122)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:789456 發(fā)表于 2020-6-25 13:54 | 顯示全部樓層
除了黑幣還有別的方法看到你的工程文件嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表