用8253A定时计数器控制8位LED循环移动Word格式.docx

上传人:b****1 文档编号:5554649 上传时间:2023-05-05 格式:DOCX 页数:11 大小:221.44KB
下载 相关 举报
用8253A定时计数器控制8位LED循环移动Word格式.docx_第1页
第1页 / 共11页
用8253A定时计数器控制8位LED循环移动Word格式.docx_第2页
第2页 / 共11页
用8253A定时计数器控制8位LED循环移动Word格式.docx_第3页
第3页 / 共11页
用8253A定时计数器控制8位LED循环移动Word格式.docx_第4页
第4页 / 共11页
用8253A定时计数器控制8位LED循环移动Word格式.docx_第5页
第5页 / 共11页
用8253A定时计数器控制8位LED循环移动Word格式.docx_第6页
第6页 / 共11页
用8253A定时计数器控制8位LED循环移动Word格式.docx_第7页
第7页 / 共11页
用8253A定时计数器控制8位LED循环移动Word格式.docx_第8页
第8页 / 共11页
用8253A定时计数器控制8位LED循环移动Word格式.docx_第9页
第9页 / 共11页
用8253A定时计数器控制8位LED循环移动Word格式.docx_第10页
第10页 / 共11页
用8253A定时计数器控制8位LED循环移动Word格式.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

用8253A定时计数器控制8位LED循环移动Word格式.docx

《用8253A定时计数器控制8位LED循环移动Word格式.docx》由会员分享,可在线阅读,更多相关《用8253A定时计数器控制8位LED循环移动Word格式.docx(11页珍藏版)》请在冰点文库上搜索。

用8253A定时计数器控制8位LED循环移动Word格式.docx

在课程设计的背景下,本系统运用了8253A芯片,基于8086实现了控制8位LED循环移动的设计, 

显示程序设计以及软件编程的

思路。

关键词:

芯片8253A;

LED;

程序流程图

1.引言

1.1课题设计的目的

1.了解8253A与8086的硬件连接方法

2.掌握8253A的各种方式的编程及其原理

3.学会Emu8086和Proteus的联合用调

1.2课题设计要求 

功能要求:

1、8253A可编程定时/计数器作定时器

2、LED灯循环移动

2、系统总设计

锁存控制74LS273

以8086为主控系统,用8253A可编程定时/计数器作定时器,产生特定频率的时钟脉冲信号,通过74LS273影响8位LED灯的循环移动。

3、硬件详细设计

3.1、8086主控模块

本设计采用的是8086。

8086是Intel系列的16位微处理器,采用NMOS工艺制造,用单一的+5V电源,时钟频率为4.77MHz~10MHz。

8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。

可寻址的内存空间为1MB。

Intel8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器,包含了堆栈指标。

资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。

它提供64K8位元的输出输入(或32K16位元),以及固定的向量中断。

大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。

运算结果会储存在操作数中的一个寄存器。

8086总线接口部件由下列各部分组成:

⑴4个段地址寄存器:

CS--16位的代码段寄存器;

DS--16位的数据段寄存器;

ES--16位的扩展段寄存器;

SS--16位的堆栈段寄存器;

⑵16位的指令指针寄存器IP;

⑶20位的地址加法器;

⑷6字节的指令队列缓冲器。

8086执行部件由下列几个部分组成:

⑴8个通用寄存器:

即AX、BX、CX、DX、BP、SP、SI、DI;

其中,4个数据寄存器:

AX、BX、CX、DX;

2个地址指针寄存器:

BP,SP;

2个变址寄存器:

SI、DI;

⑵标志寄存器FR;

⑶算术逻辑单元ALU。

3.2、8253定时/计数器电路

用8253A可编程定时/计数器作定时器,每隔1sLED向左循环移动一位。

设8253A可编程定时/计数器的输入时钟为100kHz,设定时/计数器0的计数初值为100,工作在方式3,即方波发生器,其输的1kHz方波做定时/计数器2的时钟。

定时/计数器2的初值设为1000,工作在方式0,即每隔1s计数结束产生中断,用此信号作为不可屏蔽中断的申请信号,在中断服务程序中设置每中断一次LED向左循环移动1位。

3.38位LED循环移动电路

用72LS273输出接口控制8只LED灯,每隔一秒实现循环移动功能。

74LS273是8位数据/地址锁存器,他是一种带清除功能的8D触发器,下面我介绍一下他的管脚图功能表等资料。

(1).1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;

(2).当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上.

74ls273管脚功能:

1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。

4、软件详细设计

本设计共包括3个模块,分别是向8253输入时钟,向8086输入产生的不可屏蔽的申请信号,LED灯循环移动。

4.1、系统程序流程图

开始

系统初始化

结束

5、系统仿真

5.1、系统仿真图

5.2、系统仿真结果图

6、总结

本设计以8086为主控系统,首先,根据实验要求每隔一秒向左循环移动一位,则需要周期为1s的方波信号。

因为输入信号的频率为100kHz,所以N=10^5/1=100000,因为8253A中一个计数器最大的计数次数是65536次,所以对于100000这样的大数,一个计数器是不可能完成上述分频要求的。

因此必须采用两个计数器级联的方法解决这个问题。

CLK0接100kHz信号源,OUT0接CLK2,取N1=100,N2=1000,使得N=N1*N2。

然后在仿真软件中画出用8253A定时/计数器控制8位LED循环移动的电路原理图和8086最小模式下的总线结构及I/O地址分配图。

最后将所编写的8086程序运行编译加到8086芯片上去,进行仿真。

观察实验结果。

这次设计中原本按照书上的做,但是出现了一些问题,找了学霸解决,知道自己在8086的运用上还很生疏,这次课程设计给了我们一次应用自己所学知识的机会,使我更深层次的理解了这门课程。

7.附录

.MODELSMALL

.8086

.STACK

.CODE

.STARTUP

NMI_INIT:

PUSHES;

NMI中断向量初始化

XORAX,AX

MOVES,AX

MOVAL,02H

XORAH,AH

SHLAX,1

MOVSI,AX

MOVAX,OFFSETNMI_SERVICE

MOVES:

[SI],AX

INCSI

MOVBX,CS

[SI],BX

POPES

;

可编程定时/计数器8253A初始化

MOVAL,00110111B;

t016位MODE3BCD

MOVDX,0406H;

控制口地址

OUTDX,AL

MOVDX,0400H;

t0地址

MOVAX,0100H;

100khz100分频1khz

MOVAL,AH;

高字节

MOVAL,10110001B;

t216位MODE3BCD

MOVDX,0406H

MOVDX,0404H

MOVAX,1000H;

1khz1000分频1hz

MOVBL,0FEH;

LED初始状态

MOVDX,0200H;

273地址

MOVAL,BL

JMP$

NMI_SERVICE:

ROLBL,1;

不可屏蔽中断服务程序

MOVDX,0200H;

MOVAX,1000H;

OUTDX,AL;

重新输入初值

MOVAL,AH;

EXIT:

IRET

.DATA

END

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2