IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 微机原理与接口技术 8255和8253综合应用之交通灯控制器的设计 -> 正文阅读

[嵌入式]微机原理与接口技术 8255和8253综合应用之交通灯控制器的设计

交通灯控制器的设计

一、实验要求

通过采用并行口8255A和定时器/计数器8253编写一模仿交通灯程序,在微机原理实验仪上调试,运行后可以看到LED灯在不停的红绿交替亮。

二、实验目的:

熟悉和掌握并行口8255A和定时器/计数器8253的初始化和综合使用。

三、实验电路及连接图:

根据实验要求设计实验原理图,并标明端口地址。

????????将8253和8255的A0、A1和实验平台上地址总线的A0、A1连接上,8253的CS连接至地址端口的320H,8255的CS连接至地址端口的340H(8253的通道0、控制口地址为320H、323H;8255的A口、C口、控制口地址分别为340H、342H、343H)。将8253的OUT0连接到8255的PC0。将8255的PA0、PA1、PA4、PA5对应连接到LED发光二极管的L3、L2、L7、L6。

????????计数次数问题。8253每个记数通道的记数范围为0~65536次。输入脉冲频率为5MHz=5×106Hz,则其周期为T=1÷5MHz = 2×10-7S。如果需要延时0.01S,则需要记数0.01÷(2×10-7)=50000次。因此,如果需要延时5秒,需要500个0.01秒,即延时子程序TIME中的循环次数为500次。

四、代码

CODE SEGMENT
ASSUME CS: CODE
START: MOV AL, 10000001B  ;8255的A口方式0,输出,PC0-PC3输入
		 MOV DX, 343H      ; 将工作方式控制字送往8255的控口
		 OUT DX, AL
		 
MOV AL, 01110110B  ;使用8253的通道1,方式3,方波发生器
		 MOV DX, 323H       ; 将控制字送往8253的控口
		 OUT DX, AL
		 
MOV AX, 50000   ;将计数初值50000送到通道1,先低后高 
		 MOV DX, 321H
		 OUT DX, AL
		 MOV AL, AH
		 OUT DX, AL
        
AGAIN: MOV BX, 0              ;置循环次数
		 MOV DX, 340H          ; A口输出红绿灯信号
		 MOV AL, 11011110B     ; 南北红灯亮,东西绿灯亮
		 OUT DX, AL
		 CALL TIME		       ;调用延时程序,延时5s
		 
MOV BX, 0
MOV DX, 340H          ; A口输出红绿灯信号
		 MOV AL, 11101101B     ;南北绿灯亮,东西红灯亮
		 OUT DX, AL
		 CALL TIME             ;调用延时程序,延时5s

JMP AGAIN		

TIME  PROC        ;检测一个方波计数周期(高电平-低电平)
MOV DX, 342H      ;检测PC0是否为1,直到为0结束
RE1: IN AL, DX
		AND AL, 1
		CMP AL, 1
		JE RE1
RE2: IN AL, DX    ;检测PC0是否为0,直到为1结束
		AND AL, 1
		CMP AL, 0
		JE RE2		
		INC BX           ;循环次数加1
		CMP BX, 500        ;循环共计500次,为5s
		JL RE1
		RET
TIME  ENDP

CODE ENDS
END START

五、思考题

(1)如果要求绿灯熄灭之前闪烁两次(即绿灯灭0.5秒、亮0.5秒、灭0.5秒、亮0.5秒,然后熄灭),应该怎样修改程序?

(2)如果再添加黄灯(南北黄灯连接在PA2引脚,东西黄灯连接在PA6引脚):绿灯闪烁两次后黄灯亮,黄灯亮2秒后红灯亮。应该怎样修改程序??

DATA SEGMENT
     TTT DW ?
DATA ENDS
CODE SEGMENT
     ASSUME CS:CODE,DS:DATA
     START:
     MOV AL,10000001B
     MOV DX,343H
     OUT DX,AL
     
     MOV AL,01110110B
     MOV DX,323H
     OUT DX,AL
     
     MOV AX,50000
     MOV DX,321H
     OUT DX,AL
     MOV AL,AH
     OUT DX,AL
     
     AGAIN:
     
     ;南北绿灯东西红灯先一起亮5s
     MOV BX,0
     MOV DX,340H
     MOV AL,11011110B
     OUT DX,AL
     MOV TTT,500
     CALL TIME

     ;南北绿灯灭0.5s
     MOV BX,0
     MOV DX,340H
     MOV AL,11111110B
     OUT DX,AL
     MOV TTT,50
     CALL TIME
     
     ;绿灯亮0.5s
     MOV BX,0
     MOV DX,340H
     MOV AL,11011110B
     OUT DX,AL
     MOV TTT,50
     CALL TIME
     
     ;绿灯灭0.5s
     MOV BX,0
     MOV DX,340H
     MOV AL,11111110B
     OUT DX,AL
     MOV TTT,50
     CALL TIME
     
     ;绿灯亮0.5s
     MOV BX,0
     MOV DX,340H
     MOV AL,11011110B
     OUT DX,AL
     MOV TTT,50
     CALL TIME

     ;南北黄灯亮2s
     MOV BX,0
     MOV DX,340H
     MOV AL,11111011B
     OUT DX,AL
     MOV TTT,200
     CALL TIME
     
     
     ;东西绿灯南北红灯先一起亮5s
     MOV BX,0
     MOV DX,340H
     MOV AL,11101101B
     OUT DX,AL
     MOV TTT,500
     CALL TIME

     ;东西绿灯灭0.5s
     MOV BX,0
     MOV DX,340H
     MOV AL,11101111B
     OUT DX,AL
     MOV TTT,50
     CALL TIME

     ;绿灯亮0.5s
     MOV BX,0
     MOV DX,340H
     MOV AL,11101101B
     OUT DX,AL
     MOV TTT,50
     CALL TIME

     ;绿灯灭0.5s
     MOV BX,0
     MOV DX,340H
     MOV AL,11101111B
     OUT DX,AL
     MOV TTT,50
     CALL TIME

     ;绿灯亮0.5s
     MOV BX,0
     MOV DX,340H
     MOV AL,11101101B
     OUT DX,AL
     MOV TTT,50
     CALL TIME

     ;东西黄灯亮2s
     MOV BX,0
     MOV DX,340H
     MOV AL,10111111B
     OUT DX,AL
     MOV TTT,200
     CALL TIME
     
     JMP AGAIN
     
     TIME PROC
          MOV DX,342H
          
          RE1:
          IN AL,DX
          TEST AL,00000001B
          JNZ RE1
          
          RE2:
          IN AL,DX
          TEST AL,00000001B
          JZ RE2
          
          INC BX
          CMP BX,TTT
          JL RE1
          RET
     TIME ENDP
CODE ENDS
END START

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-19 12:00:56  更:2022-05-19 12:01:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:44:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码