- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8086交通信号灯控制器的源程序
MODEL TINY
PCIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址, 也为DMA 32 BIT ;RAM板卡上的8237提供基地址)
Vendor_ID EQU 10EBH ;厂商ID号
Device_ID EQU 8376 ;设备ID号
.STACK 100
.DATA
IO_Bit8_BaseAddress DW ?
msg0 DB BIOS不支持访问PCI $
msg1 DB 找不到Star PCI9052板卡 $
msg2 DB 读8位I/O空间基地址时出错$
COM_ADD DW 00F3H ;控制口偏移量
GGG DW ?
HHH DW ?
WWW DW ?
PA_ADD DW 00F0H ;PA口偏移量
PB_ADD DW 00F1H ;PB口偏移量
PC_ADD DW 00F2H ;PC口偏移量
XXX DW ?
LED_Data DB ;红灯全亮
DB ;东西绿灯,南北红灯。 从高位7到低位0为0则亮,1则灭。排线反接则顺序颠倒亮。
DB ;东西绿灯闪烁,南北红灯
DB ;东西黄灯亮,南北红灯
DB ;东西红灯,南北绿灯
DB ;东西红灯,南北绿灯闪烁
DB ;东西红灯,南北黄灯亮
SG DB 6fH,7fH,07H,7dH,6dH,66H,4fH,5bH,06H,3fH ;9-0
.CODE
START: MOV AX,@DATA
MOV DS,AX
NOP
CALL InitPCI
CALL ModifyAddress ;根据PCI提供的基地址,将偏移地址转化为实地址
MOV AL ;PA、PB、PC为基本输出模式
MOV DX,COM_ADD
OUT DX,AL ;灯全亮
MOV BX,OFFSET LED_Data
MOV DX,PA_ADD
start0: MOV AL,0 ;红灯全亮
XLAT
OUT DX,AL
CALL DL500ms
START1: MOV AL ;东西绿灯,南北红灯
OUT DX,AL
CALL DL5S
MOV SI, 3FH
MOV DI, 4FH
CALL DJS
MOV CX,5
START2: MOV AL ;东西绿灯闪烁,南北红灯
OUT DX,AL
CALL DL500ms
MOV AL
OUT DX,AL
CALL DL500ms
LOOP START2
MOV AL ;东西黄灯亮,南北红灯
OUT DX,AL
CALL DL3S
MOV AL ;东西红灯,南北绿灯
OUT DX,AL
CALL DL5S
MOV CX,5
MOV SI,3FH
MOV DI,4FH
CALL,DJS
START3: MOV AL ;东西红灯,南北绿灯闪烁
OUT DX,AL
CALL DL500ms
MOV AL
OUT DX,AL
CALL DL500ms
LOOP START3
MOV AL ;东西红灯,南北黄灯亮
OUT DX,AL
CALL DL3S
JMP START1
;倒计时显示程序
DJS PROC NEAR
PUSH DX
PUSH CX
PUSH BX
PUSH AX
PRT:
NUM:
MOV Al, [SI] ;设置段选码,将SI中的内容送入PA口
MOV DX, PA_ADD
OUT DX, Al
MOV Al, 0FcH ;设置位选码,PC0口置0高四位为0
MOV DX, PC_ADD ;其他口为1来选中LED1,显示个位
OUT DX, Al
CALL DELAY
M
文档评论(0)