收藏 分享(赏)

可编程脉冲信号发生器的设计.doc

上传人:在读硕士妹 文档编号:6901182 上传时间:2022-08-19 格式:DOC 页数:72 大小:1.17MB
下载 相关 举报
可编程脉冲信号发生器的设计.doc_第1页
第1页 / 共72页
可编程脉冲信号发生器的设计.doc_第2页
第2页 / 共72页
可编程脉冲信号发生器的设计.doc_第3页
第3页 / 共72页
可编程脉冲信号发生器的设计.doc_第4页
第4页 / 共72页
可编程脉冲信号发生器的设计.doc_第5页
第5页 / 共72页
亲,该文档总共72页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、洛阳理工学院毕业设计(论文)I可编程脉冲信号发生器的设计摘 要 基于单片机的可编程脉冲信号发生器,通过 4x4 的非编码矩阵键盘键入脉冲信号的指标参数频率、占空比和脉冲个数,在单片机的控制处理下发出满足信号指标的脉冲信号,并在液晶显示屏的制定位置显示出相关参数。复位电路采用上电复位和手动复位的复合复位方式,保证单片机在上电和程序运行进入死循环时,单片机均能正常复位。利用在工作方式 1 下的定时器和计数输出低频脉冲信号,以及在工作方式 2 下能够自动重复赋初值的定时器输出高频脉冲信号,从而使频率和占空比满足指标要求。通过程序设计,使单片机每次发出信号后等到重置信号进行下一次脉冲信号的输出,有效的

2、提高了单片机的使用效率。本课题设计利用单片机技术,通过相应的软件编程和较简易的外围硬件电路来实现,其产生的脉冲信号干扰小,输出稳定,可靠性高,人机界面友好,操作简单方便,成本低,携带方便,扩展性强。关键的是,脉冲信号频率、脉冲个数和脉冲占空比可调节,可通过键盘输入并由显示器显示出来。本课题设计所要达到的指标要求:(1)脉冲信号频率 0.1HZ 到 50KHZ 可调并在液晶显示屏指定位置显示。(2)脉冲信号个数 0 到 9999 可调并在液晶显示屏指定位置显示。(3)脉冲信号占空比任意可调并在液晶屏显屏指定位置示出来。关键词:单片机,脉冲信号,频率,脉冲个数,占空比 洛阳理工学院毕业设计(论文)

3、IIProgrammable pulse signal generator designABSTRACTThe programmable pulse signal generator based on single chip, through the 4x4 non-coding matrix keyboard inputing pulse signal parameters of frequency, duty cycle and pulse number, pulse signal is sent to meet the targets of signal processing chip.

4、The related parameters are displayed on the setting position on the liquid crystal. The reset circuit by power-on reset and manual reset, ensure the SCM in power and run into dead circulation can be reset. Use in work mode 1 timer and counter output low frequency pulse signal, and in work mode 2 to

5、timer output high frequency pulse signal ,automaticly repeat initialization, so as to make the frequency and duty ratio meet the requirements. Through the program design, the microcontroller each signal and then wait for the reset signal, the signal at the output of the pulse next time, effectively

6、improve the efficiency in the use of single-chip microcomputer.The subject of the use of single-chip technology, which achieved through the corresponding software and the simple peripheral hardware circuit. The advantages of which are the small interference of the pulse signal, output stability, hig

7、h reliability, friendly man-machine interface, easy operation, low cost, portability, scalability strong. The keys, pulse frequency, pulse number and pulse duty ratio are adjustable, which can be inputed through the keyboard and displayed through LCD.The requirements of this topic design:(1) The pul

8、se signal frequency of 0.1HZ to 50KHZ is adjustable and can be displaied on the specify location in the LCD screen.(2) Pulse signal number of 0 to 9999 is adjusted and can be displaied on the specify location in the LCD screen.(3) Pulse duty ratio is adjustable and can be displaied on the specify lo

9、cation in the LCD screen.KEY WORDS: single chip computer,pulse,hardware circuit,pulse number,duty 洛阳理工学院毕业设计(论文)IIIratio洛阳理工学院毕业设计(论文)IV目录前言.1第 1 章可编程脉冲发生器的相关模块.41.1 AT89C51 单片机.41.1.1 AT89C51 单片机的结构.41.1.2 AT89C51 单片机的引脚功能.51.1.3 AT89C51 单片机的中断系统.91.1.4 AT89C51 单片机的定时/计数器.111.2 SMC 1602A LCD 液晶显示屏.

