1、单片机课程设计论文频率计目录1 设计目的及要求 22 方案比较与论证 23总体系统设计 33.1.系统结构框图 43.2 单片机模块 43.2.1晶振模块 43.2.2复位模块 43.2.3电源模块 53.3数码管显示模块 53.4程序设计模块 64系统的组装 64.1 PCB板图 64.2 面板图及部件说明 65系统调试 65.1 硬件电路的测试方法 65.2 软件的测试方法 66设计心得体会 7参考文献 7附录 8附录1 总原理图 8附录2 测试仪器 91设计目的及要求本次课程设计目的是为了加深对单片机内部寄存器的理解,熟练掌握定时计数器的使用,熟练使用数码管显示数字,并学会制作PCB板。
2、要求:(1)控制模块选用AT89S51单片机,完成51单片机最小应用系统的设计;(2)测频范围:50HZ50KHZ;(3)完成数码管驱动电路的设计,数码管显示测得信号频率值。2方案比较与论证方案一:定时法 此法将定时计数器构成为定时器,频率计则使用定时方法测量待测信号的周期。定时计数器在判断待测信号的下降沿到来后,启动定时器,以单片机工作周期为单位进行计数,直至信号的下一个下跳沿到来,定时器停止,停止计数。16位定时计数器的最高计数值为65 535,当待测信号的频率较低时,定时计数器将发生溢出。产生溢出时,程序进入定时器中断服务程序,对溢出次数进行计数。此时待测信号的周期由3个部分组成:定时计
3、数器溢出次数、定时计数器的高8位和低8位。信号的频率f与信号的周期T之间的关系为:f1T完成信号的周期测量后,需要做一次倒数运算才能获得信号的频率。再将信号频率值变换成本频率计的显示格式,送到显示模块显示待测信号的频率值。完成显示后,频率计都开始下一次信号的频率测量。方案二:计数法此法将定时计数器构成为计数器。计数法是在一定时间内将被测信号加到计数器进行计数的方法,如果设定的时间为T,计数器得到的计数值为N1,则被测频率为f=N1/T。改变时间T,则可改变测量频率范围。如图2-1所示。 图2-1而在定时T期间,计数器的精确计数值N与测量值N1之间存在一定的误差,通过分析,信号频率越高,误差越小
4、;而信号频率越低,则测量误差越大。因此测频法适合用于对高频信号的测量,频率越高,测量精度也越高。 由于要求测量频率范围为50HZ50KHZ,因此选用方案二,可以较好的达到效果。将单片机内部定时计数器T0设置为定时器并定时1s,将单片机内部定时计数器T1设置为计数器,以机器周期(1us)为基准(12M晶振),由软件产生计数定时时间1 s,将计数值显示出来即为待测信号的频率。3总体系统设计3.1.系统结构框图 控制单元AT89S51数码管显示 外部信号数码管驱动3.2 单片机模块3.2.1晶振模块晶振为单片机提供时钟信号,CPU总是按照一定的时钟节拍与时序工作,可以通过提高时钟频率来提高CPU的工
5、作速度,此系统使用12M晶振。电容C1、C2的取值范围为15pF-45pF之间,他们能起到起振和微调震荡频率的作用。3.2.2复位模块CPU在启动运行时都需要复位,使CPU和其他部件都置为一个特定的初始状态。而AT89S51单片机可以有上电复位和手动复位,此设计可同时实现两种复位方式。此单片机需要一个正脉冲(宽度2个机器周期)才能是单片机复位,由于振荡器频率为12M,则复位的电容的典型值为1uF。3.2.3电源模块此单片机的供电电压为5V,通过ISP下载线供电,亦可通过直流5V供电。此次设计在电源处加入一个滤波电容和一个电解电容,可以是电源电压更加稳定,从而使单片机更加稳定的工作。3.3数码管
6、显示模块数码管动态显示原理:将位选信号送至12、9、8、6;段选信号送至11 、7、2、1 、10、 5 、3。段码虽同时到达 4个LED,但一次仅一个LED被选中。利用“视觉暂留”,每送一个字符并选中相应位线,延时一会儿,再送/选下一个循环扫描即可。3.4程序设计模块开 始 计数器1 清零 启动定时计数器 计数器0赋初值进中断 定时 1s 读出计数器1显示值 结束4系统的组装4.1 PCB板图主要是运用了Protel软件进行原理图,pcb图的绘制,完成以后进过一系列的加工制作形成完整的PCB板。在元件的焊接过程之中,注意元件的方向性和焊接的可靠性。4.2 面板图及部件说明 虽然制作了PCB图
7、,但这是分模块设计的,因此需要用排线把各个部分连接起来,制作硬件时一定要把各部分接口在电路板上标注出来,特别是电路中有许多个接口时更应该标注一下(如电源正负极,I/O口等),标注以后方便电路检查及插线,从而大大的节约了时间,同时也使电路清楚明了。此设计使用了5位共阳数码管显示频率的大小。5系统调试5.1 硬件电路的测试方法 对于电子电路的调试方法,首先是分模块调试,把各个模块都调试好了以后,将各模块连接起来进行联调,在调试过程中一定要仔细,还要有足够的耐心。5.2 软件的测试方法 本次课设需要用到keil c51编写软件、progisp下载软件。学会keil c51及progisp的使用,软件
8、调试和硬件调试有很多共同之处。首先写一段程序测试数码管,并测试数码管的编码表,其次设置定时计数器,用示波器调试定时时间(此处需要定时50ms进一次中断,需中断20次,完成1s定时,而程序中通过进一次中断输出电平取反用来测试,此时输出占空比为50%频率为10HZ的方波,同时此信号也可以做为输入信号接入计数器用做测试信号)。6设计心得体会 在这次课程设计中,先把每个模块设计出来,要考虑到设计的每个细节及要求,一步一步地修改,完成pcb图的设计。接下来是焊接电路,调试电路,调试软件实现功能,这里需要仔细加耐心才能完成。同时,在整个过程之中学会了提出问题、分析问题、解决问题的方法,会对以后的学习带来极
9、大的帮助。回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在整整两个星期的时间里,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。参考文献1康光华等,电子技术基础(模拟
10、部分)M,高等教育出版社,6年1月第5版2张友德、赵志英、凃时亮,单片微型机原理、运用与实践,复旦大学出版社,6年10月第5版附录附录1 总原理图单片机模块数码管模块附录2 测试仪器1. 5V电源2. 万用表3. 信号发生器 附录3 实物图片 附录4 程序设计及代码 #includeunsigned int counter,count;unsigned char code duanma=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /0,1,2,3,4,5,6,7,8,9,.void delay(unsigned int i);void
11、display(unsigned char wan,unsigned char qian,unsigned char bai,unsigned char shi,unsigned char ge);sbit fre=P11;void main() unsigned char wan,qian,bai,shi,ge; TMOD=0x51; / 0101 0001 T1:负脉冲计数 工作方式1 /T0:定时工作方式1 TH0=0x3C; /3CB0H=15536 TL0=0xB0; /M=12MHZ;1机器周期=1us (65536-15536) /*1us=50ms 定时50ms*20=1s T
12、H1=0x00; TL1=0X00; / EA=1; ET0=1; TR0=1; ET1=1; TR1=1; fre=1; while(1) wan=count/10000; qian=count/1000%10; bai=count/100%10; shi=count/10%10; ge=count%10; display(wan,qian,bai,shi,ge); void timer()interrupt 1 fre=fre; counter+; if(counter=20) count=TH1*256+TL1; TH0=0x3C; TL0=0xB0;void display(unsig
13、ned char wan,unsigned char qian,unsigned char bai,unsigned char shi,unsigned char ge) P2=0x01; P0=duanmage; delay(300); P2=0x02; P0=duanmashi; delay(300); P2=0x04; P0=duanmabai; delay(500); P2=0x08; P0=duanmaqian; delay(500); P2=0x10; P0=duanmawan; delay(500);void delay(unsigned int i) unsigned int a; for(a=i;a0;a-);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1