欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機匯編程序實現紅綠燈轉換
[打印本頁]
作者:
lltt
時間:
2018-11-18 16:23
標題:
單片機匯編程序實現紅綠燈轉換
通過masm軟件運行該程序
單片機源程序如下:
STACK SEGMENT STACK 'STACK'
DW 128 DUP(?)
STACK ENDS
DATA SEGMENT;定義8255和8253各端口地址數據
PA8255 EQU 3000H
PB8255 EQU 3200H
PC8255 EQU 3400H
CON8255 EQU 3600H
CLK08253 EQU 3800H
CLK18253 EQU 3A00H
CLK28253 EQU 3C00H
CON8253 EQU 3E00H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV DX,CON8253;初始化8253通道0
MOV AL,36H;00110110
OUT DX,AL
MOV DX,CLK08253
MOV AX,2710H
OUT DX,AL
MOV AL,AH
OUT DX,AL;通道0初始化完成,工作方式3,初始計數值為10000,周期為0.01s
MOV DX,CON8253;通道2初始化完成,工作方式3,計數初值為100,由clk0輸入以后周期為1s
MOV AL,96H;10010110
OUT DX,AL
MOV DX,CLK28253
MOV AL,64H
OUT DX,AL
MOV DX,CON8255
MOV AL,80H
OUT DX,AL;8255初始化完成,A,B,C均工作在方式0,即基本的輸入輸出
MOV AL,10H;初始化各燈的狀態
MOV DX,PA8255
OUT DX,AL;紅燈全亮
MOV DX,PB8255
MOV AL,1FH
OUT DX,AL;黃燈全滅
MOV DX,PC8255
MOV AL,1FH
OUT DX,AL;綠燈全滅
CALL DELAY
BEGIN:
MOV DX,CON8255
MOV AL,80H
OUT DX,AL
MOV AL,10H
MOV DX,PB8255
OUT DX,AL
MOV DX,PA8255
MOV AL,15H
OUT DX,AL;05H=00000101,2、4紅燈亮
MOV DX,PB8255
MOV AL,1FH
OUT DX,AL;0FH=00001111,黃燈全滅
MOV DX,PC8255
MOV AL,1AH
OUT DX,AL;OAH=00001010,1,3綠燈亮
CALL DELAY
MOV DX,CON8253
MOV AL,70H
OUT DX,AL;通道1初始化完成,工作方式0,01110000
MOV DX,CLK18253
MOV AX,0BB8H
OUT DX,AL
MOV AL,AH
OUT DX,AL;0BB8H=3000,即通道1的計數值為3000,也就是30S
LOP30_1:
MOV AL,0;掃描PC4口是否有高電平輸入
MOV DX,CON8255
MOV AL,88H;88
OUT DX,AL;改PC口為輸入方式,準備讀入PC4的值
MOV DX,PC8255
IN AL,DX
AND AL,10H;取PC4的值
CMP AL,10H
JNZ LOP30_1;未檢測到高電平則繼續循環檢測
MOV DX,CON8255
MOV AL,80H
OUT DX,AX
MOV DX,PA8255
MOV AL,15H;05H=00000101;2,4紅燈亮
OUT DX,AL
MOV DX,PC8255
MOV AL,1FH;0FH=00001111
OUT DX,AL;1、3綠燈滅
MOV DX,PB8255
MOV AL,1AH;0AH=00001010
OUT DX,AL;1、3黃燈開始閃
MOV CX,0
LOP5_1:
MOV DX,CON8255;檢測PC7高電平
MOV AL,88H
OUT DX,AL;改PC口為輸入方式,準備讀入PC7
MOV DX,PC8255
IN AL,DX
AND AL,80H;取PC7
CMP AL,80H
JNZ LOP5_1;如果不是高電平則不需要進行延時
CALL DELAY
INC CX
CMP CX,05H
JNZ LOP5_1
MOV DX,CON8255
MOV AL,80H
OUT DX,AL
MOV AL,10H
MOV DX,PB8255
OUT DX,AL
MOV DX,PA8255
MOV AL,1AH
OUT DX,AL;0AH=00001010,1、3紅燈亮
MOV DX,PB8255
MOV AL,1FH
OUT DX,AL;0FH=00001111,黃燈全滅
MOV DX,PC8255
MOV AL,15H
OUT DX,AL;05H=00000101,2、4綠燈亮
CALL DELAY
MOV DX,CON8253;重新寫入方式控制字,0方式
MOV AL,70H
OUT DX,AL
MOV DX,CLK18253
MOV AX,0BB8H
OUT DX,AL
MOV AL,AH
OUT DX,AL;0BB8H=3000,即通道1的計數值為3000,也就是30S
LOP30_2:
MOV AL,0;掃描PC4口是否有高電平輸入
MOV DX,CON8255
MOV AL,88H
OUT DX,AL;改PC口為輸入方式,準備讀入PC4的值
MOV DX,PC8255
IN AL,DX
AND AL,10H;取PC4的值
CMP AL,10H
JNZ LOP30_2;未檢測到高電平則繼續循環檢測
MOV DX,CON8255
MOV AL,80H
OUT DX,AX
MOV DX,PA8255
MOV AL,1AH;OAH=00001010,1,3路口紅燈亮
OUT DX,AL
MOV DX,PC8255
MOV AL,1FH;0FH=00001111
OUT DX,AL;2、4綠燈滅
MOV DX,PB8255
MOV AL,15H;05H=00000101
OUT DX,AL;2、4黃燈開始閃爍
MOV CX,0
LOP5_2:
MOV DX,CON8255;檢測PC7高電平
MOV AL,88H
OUT DX,AL;改PC口為輸入方式,準備讀入PC7
MOV DX,PC8255
IN AL,DX
AND AL,80H;取PC7
CMP AL,80H
JNZ LOP5_2
CALL DELAY
INC CX
CMP CX,05H
JNZ LOP5_2
JMP START;下一次循環
DELAY PROC NEAR
MOV DX,120;延時子程序
DELAY1:
MOV BX,1000
DELAY2:
DEC BX
CMP BX,0
JNZ DELAY2
DEC DX
CMP DX,0
JNZ DELAY1
RET
DELAY ENDP
CODE ENDS
END START
復制代碼
所有資料51hei提供下載:
123456.rar
(1.15 KB, 下載次數: 7)
2018-11-18 16:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時間:
2018-11-18 17:28
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1