10、12第 2 章 可编程脉冲信号发生器的硬件设计.142.1 硬件系统的总体设计.142.1.1 系统的总体框图.142.1.2 原理阐述.142.2 硬件系统各部分构成.142.2.1 电源电路.142.2.2 矩阵键盘.152.2.3 脉冲信号输出电路.162.3 系统电路原理图.19第 3 章 可编程脉冲信号发生器的软件设计.203.1 矩阵键盘的程序设计.203.2 液晶屏显示的程序设计.213.3 脉冲生成的程序设计.233.3 程序流程图.243.3.1 主程序流程图.243.3.2 键盘分析子程序流程图.253.3.3 显示子程序流程图.263.3.3 数值处理子程序流程图.273

11、.3.3 脉冲信号生成子程序流程图.283.3.源程序.28洛阳理工学院毕业设计(论文)V第 4 章 可编程脉冲信号发生器的程序编译、调试及仿真.294.1 系统程序的编译.294.2 系统调试.304.2.1 硬件调试.304.2.2 软件调试.304.3 系统仿真.324.3.1 系统仿真图.324.3.2 系统的改善.35结论.36谢 辞.37参考文献.38附录.39外文资料翻译.57洛阳理工学院毕业设计(论文)1前言信号发生器是一种能产生标准信号的电子仪器,是工业生产和电工、电子实验中经常使用的电子仪器之一。信号发生器的种类比较多,性能也千差万别,但它们都可以产生不同频率的调频波信号、

12、调幅波、正弦波,以及各种锯齿波、三角波、方波和正负脉冲波等信号。脉冲信号发生器作为一种常见的应用电子仪器设备,一般可以完全由硬件电路搭建而成,如采用555振荡电路发生方波的电路即是可行的方法之一,而不依靠单片机来实现。但是这种电路存在波形质量差,控制难度大,调整范围小,电路结构复杂以及体积大等缺点。在科学研究和生产实践中,如工业生产过程控制、生物医学、地震模拟、机械振动等领域,也常常需要用到低频信号源。而由硬件电路构成的低频信号发生器性能难以令人满意,而且由于低频信号源所需的RC要很大,体积大,漏电,大电阻、大电容在制作上亦有很大的难度,损耗显著更是其致命的弱点。一旦工作需求功能有增加,则电路

13、复杂程度也会大大增加。 在现代测试与控制中常常需要频率可调的脉冲发生器,利用单片机内可编程定时/计数器即可实现。脉冲信号发生器是电子测量中的一种重要仪器,随着微电子技术的高速发展,脉冲信号发生器向着集成化、数字化、智能化的方向发展。利用单片机采用程序设计方法来产生信号,其频率底线很低,具有线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强,用途广泛等优点,并且能够对波形进行细微调整。改良波形,使其满足系统的要求。只要对电路稍加修改,调整程序,即可完成功能的升级。在数字电路或系统中常常需要各种脉冲波形,例如时钟脉冲、控制过程中的定时信号等。单片机是实现各种控制策略和算法的载体。在现代测

14、试与控制中常常需要频率可调的脉冲信号发生器,利用单片机内可编程定时/计数器可以实现。本课题设计运用单片机技术,通过相应的软件编程和较简易的外围硬件电路设计来实现,和用分立式元件设计的脉冲发生器相比而言,其产生的脉冲信号干扰小,输出稳定,可靠性高,人机界面友好,操作简单方便,成本低,携带方便,扩展性强。关键的是,脉冲信号频率、占空比和脉冲个数可以调节,可通过键盘洛阳理工学院毕业设计(论文)2输入并由显示器显示出来。本课题运用单片机技术解决以下问题:1.清楚单片机的中断、定时/计数等常用功能,产生频率、个数、占空比可调整的脉冲信号。 2.画出以单片机为核心,以矩阵键盘为输入设备,以液晶显示屏为显示

15、设备产生脉冲信号的硬件原理电路图。 3画出相应的软件流程图,并写出键盘驱动、液晶显示屏驱动以及产生频率、个数、占空比可以调整的 C 语言源程序。 4指标要求:(1)脉冲信号频率参数由键盘输入频率范围 0.1HZ 到 50KHZ 可调并由液晶显示屏在指定位置显示。(2) 脉冲信号个数参数由键盘输入脉冲个数 0 到 9999 可调并由液晶显示屏指定位置显示。 (3) 脉冲信号占空比参数由键盘输入任意占空比的脉冲信号,并由液晶屏指定位置显示。 5 用 PROTEUS 软件做出硬件电路仿真调试结果,并加以说明。针对不同的问题,有针对性的采用不同的方法解决。1.查阅形成脉冲信号的相关资料,结合所学 51

