亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? code.asm

?? 十字路口的交通燈管理,紅綠燈亮滅的時間安排,還有閃爍時間
?? ASM
字號:
;路口定義:1路口為東,2路口為南,3路口為西,4路口為北
CODE 		SEGMENT
ASSUME 		CS:CODE
INTPORT1  	EQU 	0020H    ;定義8259的控制口地址,用來寫ICW1             
INTPORT2 	EQU 	0021H     ;定義8259的數(shù)據(jù)口地址,用來寫ICW2,3,4          
INTQ3	 	EQU 	INTERUPT3  ;定義3號中斷向量對應的處理函數(shù)
INTQ7	 	EQU 	INTERUPT7  ;定義7號中斷向量對應的處理函數(shù)
CONTPORT 	EQU 	00DFH      ;8255的控制口地址
DATAPORT 	EQU 	00DEH	   ;8255的數(shù)據(jù)口地址
CtrPort EQU 0073H    ;8255的方式選擇控制字地址  
APort	EQU 0070H    ;8255的A口地址,A口在本實驗中未使用
BPort	EQU 0071H    ;8255的B口地址,PB4-PB7控制四個路口直行燈的亮滅(本例為PB0-PB3)
CPort	EQU 0072H    ;8255的C口地址,PC0-PC3控制四個路口左轉(zhuǎn)燈,PC4-PC7控制右轉(zhuǎn)燈,0為亮,1為滅??	

DATA1	 	EQU 	0500H  ;電平錯誤顯示區(qū)首地址,INTQ7顯示錯誤時使用
DATA2	 	EQU 	0508H   ;在CONVERS1中使用到 ,為顯示字符區(qū)首地址
DATA4	 	EQU 	0520H   ;顯示緩沖區(qū)的首地址              
DATA5	 	EQU 	0528H   ;LEDDISP中使用,保存顯示到第幾位
DATA6	 	EQU 	0529H   ; INTERUPT3 中使用,用于保存8259收到8253時鐘脈沖的次數(shù)
DATA7	 	EQU 	052AH    ;保存當前四個路口的燈處于哪個狀態(tài)(共4個)
DATA8	 	EQU 	052BH    ;保存剩余的秒數(shù),在FORMAT函數(shù)的最后進行初始定義             
DATA9	 	EQU 	052CH    ;保存剩余的秒數(shù),在FORMAT函數(shù)的最后進行初始定義
DATA10	 	EQU 	052EH    ;在CONVERS2中使用,作為指針,指向顯示緩沖區(qū)的某一位 

                ORG     1800H      ;存儲地址的偏移量
START:
;------------------------ 初始化存儲空間和各個芯片--------------------------------
                CALL    FORMAT
                CLD
                ;初始化8253
		MOV     DX,004BH      
                MOV     AL,0B6H                              
                OUT     DX,AL                                
                MOV     DX,004AH
                MOV     AL,50H
                OUT     DX,AL
                MOV     AL,0C3H
                OUT     DX,AL    
		; 定義8255的工作方式,三個端口均工作于方式0,均為輸出口
	        MOV AL,80H
	        MOV DX,CtrPort 
		OUT DX,AL                            

                ;寫中斷向量
		MOV     AX,0H
                MOV     DS,AX
                CALL    writeINT        

                MOV     AL,13H            ;初始化8259
                MOV     DX,INTPORT1
                OUT     DX,AL
                MOV     AL,08H
                MOV     DX,INTPORT2
                OUT     DX,AL
                MOV     AL,0BH
                OUT     DX,AL
                MOV     AL,0F7H
                OUT     DX,AL
;--------------------------------------------------------------------------------
;---------------------等待模塊,用來調(diào)用中斷服務程序和交通燈狀態(tài)程序------------------
WATING:     STI   ;開中斷
            CMP  BYTE PTR DS:[DATA7],01H     ;判斷是否為狀態(tài)一
            JA   WATING1            ;如果不是則轉(zhuǎn)WATING1
            CMP  BYTE PTR DS:[DATA8],03H  ;如果是狀態(tài)一,看當前時間剩余值是否大于3
            JNA  ZT1F   ;如果小于等于3秒,則調(diào)用狀態(tài)一閃爍程序
            CALL  ZT1    ;如果大于3秒,則調(diào)用狀態(tài)一程序
            JMP  WATING
WATING1:   CMP  BYTE PTR DS:[DATA7],02H
            JA   WATING2
            CMP  BYTE PTR DS:[DATA8],03H
            JNA  ZT2F
            CALL  ZT2
            JMP  WATING
