8253定时器实现方波发生器
- 格式:doc
- 大小:2.59 MB
- 文档页数:26
课程设计报告专业:电子信息科学与技术学生:崔长杰(2008011266)课题名称:8253定时器实现方波发生器起讫日期:2011年4月17日——2011年4月30日设计地点:教学楼指导教师:吴全玉完成日期:2011年4月27日运用8253实现方波发生器摘要:单片机可以根据用户的需要,实现特定的功能,比如定时、中断处理等。
但是由于设计上的原因,有些功能必须要扩展。
单片机与其他特定功能的芯片,可以在单片机统一指挥下协同工作。
因此,单片机系统的扩展,是很重要的研究方向。
关键字:方波发生器、定时器、8253、单片机目录1、绪论 (1)1.1、课程设计背景 (1)1.2、课题设计的目的 (1)1.3、课题要求 (2)2、实验方案 (2)2.1、设计思路 (2)2.2、方案选择 (3)2.3、方案可行性研究 (7)3、课题方案阐述 (7)3.1、硬件设计 (7)3.2、各个部件功能描述 (8)3.3、程序设计流程图 (16)3.3、程序设计 (16)4、调试与仿真 (18)4.1、Proteus环境下的仿真调试 (18)4.2、仿真结果 (18)5、设计中的问题 (19)5.1、硬件连接的若干问题 (19)5.2、软件调试的若干问题 (20)6、总结 (21)6.1、设计心得体会 (21)6.2、致谢 (22)7、参考文献 (22)1、绪论1.1、课程设计的背景单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),它最早是被用在工业控制领域,其设计理念是使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
目前单片机渗透到我们生活的各个领域,几乎随处都可以看到单片机的身影。
因此,对于工科生而言,学习单片机,必将成为我们在电子行业的一个重要组成部分。
由于单片机系统的本身限制,要实现一些功能的扩展,才可以满足生产生活的需要,所以,单片机系统的扩展,成为单片机系统的一个重要的研究方向。
我们在日常的学习中,为了能更好的运用以及巩固所学的硬件知识,运用那个课程中所学的理论知识与实践紧密结合,同时,培养我们独立地解决实际问题的能力,和锻炼运用硬件与软件结合的综合能力,学院开设此次课程设计,来满足课程的需要。
1.2、课程设计的目的(1)熟练掌握单片机和8253的原理及应用(2)掌握各芯片的逻辑功能及使用方法;(3)了解面包板结构及其接线方法;(4)了解单片机的基本工作原理;(5)熟悉定时器的设计与制作。
1.3、课题要求1、使用8253芯片实现方波输出;2、输出的方波频率范围为500Hz到1000Hz,在此频率范围内,可以实现频率可调;3、运用单片机,实现对定时器/计数器8253芯片的控制,来实现方波发生器的功能。
2、实验方案2.1、设计思路单片机可以实现方波输出,此课题则需要利用单片机对8253芯片的控制,使芯片工作在特定的工作方式,来实现方波的发生,因此,总结课题的要求,有如下方案可以讨论:1、利用8086微处理器,控制8253芯片,是芯片工作在工作方式3,来实现方波的输出。
利用键盘,来实现对输出方波频率的调节,同时,还要加数码管,用以显示按键输入的新的频率数值。
2、使用51系列单片机,控制8253芯片,同样使8253芯片工作在方式3,使8253芯片实现方波的输出,配以数码管和键盘来实现对方波的输出频率调节。
3、使用51系列单片机,控制8253芯片使之工作在方式3,实现方波输出。
使用AD转换芯片ADC0809,与可变电阻器,给单片机输入频率信号,用以调节频率。
4、使用51系列单片机,控制8253芯片,工作在方波发生器方式,使用按钮,对频率实现等步长调节。
2.2、方案选择1、对于方案1,使用8086微处理器实现对8253芯片的控制,对8253芯片的初始化程序如下:MOV DX,04A6H ;控制寄存器MOV AX,36H ;计数器0,方式3OUT DX,AXMOV DX,04A0HMOV AX,7CHOUT DX,AXMOV AX,92HOUT DX,AX ;计数值927CHMOV DX,04A6HMOV AX,76H ;计数器1,方式3OUT DX,AXMOV DX,04A2HMOV AX,32HOUT DX,AXMOV AX,0 ;计数值32HOUT DX,AXMOV DX,04A6HMOV AX,0B6H ;计数器2,方式3OUT DX,AXMOV DX,04A4HMOV AX,04HOUT DX,AXMOV AX,0 ;计数值04HOUT DX,AX由于8086微处理器在生产生活中并不是最为常见的,所以此方案实现起来并不十分方便,因此不采取此方案。
2、方案2的原理图如图1下:图1 方案2原理图原理图中,利4x4矩阵键盘用以输入调节的频率。
从而实现频率可调,程序如下:ORG 0BB0HAJMP MAINMAIN:CLR P1.0 ;//使GATE为低电平,禁止计数MOV DPTR,#0FF2BH ;//送控制寄存器地址到数据指针寄存器MOV A,#36H ;//送工作方式字到累加器00110101MOVX @DPTR,A ;//工作方式字送到控制寄存器MOV DPTR,#0FF28H ;//送通道0地址MOV A,#16H ;//计数器/定时器初始值MOVX @DPTR,A ;//初始值送入通道0寄存器SETB P1.0 ;//使GATE为高电平,允许计数LOOP: JNB P1.5,SUBFUNC ;//查询按键是否被按下//直接寻址位为JNB P1.6,SUBFUNCJNB P1.7,SUBFUNCAJMP LOOP ;//返回子程序,继续扫描按键SUBFUNC:LCALL SCAN ;//按键被按下,调用子程序AJMP LOOPSCAN: JNB P1.7,MAIN ;//复位键按下,执行复位操作JNB P1.6,FADD ;//频率加操作JNB P1.5,FSUB ;//频率减操作FADD: MOV R0,#100LOOP1: DJNZ R0,LOOP1MOV SP,#60HSUBB A,#1 ;//频率加步长PUSH ACCAJMP INIT ;//中断处理FSUB: MOV R0,#100LOOP2: DJNZ R0,LOOP2MOV SP,#60HADD A,#1 ;//频率减步长PUSH ACCAJMP INIT ;//中断处理INIT: CLR P1.0MOV DPTR,#0FF2BH ;//中断处理程序MOV A,#36HMOVX @DPTR,AMOV DPTR,#0FF28HPOP ACCMOVX @DPTR,ASETB P1.0RETEND方案2原理图中是数码管部分未画出。
由于使用此方案,系统组成复杂,不利于实验的调试。
因此不使用此方案。
3、方案3中的方波实现部分与方案2相同,区别在于频率调节部分,方案2是利用键盘直接键入新的频率值,而本方案是利用模拟信号输入来控制频率的改变,由于模拟信号连续,因此可以实现在要求的频率范围内连续调节。
其原理图如图2所示:图2 方案3原理图在本方案中,加入了AD转换环节,是系统的复杂性大大提高,不利于实际的实现,因此,也不采用此方案。
4、方案4的方波实现与前者相同,区别是频率调节环节的变化。
此方案中,只用了三个按钮来实现频率的调节。
原理图如图3所示图3 方案4原理图在此方案中,使用按钮来控制频率的改变,这样的设计,使系统得到了大大的简化,同时,硬件软件的实现十分简便,因此,在此课程设计中,选用方案4来完成课题的设计。
2.3、方案可行性研究相比之下,方案4有着比较明显的优势。
因为方案4的硬件设计简单,频率的调节是用按钮实现,同时,8253芯片与单片机的接口使用的是74HC373地址锁存器,可以在送地址的时候保持地址有效电平,使地址与数据的传输分开。
而且对于方案4的软件的设计,只需要有初始化8253芯片,以及对按键的处理程序即可,因此可行性最高。
3、课题方案阐述3.1、硬件设计硬件的设计方框图如图4所示图4 硬件设计框图硬件设计方案原理如下:1、时钟发生电路由C1、C2和X1(晶振)产生脉冲给XLAT1、XLAT2作为外部振荡信号,复位信号由开关和RC电路构成;由于系统要对外部接口送数据,所以EA端始终为高电平;单片机P0口接8253的数据端口,由于单片机内部无上拉电阻,当作为输入或者输出时应在外部接上拉电阻,因此 P0口需要外接上拉电阻。
系统的设计需要使用P0口的高2位作为地址线,同时P0口作为数据线使用,因此,需要加地址锁存器;频率调节电路是用按钮组成的,当按钮按下时,可以对频率进行等步长的递增或者递减,从而实现输出500到1000Hz 频率可调的方波。
2、硬件设计原理图如方案4原理图所示。
3.2、各个部件功能描述1、8253芯片的引脚图及功能(1)8253芯片的引脚图如图5所示图5 8253芯片引脚图(2)8253芯片内部组成部分:1)数据总线缓冲器(8位、三态、双向)。
数据中线缓冲器是8253与系统数据总线相连接时用的接口电路,它由8位双向三态缓冲器构成。
2)读/写控制逻辑。
读/写控制逻辑接收系统控制总线送来的输入信号,经组合后形成控制信号,对各部分操作进行控制。
可接收的控制信号有:CS:片选信号,低电平有效;RD :读信号,低电平有效; WR :写信号,低电平信号;10A A :端口选择信号。
10A A =00时,选中0通道;10A A =01时,选中1通道;10A A =10时,选中2通道;10A A =11时,选中控制寄存器。
8253的输入信号组合功能表如表1所示。
表1 8253输入信号组合的功能表3)计数器0~2。
三个完全相同的16位减计数器。
每个通各有3个引脚,它们是: CLK0~CLK2计数器0~2的输入时钟脉冲此引脚输入; OUT0~OUT2计数器0~2的输出端;GATE0~GATE2计数器0~2的门控脉冲输入端。
4)控制字寄存器。
控制字寄存器是一种只写寄存器,在对8253编程时,由CPU 用输出指令向它写入控制字,来选定计数器通道,规定各计数器的工作方式,读写格式和数制。
其格式如图6所示:7D 6D 5D 4D 3D 2D 1D 0D图6 8253控制字格式控制字的位值及意义如上图。
5)8253芯片的工作方式: 工作方式0:计数结束中断方式; 工作方式1:可编程单稳态输出方式; 工作方式2:比率发生器; 工作方式3:方波发生器; 工作方式4:软件触发选通;00 0110 11 00 选择通道0 01选择通道110 选择通道2 11 无效工作方式5:硬件触发选通;其中,本课程设计用到的是方式3,——方波发生器。
工作在方式3 的8253芯片的工作过程参看相关文献。