16、 系列单片机的基础知识,用工作方式 1 下的定时加计数的方法实现对低频信号指标的控制,用自动重复赋初值的工作方式 2 下的定时器实现对高频信号指标的控制,用计数的方法实现对生发信号个数的控制。2.查阅与单片机最小系统硬件开发相关的资料,从网上那个下载单片机应用实例,在 PROTEUS 软件上进行仿真实验,熟悉硬件开发环境,掌握电气原理图绘制的基本原理,对程序设计过程有更深层次的了解。3.查看与 C 语言程序设计相关的资料,主要研究程序设计的基本方法,掌握C 语言中基本指令的使用方法,认识程序设计过程中关键指令使用时的注意事项,熟悉程序开发设计的过程。4.在完成电气原理图设计及 C 语言源程序设

17、计后,通过在 PROTEUS 和 KeiL uVision4 软件上进行联机仿真调试,发现电气原理图设计和 C 语言程序设计中存在的问题,查看问题出现的原因,并在此基础上进行完善;通过 PROTEUS 和KeiL uVision4 软件上进行联机仿真调试,查看生成的脉冲信号并与指标要求进洛阳理工学院毕业设计(论文)3行对比,在 KeiL uVision4 软件上进行单步运行找出误差出现的原因,通过对程序的结构或者所用的指令进行调整进一步完善程序,再进行联机仿真调试,直到误差在允许的范围内,通过进一步整理,完成在完成电气原理图设计及 C 语言源程序设计。洛阳理工学院毕业设计(论文)4第 1 章

18、可编程脉冲发生器的相关模块1.1 AT89C51 单片机1.1.1 AT89C51 单片机的结构AT89C51单片机的内部结构包括CPU、存储器、并行接口、串行接口、定时计/数器,其系统结构图如图1-1所示。在一个芯片上集成了单片机的各个组成部分,其功能如下:(1)一个八位中央处理器CPU,包括可以进行8位算术运算和逻辑运算的AIU单元、8位累加器ACC、寄存器B和程序状态寄存器PSW等。(2)片内数据存储器RAM(128B),用于存放可以读/写的数据,如运算中间的结果、最终结果或预显示的数据等。(3)片内程序存数器ROM/EPROM,用于存放原始数据、程序和表格。(4)四个 8 位并行 I/

19、O 接口 P0-P3 端口,每个接端口可用于输入或输出。 T0 T1 内部总线 P0 P1 P2 P3 TXD RXD INT0 INT1图 1-1 AT89C51 单片机系统结构图(5)两个 16 位定时/计数器,其中每一个定时/计数器可以设置成为计数方式EOMRAM计数/定时器中断系统串行接口并行接口CPU时钟电路STR洛阳理工学院毕业设计(论文)5用来对外部事件计数,也可以设置成为定时方式并且可以根据定时或计数的结果去控制计算机。(6)五个中断源,具有两个优先级别的中断嵌套结构,两个外部中断源和INTO,三个内部中断源即两个定时计数中断和一个串行口中断。INT1(7)一个全双工通用异步接

20、受发送器(URAT)串行接口,用于实现单片机与单片机或者单片机与其他计算机之间的串行通信。(8)片内振荡器和时钟发生电路,时钟振荡电路是控制器的核心,为控制器提供时钟脉冲信号。(9)单片机允许的最高工作频率是24MHZ。AT89C51单片机可降至0HZ的静态逻辑操作,并支持两个软件的节电工作模式3。 1.1.2 AT89C51 单片机的引脚功能1. 电源引脚GND和VCC(1)VSS(20 脚):接地端。(2)VCC(40 脚):电源端。正常操作及对Flash ROM编程和验证时接+5V电源。 图1-2 AT89C51管脚图2. 外接晶体引脚XTAL1和XTAL2(1) XTAL1(19 脚)

21、:接外部晶体和微调电容的一端。在AT89C51片内,它洛阳理工学院毕业设计(论文)6是振荡电路反相放大器的输入端以及内部时钟发生器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,此引脚引入外部时钟脉冲信号。要检查AT89C51的振荡电路是否能够正常工作,可以用示波器查看XTAL2端口是否有脉冲信号输出。(2) XTAL2(18 脚):接外部晶体和微调电容的另一端。在AT89C51片内,它是振荡电路反相放大器的输出端,当采用外部振荡器时,此引脚应该悬空。3. 控制信号引脚RST、ALE/ 、和/VPPPROGPSENEA(1) RST(9 脚):复位信号输入端,高电平有效。当振荡器工作

