字符液晶显示的频率计.doc_第1页
字符液晶显示的频率计.doc_第2页
字符液晶显示的频率计.doc_第3页
字符液晶显示的频率计.doc_第4页
字符液晶显示的频率计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1设计要求22设计方案与论证2 2.1设计的思路2 2.2总体方案2 2.3总体框图33设计原理及电路图3 3.1硬件原理3 3.1.1AT89C51介绍3 3.1.2单片机最小系统4 3.1.3液晶显示电路4 3.2电路图5 3.2.1液晶显示电路5 3.2.2时钟电路6 3.2.3控制电路6 3.2.4字符液晶显示频率计的完整电路图7 3.3软件设计7 3.3.1软件环境7 3.3.2软件原理8 3.3.3软件流程图84器件清单85器件识别与检测96控制系统实现9 6.1软件编程9 6.2Keil C与Proteus的联调及仿真结果127设计心得138参考文献13 1.设计要求 (1 ) 单片机通过I/O口接收输入信号。 (2)单片机要通过I/O口控制液晶的初始化、显示方式以及要显示的字符。 (3)液晶屏上能够完成部分数字或常用字符的显示。 (4)能通过改变程序,提高测量精度。 (5)设计字符液晶频率计的电路图 ,并用proteus软件进行仿真。 (6)用单片机的c语言编写程序并导入单片机中进行模拟仿真。 2.设计方案与论证 2.1设计的思路(1)单片机部分: 考虑到目前所学习的内容和设计的目的,决定选取AT89C51.此单片机虽然属于低端机型,但足以满足设计的要求。选取其它的高端机型有些浪费。 (2)显示部分: 该课程设计要求能够完成部分数字和常用字符的显示。若用数码管只能显示0F,不能显示其他的字符和符号,所以不能用数码管。而选用LCD1602恰好符合要求,所以应用LCD1602。综上可得:采用定时器T1实现外部信号的频率输入,并利用T1计数器的计数功能和T0定时器的定时功能将脉冲的频率输入到LCD屏上。且可利用单刀多置开关实现多频率显示。 2.2总体方案: 该设计以单片机为核心,显示器为外围设备,设计一个字符液晶显示的频率计。硬件上,单片机通过电路板电路与液晶显示电路相连;软件上单片机通过下载完整的程序对二者进行适时的控制,其中的程序分为两部分,一部分是LCD1602液晶程序,一部分是频率计的主程序部分,其中主程序部分的功能是在按下K1键时程序启动T0定时器和T1计数器,T1计数器1s内的计数值即信息源的频率值。2.3总体框图: 5V 单片机 液晶模块 电源模块 5V 信号输入 从图中可以看出单片机控制的液晶显示的频率计的主要功能模块分为两部分:分别是液晶显示和电源模块两部分。 3设计原理及电路图 3.1硬件原理: 单片机通过I/O口接收输入信号,在通过I/O口控制液晶的初始化、显示方式及要显示的字符。3.1.1AT89C51介绍:T89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。本次设计主要用到单片机4个I/O口的3个,其中P0口与显示器相连,P1.0与开关K1相连,18、19引脚外接晶振电容为单片机提供时序9号脚为复位电路的接入脚。3.1.2单片机最小系统复位电路:由电容串联电阻构成,由图并结合电容电压不能突变的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就要让RC组合可以在RST脚上产生不少于2个机周期的高电平;复位输入高电平有效,当振荡器工作是,RST引脚出现两个机器周期以上的高电平,使单片机复位。此电路除具有上电复位功能外,若要复位只需按“RST”键,此电源Vcc经电阻分压,在RST端产生一个复位高电平;晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的方波便于12分频,方便定时操作); 单片机:一片AT89S51/52或其他51系列兼容单片机; 注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行; 电源部分:接+5伏特的电压。 3.1.3 液晶显示电路: 字符型液晶显示模块LCD1602是一种用5*7点阵图形来显示字符的液晶液晶显示器,其引脚功能如下表所示编号符号引脚说明编号符号引脚说明1VSS电源地9D2DataI/O2VDD电源正极10D3DataI/O3VL液晶显示偏 压信号11D4DataI/O4RS数据/命令选择端12D5DataI/O5R/W读写选择端13D6DataI/O6E使能信号14D7DataI/O7D0DataI/O15BLA背光源正极8D1DataI/O16BLK背光源负极读状态:输入:RS=L,RW=H,E=H 输出:D0D7=状态字 写指令:输入: RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:无读数据:输入:RS=H,RW=H,E=H 输出: D0D7=数据写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲 输出: 无根据1062液晶显示器的读写时序操作,编写相应的单片机驱动程序,便可以实现液晶显示器的显示输出。3.2电路图 3.2.1液晶显示电路:3.2.2时钟电路3.2.3控制电路:3.2.4字符液晶显示频率计的完整电路图:3.3软件设计3.3.1 软件环境 KeilC软件介绍:Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。 Proteus软件介绍:Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编辑器。3.3.2软件原理:软件调试主要是编写相应的程序,在电路仿真软件上进行仿真,直至达到预期效果。根据系统硬件设计要求,软件设计主要包括:单片机控制程序模块:作为系统的总控制程序模块液晶显示模块:使用字符型液晶显示器显示用户的选择。 开始3.3.3软件流程图; 测量被测信号频率 被测信号输入单片机向LCD写数据 单片机向LCD写指令 被测信号输入 测量被测信号频率 单片机向LCD写指令单片机向LCD写数据 显示结果结束 显示 测量被测信号频率LCD初始化 初始化 被测信号输入开始 Y N N LCD是否为忙 结束主程序流程图 LCD程序流程图4.器件清单元件序号型号主要参数数量备注1AT89C5112MHz12液晶显示器LCD160213按键液晶显示器开关14电阻10K15地址锁存器74LS37316与非门74LS0017晶振12MHz18单刀多置开关Sw-ROT419脉冲输入pulse310瓷片电容22pf211极性电容10uf1 5器件识别与检测 :LCD1602是一种点阵字符型液晶显示模块,可以显示两行共32个字符,是一种很常用的小型液晶显示模块,在单片机系统、嵌入式系统等的人机界面中得到广泛应用。基本特性为 2行*16个字符 、5*7阵字符以及反射型EL或者LED背光,其中EL为100VAC400Hz,LED为4.2VDC。并且其采用并行接口的方式,他的指令包括清屏、归位、输入方式设置、显示开关控制、光标位移、功能设置、DDRAM地址设置、读BF以及AC值、写数据、读数据。 6.控制系统实现(软件编程与调试)6.1软件编程:#include#include#define uchar unsigned char#define uint unsigned int#define WCOMM XBYTE0x0000#define RCOMM XBYTE0x0001#define WDATA XBYTE0x0002#define RDATA XBYTE0x0003void BusyWait() while(RCOMM & 0x80) != 0x00);void Write_Command(uchar cmd) BusyWait(); WCOMM=cmd; void Write_Data(uchar dat) BusyWait();WDATA=dat;void Initialise() Write_Command(0x30); Write_Command(0x01); Write_Command(0x06); Write_Command(0x0c); void ShowString(uchar *str) uchar i=0;Write_Command(0x80);while(stri!=0&i16)Write_Data(stri+);for(;i16;i+) Write_Data( ); #include#include#define uchar unsigned char#define uint unsigned intuchar code Prompt=Please press K1 and wait for awhile,Current Frequency will show on the LCD.;uchar LCD_Disp_Buffer=Frequency-HZ;uchar Count=0;sbit K1=P10;void Initialise();void ShowString(uchar str);void Delay(uchar ms) uchar i; while (ms-) for (i=0;i120;i+); void main() uchar i=0; Initialise(); while (Prompti!=0) ShowString(Prompt+i);i+;Delay(15); IE=0x8A;TMOD=0x51;TH0=(65536-50000)/256;TL0=(65536-50000)%256;while(1)if(K1=0) Delay(10);if(K1=0) TR1=TR0=1; ShowString(LCD_Disp_Buffer);void INT_T0( ) interrupt 1 uint Tmp,i; TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(+Count=20) TR1=TR0=0; Count=0; Tmp=TH1*256+TL1; LCD_Disp_Buffer9=Tmp/10000+0; LCD_Disp_Buffer10=Tmp/1000%10+0; LCD_Disp_Buffer11=Tmp/100%10+0; LCD_Disp_Buffer12=Tmp%100/10+0; LCD_Disp_Buffer13=Tmp%10+0; if(LCD_Disp_Buffer9=0) LCD_Disp_Buffer9= ;i=10;while(LCD_Disp_Bufferi=0&LCD_Disp_Bufferi-1= & i!=13 ) LCD_Disp_Bufferi+= ; TH1=TL1=0;6.2 KeilC与Proteus的联调及仿真结果双击图标进入keil软件编程环境,建立工程,输入程序,编译并调试,生成*.HEX文件。返回桌面双击图标进入Proteus仿真环境。打开绘制好的电路图文件,将刚生成的*.HEX文件添加到电路中完成联调并仿真。 仿真结果图此程序分为两部分:一部分是LCD液晶程序部分,一部分是主程序部分,在主程序部分通过调用液晶显示函数与定时、计数功能将波形脉冲的频率值显示在LCD上。其中液晶程序中先是LCD忙等待状态,待有频率输入时在执行写命令,之后写数据,在LCD初始化,最后显示函数显示字符串如按键K1按下,则显示频率。主程序中通过T1计数器计数和T0定时器定时功能将脉冲转换为计数值再转换为频率值显示在LCD屏幕上。 另外,虽然单片机只识别方波,但可以通过如下的电路将三角波、梯形波,正弦波等转化为方波进而测得其波形的频率。 波形转换电路7设计心得: 我学的单片机的c语言课程主要是80C51单片机,在这次课设中通过使用89C51有了更深的了解,同时在找资料的过程中学到了许多课本上学不到的知识和经验,也让我认识到了实践的重要性。同时在这次课设中我增加了该频率计的功能,让它能测量更多波形的频率,通过对原有的输入设备的改进,提高了系统的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论