为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 方波发生器设计(课程设计报告)16页

方波发生器设计(课程设计报告)16页

2018-01-07 17页 doc 170KB 126阅读

用户头像

is_196623

暂无简介

举报
方波发生器设计(课程设计报告)16页方波发生器设计(课程设计报告)16页 课程设计(论文)说明书 题 目: 方波发生器的设计 院 (系): 专 业: 电子信息工程 学生姓名: 学 号: 指导教师: 职 称: 20 年 月 日 第 1 页 共 16 页 摘 要 本次课程设计以AT89S51单片机为核心器件,外围采用按键作为控制以及LCD1602作为显示器所设计的方波发生器。该方波发生器能实现0-1kHz频率范围、占空比可调的方波输出。其核心技术为单片机并行端口的应用、单片机定时器中断应用和数字分离的ASCII码液晶显示技术。采用8个独立的按键...
方波发生器设计(课程设计报告)16页
方波发生器设计(课程设计)16页 课程设计() 题 目: 方波发生器的设计 院 (系): 专 业: 电子信息工程 学生姓名: 学 号: 指导教师: 职 称: 20 年 月 日 第 1 页 共 16 页 摘 要 本次课程设计以AT89S51单片机为核心器件,外围采用按键作为控制以及LCD1602作为显示器所设计的方波发生器。该方波发生器能实现0-1kHz频率范围、占空比可调的方波输出。其核心技术为单片机并行端口的应用、单片机定时器中断应用和数字分离的ASCII码液晶显示技术。采用8个独立的按键组成控制模块,操作方便,按键控制模式可以通过程序进行设定;显示模块则由液晶屏1602构成,能显示出实时输出方波的频率及占空比,直观明了。设计过程中遇到的问题是输出方波的频率、占空比与液晶显示数据存在误差,通过不断调试程序,合理编写中断服务程序来修正误差提高精确度,达到设计要求。该方波发生器具有线路简单、结构紧凑、价格低廉、性能优越等优点。 关键词:方波发生器;AT89S51单片机;键盘;LCD1602 第 2 页 共 16 页 Abstract The course design AT89S51 microcontroller as the core device, the external use of buttons as a control and LCD1602 displays are designed as a square wave generator. The square wave generator to achieve 0-1kHz frequency range, adjustable duty cycle square wave output. The core technology for the application of single chip parallel port, SCM applications and digital timer interrupt ASCII code separate liquid crystal display technology. 8-independent component control module buttons, easy to operate key control mode can be set through the program; display module constituted by the LCD1602, can show real-time output frequency and duty cycle square wave, intuitive and clear. Problems encountered in the design process is the output square wave frequency, duty cycle and LCD display data errors exist, through continuous commissioning process, a reasonable write interrupt service routine to correct the error to improve accuracy, to meet the design requirements. The square wave generator has a simple circuit, compact, low cost, superior performance advantages. ;;; Square wave generator AT89S51 microcontroller keyboard liquid crystal Keywords: 1602 第 3 页 共 16 页 目 录 引言 „„„„„„„„„„„„„„„„„„„„„„„„„„„4 1 概述„„„„„„„„„„„„„„„„„„„„„„„„„„ 4 1.1 设计内容„„„„„„„„„„„„„„„„„„„„„„„„ 4 1.2 设计的基本要求„„„„„„„„„„„„„„„„„„„„„„4 2 方波了生器设计„„„„„„„„„„„„„„„„„„„4 2.1 方案介绍„„„„„„„„„„„„„„„„„„„„„„„„ 4 2.2 方波发生器的原理与功能„„„„„„„„„„„„„„„„„„ 5 3 系统的硬件设计„„„„„„„„„„„„„„„„„„„„„5 3.1 单片机最小系统„„„„„„„„„„„„„„„„„„„„„„5 3.2 最小键盘接口电路„„„„„„„„„„„„„„„„„„„„„ 6 3.3 液晶显示电路„„„„„„„„„„„„„„„„„„„„„„„6 4 系统的软件设计„„„„„„„„„„„„„„„„„„„„„ 7 4.1 主程序„„„„„„„„„„„„„„„„„„„„„„„„„„7 4.2 显示子程序„„„„„„„„„„„„„„„„„„„„„„„„ 7 4.3 键盘扫描程序„„„„„„„„„„„„„„„„„„„„„„„7 4.3.1 频率调节„„„„„„„„„„„„„„„„„„„„„„„„7 4.3.2占空比调节„„„„„„„„„„„„„„„„„„„„„„„ 7 4.4 定时中断服务程序„„„„„„„„„„„„„„„„„„„„„7 5 调试与性能分析„„„„„„„„„„„„„„„„„„„„„ 8 5.1 硬件调试„„„„„„„„„„„„„„„„„„„„„„„„„8 5.2 软件调试„„„„„„„„„„„„„„„„„„„„„„„„„8 5.3 性能及误差分析„„„„„„„„„„„„„„„„„„„„„„ 8 6结论„„„„„„„„„„„„„„„„„„„„„„„„„„„ 8 谢辞 „„„„„„„„„„„„„„„„„„„„„„„„„„„ 10 参考文献 „„„„„„„„„„„„„„„„„„„„„„„„„11 附录 „„„„„„„„„„„„„„„„„„„„„„„„„„„12 第 4 页 共 16 页 引言 本次课程设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力完成课程设计。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对觉问题的处理方法,积累设计系统的经验,充分发挥教学与的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。 1 概述 单片机集成度高、功能强、可靠性高、体积小、功耗低、价格低廉等一系列优点。目前已经渗入到人们工作和生活的方方面面,单片机的应用领域已从面向工业控制、通信、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC外围以及网络通讯等广大领域。 单片机有两种基本结构形式:一种是在能用微型计算机中广泛应用的,将程序存储器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器分开的结构较多。本课程设计的方波发生器的核心是目前应用极为广泛的51系列单片机。 1.1 设计内容 本次课程设计是设计一个方波发生器,用键盘控制频率和占空比变化,使用LCD液晶屏显示出来。 1.2 设计的基本要求 频率可调,用6个按键来分别以不同的步长控制方波的频率变化,步长分别为+/-1Hz、+/-10Hz、+/-100Hz,频率设计范围为1Hz~1KHz; 占空比可调,采用两个按键以设计的步长实现增加、减小波形占空比的作用,步长为+/-5%,可调范围5%~95%。 显示,将输出方波的频率以及占空比通过LCD1602液晶屏显示出来。 2 方波发生器设计方案 在电子技术领域中,实现方波了生器的方法有很多,可以采用不同的原理及器件构成不同的路,但可以实现功能。在本次的设计中,与模拟电路有些不同,比如频率和占空比的调节并不是通过改变变阻器的阻值来完成的,而是均采用按键来实现。 2.1 方案介绍 微处理器模块AT89S51,频率与占空比显示模块,8个独立键盘模块,复位电路模块,晶振电路模块。本设计中用到定时器为定时器T0,工作在方式2下,使用工作方式2是 第 5 页 共 16 页 考虑到其定时的准确性以及稳定性。用LCD1602液晶屏来显示频率和占空比,键盘的操盘是通过键盘扫描程序与单片机共同来控制的,键盘操作来完成按要求对频率和占空比进行调节。 2.2 方波发生器的原理与功能 方波发生器的原理方框图如图1所示 频率与占频率与占 空比调节 空比调节 LCD1602液晶显 示屏 键盘 单片机AT89S51 图1 方波发生器原理框图 由于系统的要求不高,比较单一的,再加上是通过定时器来调节频率和占空比,而非电阻,因此实现起来就相对简化了。仅用键盘、AT89S51和液晶屏便可完成设计,达到要求实现的功能。 方波发生器工作原理与功能: 简单的流程为:主程序扫描键盘,将设置的信息输入,处理后,通过LCD显示,并通过输出端口输出方波。单片机的晶振电路为12MHz,用到T0定时器,采用定时中断的方式进行频率与占空比的调节。根据计算定时器T0在工作方式2下初值的公式:TC=256-t*12/f 计算出定时器T0所要装入的初值。频率及占空比的显示电路由LCD1602液晶屏完成,将当前输出频率和占空比实时直观地显示在液晶上。该电路由一个复位键和8个功能键组成,其中6个按键实现不同步长频率的增加与减小,2个按键实现占空比的调节。 3 系统的硬件设计 3.1 单片机最小系统 单片机各功能部件的运行都是以时钟频率为基准的,因而时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路方式有两种:一种是内部时钟方式,一种是外部时钟方式,这里采用的是内部时钟方式,外接晶振。时钟电路由片外晶体、微调电容和单片机的内部电路组成。选取频率为12MHz和晶振,微调电容是瓷片电容。 波形输出口设定为AT89S51单片机的P3.3口,若接示波器,则可通过示波器来观察波形,是一个矩形波。 此单元电路包括内部振荡方式时钟电路、电且开关复位电路,具体电路如图2所示: 第 6 页 共 16 页 图2 单片机最小系统 3.2 最小键盘接口电路 小键盘如图3所示。它包括8个键,分别为K0-K8,具体功能已在前面介绍过。小键盘中引出的8根线依次分别接单片机的P1端口。 图3 按键电路 3.3 液晶显示电路 通过液晶1602显示输出方波的频率和占空比,其电路及功能表如图4、图5所示: 图4 液晶屏电路 图5 1602液晶屏引脚功能表 第 7 页 共 16 页 4 系统的软件设计 方波发生器的软件设计包括主程序、延时了程序、液晶初始化程序、频率显示子程序、占空比的显示子程序、键盘扫描程序、定时器中断子程序。其中主程序用来控制整个程序的执行,它与各子程序紧密相联,共同实现方波了生器的功能的执行。 4.1 主程序 主程序包括系统初始化(包括定时器的选择,工作方式的选择,定时初值的载入,液晶屏初始化及各参数的初始化)及显示程序,是一个死循环系统。其流程图如图6所示: 开始 系统初始化 键盘扫描 中断服务 显示 图6 系统流程图 4.2 显示子程序 利用分离频率的各位数值,转化为ASCII码方式将各位分别显示到LCD液晶屏上。 4.3 键盘扫描程序 键盘扫描采用的是线反法,逐个进行扫描,当有键按下,执行语句。 4.3.1 频率调节 扫描按键,分别由K1-K6实现频率的加1Hz、减1Hz、加10Hz、减10Hz、 加100Hz、减100Hz,当减到小于0时,频率值定为0。 4.3.2占空比调节 扫描按键,分别由K7、K8实现占空比加5%,减5%,最大占空比为95%,最小占空比为5%。 4.4 定时中断服务程序 实时器设计为100uS,采用中断方式,断电服务函数实现cnt加1。计算出周期所对应的计时个数i,i=10000/pl;以及占空比对应的定时个数j,j=i*zkb/100;当cnt小于j时,输出高电位,当cnt大于j时输出低电位,cnt大于i时赋值为0循环实现方波输出。实现了频率以及占空比的调节。 第 8 页 共 16 页 5 调试与性能分析 5.1 硬件调试 硬件的测试首先是检查电路的逻辑线路是否正确,如果正确再检查原理图的线路连接是否正确,电路的布局安排是否合理等等。硬件问题比较少,主要体现在上拉电阻的使用,滤波电容的使用等,极少发生逻辑上的错误。硬件问题往往是致命的问题,其不易察觉,发现之后电路更改不容易。这就需要我们不断的实验,在实战中吸取经验教训。 5.2 软件调试 软件的测试只要是检查程序的语法是否正确,数据结构安排是否妥当,时序是否正确,整体流程安排是否合理。检查妥当后,就到了系统调试最关键的一步,软硬件的协同调试,问题往往在此才能被发现。软件问题是调试中遇到问题最多的,些系统中出现过的问题有以下几处: 1) 键盘扫描程序不能实现频率数值的加减。 2) 键盘扫描前没有设标志,出现键值读取变化不准确。 3) 定时器的定时不正确及不稳定,反复验证后以方式2最为准确与稳定。 4) 频率与占空比设定不正确,数值计算错误,不能正确输出波形。 5.3 性能及误差分析 该方波发生器能按基本要求实现了按键控制、液晶显示以及方波输出的功能,由于没有涉及到幅度的调节,故没有附加外围放大电路。通过显波器验证,得到了频率及占空比可调的方波,但存在一些误差。 误差出现的原因主要由以下两点:(1)晶振的准确度问题,这是由于器件本身存在的问题,而定时值比较小,因此出现误差;(2)程序执行需要时间,使得定时时间存在微小的误差。 解决办法:通过验证,适当调整定时器的定时值以主周期计数初值,修正存在的误差,使输出方波的频率及占空比与液晶屏显示的结果一致。 6 结论 用单片机进行方波发生器的设计,我不仅加深了对单片机的理论的理解,将理论很好地应用到实际当中去,而且学会了如何去培养我们的创新精神,将自己的想法通过硬件及软件去实现出来,从而不断战胜困难,超越自己。我在这一设计过程中,遇到了很多困难,出现了很多不如意的地方,但我没有气馁,努力钻研,克服了种种困难。 虽然学习过单片机相关的课程,但由于平时上课对单片机知识学习得不够扎实,理解得不够透彻、一知半解,致使在运用时不能贯通,特别是编写程序实现硬件功能部分,导致在设计过程中困难重重,往往无从下手,但是通过向老师、同学请教,最后还是一步步把问题一一解决了。在这次设计过程中,我也对protel99,keil等软件有了更进一步的了解,这使我在以后的学习中更加熟练。 第 9 页 共 16 页 这次的课程设计让我懂得了很多:第一,学习要踏踏实实才能学好,掌握扎实的理论知识;第二,对资料的搜索,整理、总结是一个很重要的能力;第三,要学会向他人学习;第四,要不断实践,提高自己的动手操作能力;第五,要有坚持不懈,努力研究的精神。因此,只有不断提高自己的各方面能力,进入社会才能找到自己的立足之地。 第 10 页 共 16 页 谢 辞 本次课程设计能够得以很好地完成,首先感谢指导老师的指导,在题目的选取以及设计框架上给予了大量建议和帮助。在此向袁老师表示感谢。 课课程设计的顺利完成,也离不开其它各位老师、同学和朋友的关心和帮助。在整个的课程设计过程中,各位老师、同学和朋友积极的帮助我查资料,并提出了很好的建议和意见,在他们的帮助下,电路的设计以及报告得以不断的完善,最终完成了课程设计。 另外,要感谢所有传授我知识的老师,是你们的教导使我有了良好的专业课知识,这也是课程设计得以完成的基础。 同时还要感谢二院科协提供了各种设备。 第 11 页 共 16 页 参考文献 [1]李群芳等.单片微型计算机与接口技术(第3版)[M].北京电子工业出版社,2008. [2]周坚.单片机轻松入门(第2版)[M]. 北京:北京航空航天大学出版社,2007. [3]李群芳,肖看.单片机原理接口与应用[M].北京:清华大学出版社,2005. [4]马忠梅等.单片机C语言应用程序设计[M].北京:北京航空航天大学出版社,1997. [5]高峰.单片微机应用系统设计及实用技术[M].北京:工业出版社,2004. 第 12 页 共 16 页 附 录 附录一:原理图 附录二:PCB图 第 13 页 共 16 页 附录三:程序 } #include } #include BOOL lcd_bz() typedef unsigned char BYTE; { // 测试LCD忙碌状态 typedef unsigned int WORD; BOOL result; typedef bit BOOL ; rs = 0; sbit rs = P3^0; rw = 1; sbit rw = P3^1; ep = 1; _nop_(); sbit ep = P3^2; sbit Out= P3^3; _nop_(); sbit K1 = P1^0; _nop_(); sbit K2 = P1^1; _nop_(); sbit K3 = P1^2; result = (BOOL)(P2 & 0x80); sbit K4 = P1^3; ep = 0; sbit K5 = P1^4; return result; sbit K6 = P1^5; } sbit K7 = P1^6; lcd_wcmd(BYTE cmd) sbit K8 = P1^7; { // 写入指令数据到long int i,j,cnt,pl,zkb; LCD BYTE code dis1[] = {"P L:"}; while(lcd_bz()); BYTE code dis2[] = {"Hz"}; rs = 0; BYTE code dis3[] = {"ZKB:"}; rw = 0; BYTE code dis4[] = {"%"}; ep = 0; void key(void); _nop_(); delay(BYTE ms) _nop_(); { // 延时子程序 P2 = cmd; BYTE i; _nop_(); while(ms--) _nop_(); { for(i = 0; i< 250; i++) _nop_(); { _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); } _nop_(); 第 14 页 共 16 页 _nop_(); LCD的显示内容 ep = 0; delay(1); } } lcd_pos(BYTE pos) void showpl(WORD pinglv) //频率{ //设定显示位置 显示程序 lcd_wcmd(pos | 0x80); {BYTE i; } WORD a,b,c,d,e; lcd_wdat(BYTE dat) e=0x30+(pinglv/10000)%10; { //写入字符显示数据 d=0x30+(pinglv/1000)%10; 到LCD c=0x30+(pinglv/100)%10; while(lcd_bz()); b=0x30+(pinglv/10)%10; rs = 1; a=0x30+(pinglv%10); rw = 0; lcd_pos(0); ep = 0; i = 0; P2 = dat; while(dis1[i] != '\0') _nop_(); { _nop_(); lcd_wdat(dis1[i]); _nop_(); i++; _nop_(); } ep = 1; lcd_pos(5); _nop_(); lcd_wdat(e); _nop_(); lcd_pos(6); _nop_(); lcd_wdat(d); _nop_(); lcd_pos(7); ep = 0; lcd_wdat(c); } lcd_pos(8); lcd_init() lcd_wdat(b); { //LCD初始化设定 lcd_pos(9); lcd_wcmd(0x38); // lcd_wdat(a); delay(1); lcd_pos(10); lcd_wcmd(0x0c); // i = 0; delay(1); while(dis2[i] != '\0') lcd_wcmd(0x06); // { lcd_wdat(dis2[i]); delay(1); i++; lcd_wcmd(0x01); //清除 } 第 15 页 共 16 页 } TMOD=0x02;//定时器0工作方式二 { void showzkb(WORD zkb) //占 TH0=0xA5; //高速定时为空比显示程序 256-166=90uS {BYTE i; TL0=0xA5; WORD a,b; PT0=1; //置主定时器最高优先级, b=0x30+(zkb/10)%10; 减少对定时的影响 a=0x30+(zkb%10); EA = 1; //开总中断 lcd_pos(0x40); ET0 = 1; //开T0中断 i = 0; TR0 = 1; //启动T0定时器 while(dis3[i] != '\0') pl=100; //设定频率初值 { lcd_wdat(dis3[i]); zkb=50; //设定占空比初值 i++; cnt=0; } lcd_init(); // 初始化LCD lcd_pos(0x48); while(1) lcd_wdat(b); { lcd_pos(0x49); showpl(pl); //显示频率 lcd_wdat(a); showzkb(zkb); //显示占空比 lcd_pos(0x4a); key(); i = 0; i=10000/pl; //周期计数值 while(dis4[i] != '\0') j=i*zkb/100; //占空比计数值 { lcd_wdat(dis4[i]); } i++; } } void key(){ } if(K1==0)//K1键按下频率加1 void timer0() interrupt 1 using 1// { while(K1==0); 定时器T0中断服务程序 pl++; { cnt++; } if(cnt>=i) else if(K2==0&&pl>=1) //K2 cnt=0; 键按下频率减1 if(cnt5) //K8频率加100 { while(K5==0); 键按下占空比减5% pl+=100; {while(K8==0); } zkb-=5; else if(K6==0) //K6键按下 } 频率减100 } 附录四:元件清单 单片机AT89S51 1块 单片机底座 1个 LCD1602液晶屏 1块 12M晶振 1个 30pF电容 2片 10uF电解电容 1个 10K可变电阻器 1个 10k电阻 1个 1k排阻 1个 按键 9个 双口插座 2个 排针 1排 排针插座 1排 连接线 4根 第 2 页 共 16 页 第 3 页 共 16 页
/
本文档为【方波发生器设计(课程设计报告)16页】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索