22、时,在此引脚上出现连续两个机器周期以上的高电平,就可以使单片机完成复位。(2) ALE/ (30 脚):地址锁存允许信号。当AT89C51上电正常工作后,PROGALE端不断向外输出正脉冲信号,此信号频率为振荡器频率的1/6。CPU访问外存储器时,ALE输出信号作为锁存低8位地址的控制信号。AT89C51在并行扩展外部存储器(包括并行扩展I/O 口)时,P0口用于分时传送低8位地址和数据信号。当ALE 信号有效时,P0口传送的是低8位地址信号;ALE信号无效时,P0口传送的是8位数据信号。在ALE信号的下降沿,锁定P0口传送的低8位地址信号。这样,可以实现低8位地址与数据的分离。ALE信号也可

23、以用作对外输出的时钟或定时信号。需注意的是,每当访问外部数据存储器时,都将跳过一个ALE脉冲。ALE端可以驱动(吸收或输出电流)8 个LS型TTL(低功耗甚高速TTL)负载。此引脚的第2功能是在对片内带有4KB Flash ROM的AT89C51编程写入PROG(固化程序)时,作为编程脉冲信号的输入端。(3) (29 脚):程序存储允许输出信号端。当AT89C51由片外部程序存储PSEN器读取指令(或常数)时,每个机器周期内两次有效(即输出两个有效脉冲)PSEN。但在这段时间内,每当访问外部数据存储器时,这两次有效的信号将不再PSEN出现。端也可以驱动8个LS型TTL负载。PSEN想要检查一个

24、AT89C51小系统上电后CPU是否能够正常工作,可以用示波器查看端口是否有脉冲信号输出。如果有,说明其基本上能够正常工作;否则,PSEN说明其不能正常工作。(4) /VPP(31 脚):外部程序存储器地址允许输入端/固化编程电压输入EA洛阳理工学院毕业设计(论文)7端。当引脚接高电平时,CPU访问片内FLASH ROM并去执行内部程序存储器中的EA指令;但当PC值超过4KB(1FFFH)时,将会自动跳去执行外部程序存储器中的指令。当端接低电平时,CPU只访问并执行外部程序存储器中的程序,而不管是EA否有片内程序存储器。需要注意的是,如果保密位LB1被编程,复位时在内部会锁存端口的状态。EA4

25、. 输入/输出引脚P0口、P1口、P2口、P3口(1) P0口(P0.0- P0.7共8条引脚,即39-32 脚):P0口是一组漏极开路的8位准双向IO端口,也即地址数据总线复用口。当P0口作为输入端口使用时,应先向口锁存器(地址80H)写入全“1” ,此时P0口的全部引脚悬空可当作高阻抗输入。作为输入端口使用时,要先对端口写全“1” ,这就是准双向口的含义。当作为输出端口用时,每位能吸收电流的方式驱动8个TTL负载。对端口写全“1” ,可以当作高阻抗输入端口使用。在CPU访问片外存储器时,P0口分时提供低8位地址和8位数据的复用总线。在此期间,P0口内部的上拉电阻有效。在Flash ROM编

26、程时,P0口接收指令字节;而在校验程序时,则输出指令字节。校验时,要求外接上拉电阻。 (2) P1口(P1.0 - P1.7共8条引脚,即1 - 8脚):P1是一个带内部上拉电阻的8位双向IO端口。P1口的输出缓冲器可驱动(吸收或输出电流)4个LS型TTL输入。对端口写“1” ,通过内部上拉电阻把端口拉升到高电平,此时可以作为输入端口使用。当P1口用作输入端使用时,因为存在内部上拉电阻,某个引脚被外部信号拉低时该引脚会输出一个电流(IIL) 。在对Flash ROM编程或者程序校验时,P1口接收低8位地址。 (3) P2口(P2.0 - P2.7共8条引脚,即21 - 28脚):P2是一个带有

27、内部上拉电阻的8位双向I/ 端口,P2的输出缓冲器可驱动4个LS型TTL输入。对端口写“1” , 通过内部上拉电阻把端口拉升到高电平,此时可以当作输入端端口使用。当作为输入端口使用时,因为存在内部上拉电阻,某个引脚被外部信号拉低时该引脚会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口引脚上的内容,在整个访问周期不会发生改变。洛阳理工学院毕业设计(论文)8Flash编程或程序校验期间,P2也可以可接收高位地址和一些控制信号。(4) P3口(P3.0 - P3.7 共8 条引脚,即10 - 17 脚):