WATING2:   CMP  BYTE PTR DS:[DATA7],03H
            JA   WATING3
            CMP  BYTE PTR DS:[DATA8],03H
            JNA  ZT3F
            CALL  ZT3
            JMP  WATING
WATING3:    JMP WATING4    ;跳轉(zhuǎn)到WATING4,因為JNA指令只能在段內(nèi)跳轉(zhuǎn)范圍為-127b-128b,
;-------------------------------------------------------------------------------------
;-----------------------------交通燈狀態(tài)子程序-----------------------------------------
;-------------狀態(tài)1: 2、4路口直行燈點亮------------------
ZT1:    PUSH  AX
        PUSH  DX
        MOV AL,01010000B  ;設置2,4路口直行燈亮
        MOV DX,BPort      ;BPort為8255A的PB口的地址
        OUT DX,AL         ;更改PB口的值,從而改變LED燈顯示的狀態(tài)
        MOV AL,00H      ;設置四個路口左轉(zhuǎn)燈,右轉(zhuǎn)燈全部關閉
        MOV DX,CPort     ;CPort為8255A的PC口的地址
        OUT DX,AL        ;更改PC口的值,從而改變LED燈顯示的狀態(tài)
        POP  DX
        POP AX
        RET
ZT1F:           ;狀態(tài)一閃爍程序: 2、4路口直行燈閃爍
        PUSH  AX
        PUSH  DX
	MOV CX,12H ;定義閃爍12次
ZT1Flash:MOV AL,00H ;燈滅
	MOV DX,BPort
	OUT DX,AL
	CALL DELAY2 	;短延時
        MOV DX,BPort
        MOV AL,01010000B ;燈亮
	OUT DX,AL
	CALL DELAY2 	;短延時
	LOOP ZT1Flash   ;循環(huán)
        POP  DX
        POP AX
        JMP WATING
;-----------------------------------------------------------------
;---------------狀態(tài)2: 1、3路口左轉(zhuǎn)燈亮,2、4路口右轉(zhuǎn)燈亮---------

;------------------------------------------------------------
;------------------------------交通燈閃爍延時程序------------
DELY2:	CALL DELAY2
	LOOP DELY2
	POP CX
	POP AX
	RET
DELAY2: PUSH CX
	MOV CX,9000H
DELA1:	LOOP DELA1
	POP CX
	RET
;---------------------------------------------------------------------------------------

writeINT:       MOV     AX,0H       ;寫中斷向量子程序
                MOV     ES,AX
                MOV     DI,002CH
                LEA     AX,INTQ3
                STOSW
                MOV     AX,CS
                STOSW
                MOV     DI,003CH
                LEA     AX,INTQ7
                STOSW
                MOV     AX,CS
                STOSW
                RET

;----------------------------------------------中斷處理程序-----------------------------------
INTERUPT3:	
		CLI      ;處理中斷時先關中斷
                PUSH AX
                PUSH DX
                MOV     AL,DS:[DATA6]  ;DATA6  EQU 0529H 地址中為00D ,用于保存收到的中斷次數(shù)
                INC     AL
                MOV     DS:[DATA6],AL  ;將00D改為 01D  ,DATA6用于保持收到脈沖的次數(shù),滿20時加1
                CMP     AL,20H
                JAE      NEXT      ; 大于等于20時,清零,并轉(zhuǎn)向狀態(tài)判斷程序,中斷返回
                JMP      INTRE2     ;小于時中斷返回

NEXT:      MOV  BYTE PTR DS:[DATA6],00H    ;將中斷計數(shù)器清零
	   CALL LEDDISP    ;將顯示緩沖區(qū)中的數(shù)字顯示出來
           CALL NEWTIME     ;將時間緩沖區(qū)中的數(shù)字減一
P1:        CMP  BYTE PTR DS:[DATA7],01H         ;判斷是否是第一個狀態(tài)
           JNZ  P2                              ;如果不是第一個狀態(tài),則轉(zhuǎn)P2
           CMP  BYTE  PTR  DS:[DATA8],00H    ;看20S是否已經(jīng)減到0
     	   JNE  CONV                      ;如果未減到0,則更新顯示緩沖區(qū),并中斷返回
           MOV  BYTE  PTR  DS:[DATA7],02H   ;如果減到0,則轉(zhuǎn)到第二個狀態(tài)
           MOV  BYTE  PTR  DS:[DATA9],8H   ;  設定2狀態(tài)時,路口的顯示初始值
           MOV  BYTE  PTR  DS:[DATA8],8H    ;
           JMP  CONV


