微机原理与接口技术 课程设计
- 格式:doc
- 大小:242.10 KB
- 文档页数:21
摘要
霓虹灯主要是通过8255A对LED亮灭状态的控制,和8254定时/计数器的定时功能实现霓虹灯闪烁控制系统,外设是红、绿、黄三种颜色的发光二极管,在程序自动控制下,按照不同规律闪烁同时由数码管显示相应的闪烁方式。
关键字: 8255A 8254 LED 数码管
一、设计的任务和要求
设计霓虹灯闪烁控制系统,是外设的红、绿、黄三种颜色的发光二极管,在开关的控制下或者在程序自动控制下,按照不同规律闪烁。
要求发光二极管的亮、灭变化有一定的规律;发光二极管变化规律要求有多种状态。
二、设计小组成员及分工
本次课设由冀任共同完成,在课设中遇到的问题四个人共同思考解决。
三、总体设计
1、8254用于定时:定时/计数器0与定时器/计数器1共同构成100ms的定时器,确定执行相邻闪烁方式的间隔时间。
2.8255A用于控制LED的状态和数码管显示:PA0接8254的输出,B口接数码管,显示对应的闪烁方式,C口输出控制LED的状态。
3、六种闪烁方式:
方式1:从左向右依次点亮8个LED灯,数码管显示1
方式2:从右向左依次点亮8个LED灯,数码管显示2
方式3:从左向右依次点亮4个的红灯、2个黄灯和2个绿灯,数码管显示3 方式4:从左向右两个两个的点亮8个LED灯,数码管显示4
方式5:从两边向中间依次点亮8个LED灯,数码管显示5
方式6:按红、绿、黄顺序点亮相同颜色的灯,数码管显示6
1、芯片介绍
(1)芯片8255A
8255A是具有3个8位并行I/O口3种工作方式的可编程并行接口芯片。8255共有40个引脚,采用双列直插式封装。
D0--D7:三态双向数据线,与单片机数据总线连接,用来传送数据信息。
CS:片选信号线,低电平有效,表示芯片被选中。
RD:读出信号线,低电平有效,控制数据的读出。
WR:写入信号线,低电平有效,控制数据的写入。
Vcc:+5V电源。
PA0--PA7:A口输入/输出线。
PB0--PB7:B口输入/输出线。
PC0--PC7:C口输入/输出线。
RESET:复位信号线。
A1、A0:地址线,用来选择8255内部端口。
GND:地线。
三种工作状态:
1) 工作方式 0 :这是 8255A 中各端口的基本输入 / 输出方式。它只完成简单的并行输入 / 输出操作, CPU 可从指定端口输入信息,也可向指定端口输出信息,如果三个端口均处于工作方式 0 ,则可由工作方式控制字定义 16 种工作方式的组合。
2) 工作方式 1 :被称作选通输入 / 输出方式。在这种工作方式下,数据输入 / 输出操作要在选通信号控制下完成。
3) 工作方式 2 :被称作带选通的双向传送方式。 8255A 中只允许端口 A 处于工作方式 2 ,可用来在两台处理机之间实现双向并行通信。其有关的控制信号由端口 C 提供,并可向 CPU 发出中断请求信号。
(2)芯片8254
8254 芯片是可编程定时/计数器芯片,片内有3个独立的16位计数器,每个计数器可编程设定为6中不同的工作方式。
8254的引脚图和引脚说明
8254芯片的工作方式:
8254芯片共有六种工作方式,分别对应与六种不同的用途。
1)方式0:计数结束产生中断。
2)方式1:可重触发单稳方式。
3)方式2:分频器。
4)方式3:方波发生器。
5)方式4:软件触发计数。
6)方式5:硬件触发计数。
2、硬件连接图
五、软件编程 1、软件流程图
开始
数码管显示1,点亮L7灯
CX=19(循环19次)
点亮L0灯 8254定时器1置初值10,定时100mS
N
开始
PC0=1
8254计数器1,方式0,只读写低八位。
(1)8254定时程序
结束
延时
AL 给8255C 口
(2)方式1
Y 循环结束?
结束 AL 左移
N
Y
(3)主程序
2、汇编语言源程序
DATA SEGMENT IOPORT EQU 0D880H-280H
IO8255A EQU IOPORT+280H
IO8255B EQU IOPORT+281H
IO8255C EQU IOPORT+282H
IO8255T EQU IOPORT+283H
IO82540 EQU IOPORT+288H
IO82541 EQU IOPORT+289H
IO8254K EQU IOPORT+28BH ;地址
PB DB ?
DATA ENDS
STACK SEGMENT STACK
S TA DW 50 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK ;定义代码段
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV DX,IO8255T ; 8255控制字为81H,端口C低四位为输入
MOV AL,10000001B
OUT DX,AL
MOV DX,IO8255C ;读端口C数据并保存
IN AL,DX
MOV PB,AL
MOV DX,IO8255T ;8255设控制字为90H
MOV AL,90H ; (端口A输入,端口B和C输出)
OUT DX,AL
MOV DX,IO8254K ;定时器0,方式三,先读写低八位,再读写高八位
MOV AL,36H
OUT DX,AL ;输入时钟,1MHZ
MOV DX,IO82540
MOV AX, 10000 ;初值10000,输出时钟周期10MS
OUT DX,AL
NOP
NOP
MOV AL,AH
OUT DX,AL
MOV DX,IO8254K ;计数器1,方式0,只读写低八位
MOV AL,50H
OUT DX,AL
CHXU1: MOV DX,IO8255B
MOV AL,06H
OUT DX,AL ;数码管显示1
MOV CX,17 ;循环17次