28、P3口是一组带有内部上拉电阻的8位双向IO端口。P3口输出缓冲器可驱动4个LS型TTL输入。对端口写入“1”时,它们被内部的上拉电阻把端口拉升到高电位,这时可以当作输入端口用。当作为输入端口使用时,因为存在内部上拉电阻,某个引脚被外部信号拉低时该引脚会输出一个电流(IIL)。表1-1 P3口的第二功能端口第二功能名称P3.0RXD串行数据接收端P3.1TXD串行数据发送端P3.2INT0外部中断0申请输入端P3.3 INT1外部中断1申请输入端P3.4T0定时器0计数输入端P3.5T1定时器1计数输入端P3.6WR外部RAM写选通P3.7RD外部RAM写选通洛阳理工学院毕业设计(论文)9在对F

29、lash ROM编程或者程序校验期间,P3口还可以接收一些控制信号。在AT89C51中,P3端口的还用于一些第二功能7。P3口第二功能如上页表1-1所示。1.1.3 AT89C51 单片机的中断系统单片机在某一时刻只能处理一个任务,当多个任务同时要求单片机处理时,这一要求应该怎么实现呢?通过中断系统可以实现多个任务的资源共享。所谓的中断就是,当 CPU 正在处理某项事务的时候,如果外界或者内部发生了紧急事件,要求 CPU 暂停正在执行的工作转去处理这个紧急事件,待处理完后,再回到原来停止工作的地方,继续执行原来被中止的程序,这个过程称作中断。从中断的定义我们可以看到中断应具备中断源、中断响应、

30、中断返回三个要素。中断源发出中断请求,单片机对中断请求进行响应,当中断响应完成后进行中断返回,返回被中断的地方继续执行原来被中断的程序。当 CPU 查询到中断请求时,由硬件自动产生一条 LCALL 指令。执行 LCALL 指令时,首先将 PC 内容压入堆栈进行断点保护,再把中断入口地址装入 PC,使程序跳转到相应的中断区入口地址。MCS-51 单片机的中断系统有 5 个中断请求源,具有 2 个中断优先级,可实现2 级中断服务程序的嵌套。MCS-51 中断系统 5 个中断请求源分别如下:(1)INT0:外部中断请求 0,由 INT0 引脚输入,中断请求标志为 IE0;(2)INT1:外部中断请求

31、 1,由 INT1 引脚输入,中断请求标志为 IE1;(3)T0:定时器/计数器 0 的溢出中断请求,中断请求标志为 TF0;(4)T1:定时器/计数器 1 的溢出中断请求,中断请求标志为 TF1;(5)TXD/RXD:串行口的中断请求,中断请求标志为 TI 或 RI。 各中断源服务程序入口地址是固定的,如下: 中断源 入口地址 外部中断 0-0003H 定时器/计数器 T0-000BH 外部中断 1-0013H 定时器/计数器 T1-001BH 串行口中断-0023H洛阳理工学院毕业设计(论文)10 可以用关中断指令“CLR EA”来屏蔽所有的中断请求,也可以用开中断指令“SET EA”来允

32、许 CPU 接收中断请求,每一个中断另有所指可以用编程独立地控制为允许中断或关中断状态,每一个中断源的中断级别均可用编程进行设置。中断系统结构如图 1-3 所示:图 1-3 AT89C51 中断系统结构示意图AT89C51 提供了 5 个中断源,两个中断优先级控制,可实现两个中断服务嵌套。当 CPU 支持中断屏蔽指令后,可将一部分或所有的中断关断,只有打开相应的中断控制位后,方可接收相应的中断请求。程序设置中断的允许或屏蔽,也可设置中断的优先等级。AT89C51 CPU 在每一个机器周期按顺序去检查每一个中断源,在机器周期的S6 按优先级处理所有被激活的中断请求,此时,如果 CPU 没有正在处

33、理更高级别或者相同优先级的中断,或者现在的机器周期不是所执行指令的最后一个机器周期,或者 CPU 不是正在执行 RETI 指令或访问 IE 和 IP 的指令,CPU 则去执行中断以外的操作。1.1.4 AT89C51 单片机的定时/计数器在控制系统中,经常需要用实时时钟实现定时或延时控制,例如定时中断、定时检测、定时操作等。有的地方也要用到计数器对外部事件进行计数,例如自动化包装线中对产品进行计数。在计算机控制中,实现定时功能一般可采用软件定时、非编程的硬件定时和可编程硬件定时三种方法。可编程定时器可以通过软件来对定时时间进行修改,但定时是通过硬件来完成,以中断的方式通知CPU。因此功能强,使