CONV:      CALL    CONVERS  ;把時間緩沖區(qū)中的時間轉(zhuǎn)換到顯示緩沖區(qū)中
INTRE2:         CALL LEDDISP
                MOV     AL,20H      ;寫8259控制口 ,并中斷返回
                MOV     DX,INTPORT1
                OUT     DX,AL
                POP DX
                POP AX
                STI     ;開中斷
                IRET    ;中斷返回
;------------------------------------------------------------------------------------------------

INTERUPT7: 	CLI            ;電平不符合要求時,自動顯示ERR
                MOV     SI,DATA1
                CALL    LEDDISP
                MOV     AL,14H
                MOV     DX,INTPORT1
                OUT     DX,AL
                IRET
;-----------------------------轉(zhuǎn)換子程序,將時間數(shù)值轉(zhuǎn)換為顯示字符,存入顯示緩沖區(qū)-----------------
CONVERS:        MOV     AL,BYTE PTR DS:[DATA9]   ;轉(zhuǎn)換2,4路口(對應于實驗儀上右邊顯示屏)的秒
                CALL    CONVERS2
                ADD     WORD PTR DS:[DATA10],03H   ;轉(zhuǎn)換1,3路口(對應于實驗儀上左邊顯示屏)的秒
                MOV     AL,BYTE PTR DS:[DATA8]
                CALL    CONVERS2
                MOV     WORD PTR DS:[DATA10],DATA4   ;恢復[DATA10]的指向顯示緩沖區(qū)首地址
      		RET
CONVERS2:       PUSH    AX
                CALL    CONVERS1           ;轉(zhuǎn)換低位
                MOV     BX,WORD PTR DS:[DATA10]
                MOV     DS:[BX],AL  		;更新低位所對應的顯示緩沖區(qū)
                ADD     WORD PTR DS:[DATA10],01H   ;[DATA10]指向高位
                POP     AX
                
                PUSH    CX
                MOV     CL,4H
                SHR     AL,CL    ;AL右移CL(4)位, 丟棄低4位,如AL為12H,則轉(zhuǎn)換為01H
                POP     CX
                CALL    CONVERS1      ;轉(zhuǎn)換高位
                MOV     BX,WORD PTR DS:[DATA10]    ;更新高位所對應的顯示緩沖區(qū)
                MOV     DS:[BX],AL
      		RET
CONVERS1:       MOV     BH,0H
                AND     AL,0FH      ;取AL的低位 ,如AL為12H,則取02H
                MOV     BL,AL    ; 將數(shù)值存入BL中,作為基址
                MOV     AL,CS:[BX+DATA2]   ;將相應的顯示字符存入AL,如將2對應的字符存入AL.
      		RET
;-------------------------------------------------------------------------------------------

;--------------------------------更新時間緩沖區(qū)子程序---------------------------------------
NEWTIME:
                MOV     AL,BYTE PTR DS:[DATA9]     ;[DATA789]全部加1D
                SUB     AL,01D
                DAS                              ;減法的十進制調(diào)整,如12D改為12H
                MOV     BYTE PTR DS:[DATA9],AL

                MOV     AL,BYTE PTR DS:[DATA8]
                SUB     AL,01D
                DAS
                MOV     BYTE PTR DS:[DATA8],AL
                RET         ;返回
;----------------------------------------------------------------------------------------------

;-------------------------------------顯示子程序,調(diào)用時顯示時間緩沖區(qū)中的字符--------------------------
LEDDISP:
                 PUSH  AX                          ;顯示子程序
                 PUSH  BX
                 PUSH  CX
                 PUSH  DX
                 MOV   SI,DATA4    ;DATA4 EQU 0520H    從0520h開始顯示
                MOV     AL,90H         ;初始顯示時 DATA3 EQU  0518H
                MOV     DX,CONTPORT     ;寫8255控制口
                OUT     DX,AL
                
                MOV     BYTE PTR DS:[DATA5],00H  ;DATA5	EQU 0528H
LED1:           CMP     BYTE PTR DS:[DATA5],05H
                JA      LED2        ;如果顯示完8位后,返回
                MOV     BL,DS:[DATA5]                         
                MOV     BH,0H
                MOV     AL,CS:[BX+SI]     ; 初始時,SI等于DATA3 0518H ,
                                          ;INTQ3時等于DATA4 0520H ,從0520h顯示到0527H
                MOV     DX,DATAPORT     ;寫8255數(shù)據(jù)口,以此改變顯示值
                OUT     DX,AL
                
                ADD     BYTE PTR DS:[DATA5],01H     ;顯示下一位
                JNZ     LED1