34、用方便灵活。AT89C51单片机有两个16位定时器/计数器,分别为定时器0(T0)和定时器1(T1) 。它们都其有定时器和计数功能,可用作定时控制、精确延时,以及对外部事件的计数和控制,其中T1还可以作为串行口的波特率发生器。洛阳理工学院毕业设计(论文)11微处理器(CPU) TH1TL1TH0TL0TCONTMOD图1-4 MCS-51定时器/计数器结构框图AT89C51单片机内部的定时/计数器的结构如图1-4所示,定时器T0特性功能寄存器TL0(低8位)和TH0(高8位)构成,定时器T1由特性功能寄存器TL1(低8位)和TH1(高8位)构成。定时寄存器的工作方式由特殊功能寄存器TMOD控制

35、,定时器T0和T1的启动和停止计数由特殊功能寄存器TCON控制。同时管理定时器T0和T1的溢出标志等由特殊功能寄存器TCON控制。程序开始运行时,需要对TL0、TH0、TL1和TH1进行初始化编程,来定义它们的工作方式和设置定时器T0和T1的计数初值。(1)计数器工作模式计数功能是对外来脉冲进行计数。AT89C51 芯片 T0(P3.4)和 T1(P3.5)两个输入引脚,分别是这两个计数器的计数输入端。每当计数器的计数输入引脚的脉冲发生负跳变时,计数器当前值加 1。(2)定时器工作模式定时功能也是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,即每个机器周期产生 1 个计数脉冲,

36、也就是每经过 1 个机器周期的时间,计数器当前值加 1。AT89C51 单片机的定时器/计数器具有 4 种工作方式(方式 0、方式 1、方式 2和方式 3),其控制字均在相应的特殊功能寄存器中,通过对它的特殊功能寄存器的编程,可方便地选择定时器 2 种工作模式和计数器 4 种工作方式。洛阳理工学院毕业设计(论文)121.2 SMC 1602A LCD 液晶显示屏单片机应用系统常需要连接键盘、显示器、打印机、A/D 和 D/A 转换器等外设。其中,键盘和显示器是使用最频繁的外部设备,它们是构成人机对话的一种基本方式。 用 LCD 显示一个字符时比较复杂,因为一个字符由 68 或 88 点阵组成,

37、既要找到和显示屏幕上某几个位置相对应的显示 RAM 区的 8 字节,又要使每字节的不同位为“1” ,其它的为“0” ,为“1”的点亮,为“0”的不亮,来组成这个特定的字符。图 1-5 SMC 1602 管脚图但对于内带字符发生器的控制器而说,显示字符就简单多了,可以使控制器工作在文本方式,根据在 LCD 上开始显示的行列号以及每行的列数找到显示 RAM相对应的地址,设立光标,在此位置送上该字符对应的代码即可。 SMC 1602A LCD 为 16*2 的液晶显示屏,支持字母和数字的 ASCII 码显示,即给 LCD 送相应数字和字母的 ASCII 码,保证正确时序,即可显示相应的字符。SMC

38、1602 的管脚图如图 1-5 所示。 SMC 1602 采用标准的 16 脚接口。各引脚具体说明如下:第 1 脚:VSS 为电源地。第 2 脚:VDD 接 5V 电源正极。第 3 脚:V0 为液晶显示器对比度调整端 。接地电源时,对比度是最高的;接正电源时,对比度是最低的(对比度太高时,会产生“鬼影”现象,这时对比度可以用一个 10K 的电位器进行调整)。第 4 脚:RS 为寄存器选择端。高电平“1”时,选择数据寄存器;低电平“0”时,选择指令寄存器。第 5 脚:R/W 为读写信号线。高电平“1”时,进行读操作;低电平“0”时,洛阳理工学院毕业设计(论文)13进行写操作。第 6 脚:EN 端

39、为使能端。第 714 脚:D0D7 引脚,为 8 位双向数据端口。第 1516 脚:空脚或背灯电源。15 脚为背光正极,16 脚为背光负极。SMC 1602 与单片机的连接图如图 1-6 所示。图 1-6 SMC 1602 与单片机连接图第 2 章 可编程脉冲信号发生器的硬件设计2.1 硬件系统的总体设计2.1.1 系统的总体框图基于 AT89C51 单片机的可编程脉冲信号发生器的系统框图如图 2-1 所示:图 2-1 系统框图键盘输入驱动显示液晶屏显示参数SMC1602脉冲信号输出电源电路7805MCS51控制脉冲输出及控制显示AT89C51洛阳理工学院毕业设计(论文)142.1.2 原理阐

40、述可编程脉冲信号发生器以 AT89C51 单片机为核心,以矩阵键盘作为输入设备,以液晶显示屏 SMC1602 为显示设备,通过矩阵键盘将脉冲信号参数频率、个数、占空比送入 AT89C51 单片机,接着单片机进行数据处理,驱动液晶屏在指定的位置显示相关的参数;根据不同的脉冲信号参数指标采取不同的控制策略,生成满足指标要求的脉冲信号。为提高系统的抗干扰性,将脉冲信号通过端口 P3.0经过 555 定时器构成的史密斯触发器输出。2.2 硬件系统各部分构成2.2.1 电源电路如下页图 2-2 电源电路图所示,电源供电部分采用变压器降压、桥式整流电路整流、电容器滤波、三端稳压器 7805 稳压后供电。电

41、源用 220V 市电经降压变压器 TR1 降压成 8V 交流电,然后经四个整流二极管(D1D4)组成的桥式整流电路变成直流电压,经 C1 滤波后送入 7805 芯片稳压成 5V 直流电源向液晶显示屏 SMC1602、555 定时器、单片机 AT89C51 等元器件供电。图 2-2 电源电路图稳压器 7805 引脚图如图 2-3 所示: 图 2-3 稳压器 7805 引脚图引脚功能为:洛阳理工学院毕业设计(论文)151 脚:输入。 2 脚:接。 3 脚:输出。 由于内部电流的限制,以及过热保护和安全工作区的保护,使它基本上不会损坏。如果能够提供足够的散热片,它们就能够提供大于 1.5A 输出电流

42、。虽然是按照固定电压值来设计的,但是当接入适当的外部器件后,就能获得各种不同的电压和电流。2.2.2 矩阵键盘键盘是一种输入装置,通过键盘上任一按键可以向单片机输入信息。按键开关是键盘的基本组成元件。 键盘结构的关键是如何把键盘上的每次按键动作转换成相应的 ASCII 码送到单片机。按编码方式的不同,可以将键盘分为全编码键盘和非全编码键盘。所谓全编码键盘,是每一个按键,通过全编码电路产生唯一对应的编码信息。这种全编码键盘响应速度快,但是以复杂的硬件电路为代价的,而且其复杂性随着按键数的增加而大大增加,价格贵。所谓非编码键盘,是利用简单的电路和软件配合来识别按键的位置(位置码) ,然后由单片机通

43、过软件查表将位置码转换成需要的编码信息。虽然这种键盘响应速度不如全键盘快,但可以由 CPU 的处理速度来弥补9。这种键盘的优点是通过软件编码为键盘某些见的重新定义提供了极大的方便。考虑到本次设计的经济性与便携性,故采用非编码键盘作为可编程脉冲信号发生器的输入设备。非编码键盘结构图如图 2-4 所示。图 2-4 非编码键盘结构图洛阳理工学院毕业设计(论文)16键盘上的按键一般排成行、列矩阵格式,每个交叉点上可接一个按键。在非编码键盘中,采用行扫描法来扫描识别按下的键。行扫描法的基本原理是,先有程序逐行对键盘进行扫描,再通过检测列的状态来确定按键的行列位置。2.2.3 脉冲信号输出电路通过键盘将脉

44、冲信号参数指标送入到 AT89C51 单片机。单片机从预设置空间中取出参数指标数据并加以处理,得到产生脉冲信号需要的数据,接着产生满足参数指标的脉冲信号。软件上,先调用显示子程序,关掉显示。然后调用显示子程序显示脉冲信号指标关键字频率(PL) 、占空比(ZKB) 、个数(NUM) ,提示用户输入脉冲信号参数指标。若没有按键或者发生窜键,则 CPU 处于等待状态,直到检测到有有效按键为止,这时调用按键分析子程序计算出被按按键的键值。脉冲信号输出电路图如图 2-5 所示。洛阳理工学院毕业设计(论文)17图 2-5 脉冲信号输出电路图按上述方式依次输入三组数据并求出各位数的键值,并且调用液晶屏显示驱