LED2:
                POP  DX
                POP  CX
                POP  BX
                POP  AX
                RET
;---------------------------------------------------------------------------------------------------------

FORMAT:         MOV     BX,0                              ;DATA1	 EQU 0500H
                MOV     WORD PTR DS:[BX+DATA1],5050H     ; 1 0  INTQ7中使用,顯示ERR
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],0079H      ;3 2
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],0000H      ;5 4
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],0000H      ;7 6
                ADD     BX,2

                MOV     WORD PTR DS:[BX+DATA1],063FH       ;9  8    顯示字符 1 0
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],4F5BH       ;0B 0A            3 2
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],6D66H      ;0D 0C
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],077DH       ;0F 0E
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],6F7FH       ;11  10
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],7C77H       ;13 12
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],5E39H       ;15 14
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],7179H       ;17 16

;----------------------------------------- 初始化時顯示 ------------------------
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],663FH       ;19 18      40
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],3F3fH      ;1B 1A       0-
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],3F3FH      ;1D  1C      00
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],3F3FH      ;1F 1E       00
                ADD     BX,2
;-------------------------------------------------------------------------------

;-------------顯示緩沖區(qū),保存著當前時間對應的顯示字符,INTQ3中進行調(diào)用和修改-----------
                MOV     WORD PTR DS:[BX+DATA1],065bH        ;21 20    初次顯示12
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],0000H        ; 23 22    0-
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],065bH        ;25  24    初次顯示12
                ADD     BX,2
                MOV     WORD PTR DS:[BX+DATA1],0000H        ; 27 26     00
;---------------------------------------------------------------------------------------
                MOV     BYTE PTR DS:[DATA6],00H  ;保存8259A當前收到時鐘脈沖的次數(shù)
                MOV     BYTE PTR DS:[DATA7],01H      ;設置初始狀態(tài)
                MOV     BYTE PTR DS:[DATA8],12H     ;設置剛開始正常工作后1,3路口顯示的秒數(shù)
                MOV     BYTE PTR DS:[DATA9],12H     ;設置剛開始正常工作后2,4路口顯示的秒數(shù)
                MOV     WORD PTR DS:[DATA10],DATA4
                RET
;--------------------------------------------------------------------------------------------