45、动子程序,在液晶屏指定位置显示脉冲信号频率、占空比、脉冲个数信息。然后,调用脉冲生成子程序产生满足指标参数的脉冲信号。然后将流程回到脉冲生成子程序的开始处,准备产生下一个脉冲信号,这样周而复始,直到输出完要求个数的脉冲信号。最后,若检测到重置信号时返回主程序开始处,进行数据设定输出新周期的脉冲信号,否则程序将等待在主程序的结束处。其中,定时初值从特定缓冲区得到。定时初值的不同,就会得到不同的电平宽度,从而得到不同周期的脉冲,也就得到了不同频率的脉冲了。调整高低电平所占的时间,便可以改变脉冲信号的占空比。洛阳理工学院毕业设计(论文)18 考虑到周围电磁环境以及信号突变的输出脉冲信号的影响,这里将

46、得到的脉冲信号经 555 定时器构成的施密特触发器输出。施密特触发器,具有回差电压特性,能将边沿变化缓慢的电压波形整形为边沿陡峭的矩形脉冲。1265VCCRDO5553Ov7vvI2I1vIC8412IvCCVVCC2RttvIOv123CCVCC1V3(a)电路图(b)波形图v图 2-6 555 定时器构成的施密特触发器(1)VI =0V 时,vo1输出高电平。(2)当 VI上升到时,Vo1输出低电平。当 VI由继续上升,vo1保持ccV32ccV32不变。(3)当 VI下降到时,电路输出跳变为高电平。而且在 VI继续下降到 0VccV31时,电路的这种状态保持不变。图 2-6 中,R、VC

47、C2构成另一输出端 Vo2,其高电平可以通过改变 VCC2进行调节12。 正是由于施密特触发器具有回差电压特性,可以有效的避免因电磁环境引起的小幅度电压突变造的脉冲信号的变化。此外,当施密特触发器输入端为低电平时,输出端为高电平;当施密特触发器输入端为高电平时,输出端为低电平,这样当输出占空比较大的脉冲信号时就能有效的减少单片机的能耗,延长单片机的使用寿命。如果要频繁的输出小占空比的脉冲信号,可以通过改变输出端口的预置值来实现。这也正体现出了本课题设计良好的经济性和可拓展性。2.3 系统电路原理图洛阳理工学院毕业设计(论文)19以 AT89C51 单片机为核心,以矩阵键盘作为输入设备,以液晶显

48、示屏SMC1602 为显示设备。通过 4*4 矩阵非编码键盘将脉冲信号参数频率、个数、占空比送入 AT89C51 单片机,单片机调用数值处理子程序进行数据处理,再调用液晶屏驱动子程序驱动液晶屏在制定的位置显示脉冲信号相关的参数;根据不同的控制策略,生成不同指标要求的脉冲信号并通过端口 P3.0 端口送出单片机,将脉冲信号经 555 定时器构成的施密特触发器输出。系统电路原理图如图 2-7 所示:图 2-7 系统电路原理图洛阳理工学院毕业设计(论文)20第 3 章 可编程脉冲信号发生器的软件设计3.1 矩阵键盘的程序设计通常键盘有编码和非编码两种,本次课题设计使用的是非编码键盘。键盘上的按键一般

49、排成行、列矩阵格式,每个交叉点上可接一个按键。按键的作用只是使相应接点接通或断开,在相应程序配合下可产生被按按键的键码。采用非编码式键盘,CPU 必须对所有按键进行监视,一旦发现有键下,CPU 应通过程序加以识别,并转入相应的处理程序,录入相应的字符,字符对应关系如表 3-1 所示:表 3-1 字符对应关系表0 x0e(1 列)0 x0d(2 列)0 x0b(3 列)0 x07(4 列)0 xe0(1 行)147#0 xd0(2 行)258*0 xb0(3 行)369k0 x70(4 行)0.%判断按键是否按下CPU 监视键盘中按键是否按下的原理很简单。CPU 只要读取 P1 口的值就可以判断

50、按键是否按下。如果没有按键按下,则返回值必为 ff;若有键按下,则值必因被按按键的接通而不等于 ff。按键去抖和窜键处理在按下某个按键时,被按下按键的簧片会有轻微的抖动,这种抖动通常会持续 10ms 左右的时间。因此,CPU 在按键抖动期间扫描键盘必然会得到错误的键值,最好的办法是使 CPU 在检测到有键按下时延时 20ms 再进行扫描。用户在操作时常常因不小心同时按下了一个以上的按键,即发生了窜键。CPU 处理窜键的原则是把最后放开的按键认为真正被按的按键。CPU 在处理发生在两个不同行上的窜键时,可进行一个短延时,CPU 再扫描一次 P1 口,若俩次得到数值相同则说明确实有键按下,否则说明

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 中学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报