CODE 		ENDS
END  		START


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频中文一区二区三区在线观看| 国产精品1区2区3区| 欧美日韩亚洲国产综合| 亚洲综合久久久久| 欧美日韩国产免费| 免费在线看成人av| 精品美女一区二区三区| 国产最新精品精品你懂的| 久久久久国产免费免费| 日韩精品中文字幕一区二区三区| 免费观看在线综合| 中文久久乱码一区二区| 一本大道av伊人久久综合| 亚洲超碰97人人做人人爱| 日韩欧美aaaaaa| 国产99精品国产| 亚洲一二三区在线观看| 日韩美女在线视频| a4yy欧美一区二区三区| 午夜不卡av免费| 国产欧美一区二区精品性色超碰| 91视频国产资源| 日韩综合在线视频| 国产亚洲欧美一级| 欧美视频中文字幕| 久久99精品一区二区三区| 国产精品国产三级国产| 在线播放中文一区| 夫妻av一区二区| 性感美女极品91精品| 久久久亚洲高清| 欧美视频三区在线播放| 国产成人精品影院| 午夜电影网一区| 亚洲国产精品精华液ab| 7777精品伊人久久久大香线蕉超级流畅 | 国产精品福利电影一区二区三区四区| 在线免费视频一区二区| 国产成人鲁色资源国产91色综 | 欧美日韩精品欧美日韩精品一| 国内精品免费**视频| 亚洲自拍偷拍图区| 国产亚洲一区二区三区四区| 欧美日本一区二区三区四区| 不卡在线视频中文字幕| 久久99国产精品免费| 亚洲 欧美综合在线网络| 国产精品美女久久久久aⅴ国产馆| 欧洲一区二区av| 成人午夜av影视| 韩国三级电影一区二区| 日韩精品视频网站| 亚洲乱码中文字幕综合| 中文字幕第一区| 久久久久久久综合日本| 日韩一区二区免费在线电影| 欧美日韩精品电影| 91福利视频久久久久| 91在线观看视频| 不卡欧美aaaaa| 国产不卡视频在线观看| 国产一区二区三区不卡在线观看| 日韩av二区在线播放| 亚洲综合无码一区二区| 亚洲精品成人在线| 中文字幕字幕中文在线中不卡视频| 亚洲r级在线视频| 亚洲一区在线看| 亚洲特级片在线| 亚洲欧洲日产国产综合网| 欧美—级在线免费片| 国产午夜亚洲精品羞羞网站| 久久久久久久久久久久久久久99| 日韩欧美成人一区二区| 日韩欧美一区二区视频| 日韩无一区二区| 精品国产一区二区三区久久久蜜月 | 色老汉一区二区三区| 91视频免费播放| 91在线免费视频观看| 91丨porny丨首页| 日本高清不卡aⅴ免费网站| 91久久国产最好的精华液| 欧洲精品中文字幕| 在线播放91灌醉迷j高跟美女 | 欧美一区二区三区思思人| 精品视频一区二区三区免费| 欧美精品日韩精品| 在线成人午夜影院| 日韩欧美精品在线| 久久美女高清视频| 国产午夜亚洲精品午夜鲁丝片 | 美脚の诱脚舐め脚责91| 久久66热偷产精品| 粉嫩在线一区二区三区视频| 99免费精品在线| 色婷婷综合久久久中文一区二区| 在线观看视频欧美| 日韩欧美国产麻豆| 国产精品美女久久久久aⅴ国产馆| 亚洲欧美自拍偷拍色图| 亚洲第一av色| 久久精品国产精品亚洲精品| 高清在线观看日韩| 在线视频综合导航| 日韩亚洲欧美成人一区| 久久九九久精品国产免费直播| 亚洲色欲色欲www| 图片区小说区区亚洲影院| 国产在线日韩欧美| 色综合久久久久| 精品久久免费看| 国产精品国产自产拍高清av| 亚洲国产一区二区视频| 久久99精品视频| 色伊人久久综合中文字幕| 日韩精品一区二区三区中文不卡 | 国产精品青草综合久久久久99| 伊人开心综合网| 国产综合久久久久久久久久久久| 成人精品国产免费网站| 欧美美女一区二区三区| 中文一区一区三区高中清不卡| av在线一区二区三区| 91精品久久久久久久91蜜桃| 国产精品国产自产拍高清av| 蜜桃精品视频在线| 色偷偷成人一区二区三区91| 久久婷婷一区二区三区| 亚洲第一在线综合网站| 国产高清视频一区| 欧美一级片在线看| 亚洲卡通动漫在线| 国产成人久久精品77777最新版本| 欧美视频中文一区二区三区在线观看| 久久精品视频一区二区三区| 日韩一区精品视频| 在线免费观看一区| 亚洲欧美中日韩| 国产精品小仙女| 日韩欧美一级精品久久| 亚洲一二三区视频在线观看| 北岛玲一区二区三区四区| 欧美r级在线观看| 日韩经典中文字幕一区| 欧美性受xxxx黑人xyx| 亚洲欧洲日本在线| 高清久久久久久| 久久精品夜色噜噜亚洲aⅴ| 男女男精品网站| 欧美日韩二区三区| 一区二区三区欧美日韩| 成人夜色视频网站在线观看| 久久久久久久久久久久久女国产乱 | 99精品久久只有精品| 蜜臀av性久久久久蜜臀aⅴ流畅 | av中文字幕一区| 国产日产欧美一区| 国产精品1区二区.| 久久蜜桃av一区二区天堂| 老司机精品视频线观看86| 欧美精品在线视频| 午夜精品成人在线视频| 欧美日韩1区2区| 偷拍自拍另类欧美| 欧美一激情一区二区三区| 日韩 欧美一区二区三区| 欧美久久久久久久久中文字幕| 亚洲福利一区二区三区| 欧美视频精品在线| 视频一区二区三区在线| 7777精品伊人久久久大香线蕉超级流畅| 亚洲午夜一区二区| 欧美日韩大陆一区二区| 日本v片在线高清不卡在线观看| 欧美精品在线视频| 老色鬼精品视频在线观看播放| 欧美成va人片在线观看| 国产精品亚洲人在线观看| 欧美激情资源网| av一本久道久久综合久久鬼色| 亚洲青青青在线视频| 欧美日韩综合不卡| 蜜臀av性久久久久蜜臀aⅴ| 欧美成人官网二区| 国产一区二区三区免费观看| 欧美国产乱子伦| 91黄色激情网站| 丝瓜av网站精品一区二区| 日韩美一区二区三区| 懂色一区二区三区免费观看| 亚洲日韩欧美一区二区在线| 欧美日产国产精品| 国产综合色精品一区二区三区| 国产精品免费网站在线观看| 在线看国产一区| 日本aⅴ免费视频一区二区三区| 亚洲1区2区3区4区| 久久精品男人的天堂| 日本黄色一区二区|