版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 四川信息职业技术学院毕业设计说明书(论文)目录摘要1第1章 绪论31.1 单片机的简介31.2 单片机的应用领域31.3 单片机的发展趋势3第2章 系统硬件电路框图设计42.1 简易数字频率计的功能描述42.2 硬件电路设计框架42.3 主要芯片介绍52.3.1 74HC161的介绍52.3.2 74HC153的介绍52.4 系统硬件单元电路设计及论证62.4.1 晶振电路62.4.2 复位电路62.4.2 放大整形电路7第3章 系统软件设计83.1 软件整体设计框图83.2 子程序设计框图93.2.1 显示程序93.2.2 频率测量程序9第4章 系统调试104.1 软件调试104.2 硬件
2、调试10第5章 毕业设计总结11参考文献12附录A 电路原理图13附录B 整体总程序1423第M页摘要单片机是单片微型计算机的简称,也就是把微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。本次课程设计的题目是:“简易数字频率计设计”以单片机89C51 为核心设计了一种频率计。在设计中应用单片机的
3、数学运算和控制功能,实现了测量量程的自动切换,既满足测量精度的要求,又满足系统反应时间的要求。关键字:单片机 频率测量 数据处理全套设计加扣 3346389411或3012250582第1章 绪论1.1 单片机的简介单片机是单片微型计算机的简称,也就是把微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的
4、任务。由此来看,单片机是可单独地完成现代工业控制所要求的智能化控制系统,这是单片机最大的特征。1.2 单片机的应用领域目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:(1).在智能仪器仪表上的应用(2).在工业控制中的应用(3).在家用电器中的应用(4).在计算机网络和通信领域中的应用(5).单片机在医用设备领域中的应用1.3 单片机的发展趋势现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,
5、数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:(1).低功耗CMOS化(2).微型单片化(3).主流与多品种共存第2章 系统硬件电路框图设计2.1 简易数字频率计的功能描述本次毕业设计主要完成功能有:(1)长按设置键可选择测量频率或者周期。(2)短按则是选择设置闸门时间(0.05s10s)。(3)输入信号幅度:0-5v,测量频率范围:0.1Hz4MHz。2.2 硬件电路设计框架根据设计要求,数字频率计硬件电路框图设计如图2-1所示:单片机波形整形分频电路波形变换放大器代
6、测信号LCD显示电路图2-1 整机硬件设计框图2.3 主要芯片介绍2.3.1 74HC161的介绍74HC161与74ls161功能兼容,是常用的四位二进制可预置的同步加法计数器,他可以灵活的运用在各种数字电路,以及单片机系统中实现分频器等很多重要的功能.其管脚图如图2-2所示:图中P0P3为时钟CP和四个数据输入端,/MR为清零,CEP、CET为使能端,PE为置数端,Q0Q3为数据输出端,以及TC为进位输出端。当清零端CR=“0”,计数器输出Q3、Q2、Q1、Q0立即为全“0”,这个时候为异步复位功能。当CR=“1”且LD=“0”时,在CP信号上升沿作用后,74LS161输出端Q3、Q2、Q
7、1、Q0的状态分别与并行数据输入端D3,D2,D1,D0的状态一样,为同步置数功能。而只有当CR=LD=EP=ET=“1”、CP脉冲上升沿作用后,计数器加1。74LS161还有一个进位输出端CO,其逻辑关系是CO= Q0Q1Q2Q3CET。合理应用计数器的清零功能和置数功能,一片74LS161可以组成16进制以下的任意进制分频器。2.3.2 74HC153的介绍74HC153是一个双4选1数据选择器,其管脚图如图2-3所示:图2-3 74HC153管脚图下面的表是各个端口的工作条件:极限值推荐工作条件电源电压Vcc.-0.5+7.0V电源电压Vcc.2V6V输入电压V1.-1.5V+Vcc+1
8、.5V输入电压V1.0VCC输出电压VO.-0.5VVcc+0.5V输出电压VO.0VCC输入电流I1(每端).20mA工作环境温度TA54HC153 .-55+125输出电流IO(每端). 25mA74HC153 -40+85电源电流Icc(Vcc或GND 端) 50mA输入脉冲上升,下降时间Tr ,TfVcc=2.0V. 1000ns功率耗散PD*.500mWVcc =4.5V. 500ns储存温度范围TS.-65+150Vcc =6.0V.400ns焊接温度(10秒)TLT L.3002.4 系统硬件单元电路设计及论证2.4.1 晶振电路C1XTLA1XTLA2C2单片机工作所需要的时钟
9、信号有两种产生方式,即内部时钟方式和外部时钟方式。图是内部时钟方式,改图中电容C1和C2取33PF,晶体的振荡频率取12MHz,晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。其实际连接如图2-4所示:图2-4 晶振电路2.4.2 复位电路复位电路如图-5所示。当单片机一上电,立即复位。电容C和电阻实现上电自动复位。复位也是使单片机推出低功耗工作方式而进入正常状态的一种操作。图2-5 复位电路2.4.2 放大整形电路该放大电路主要是为了对输入信号进行放大,波形整形等功能,其原理图设计如图2-6所示:图2-6 放大整形电路第3章 系统软件设计3.1 软件整体设计框图本次程序设计采用的
10、是C语言程序设计,其设计框图3-1所示:图3-1 系统软件设计框图3.2 子程序设计框图3.2.1 显示程序向LCD写入命令或数据设置显示模式设置输入模式初始化LCD显示程序内部等待函数该子程序的总体架构图如3-2所示:图3-2 显示子程序总体架构图内部等待函数,等待有无信号?向LCD写入数据设置显示模式设置输入模式初始化LCD其程序的运行流程为:YN3.2.2 频率测量程序延时子程序减按键、加按键89c52初始化显示闸门时间计数中断判断频率 定时中断频率显示周期显示测试频率测试频率程序频率测量程序的整体架构如图3-3所示:图3-3 频率测试程序总体框架图第4章 系统调试单片机硬件和软件调试的
11、工具分别为:protues 和Keil C51调试软件。4.1 软件调试单片机软件调试主要是调试本次课程设计的主程序。其调试过程如下:(1)新建一个工程。单击Project菜单,在弹出的下拉菜单中选New Project。(2)然后选择你要保存的路径,输入工程文件的名字,保存。(3)新建一个工程后弹出一个对话框,根据你的需要选择你使用的单片机型号。然后点击确定。(4)单击“File”,选择“New”,新建文件并在其中输入程序代码,然后保存为c语言文件。(5)回到编辑界面后,单击“Target 1”前面的“+”号,然后在“Source Group 1”单击右键选择“Add File To Gro
12、up Source Group 1”,选中Test.c文件。(6)单击“Project”菜单,选中“Built Target”,完成程序的编译,在工程文件夹中找到*.hex文件即可。4.2 硬件调试单片机硬件调试是检测在设计电路时,电路中存在的一些缺陷,故硬件调试是必不可少的,其步骤大致如下:(1)打开软件Protues,将设计好的单片机硬件电路打开。(2)在确定电路已经连接完成后,双击AT89C51单片机加入*.hex文件。(3)单击软件最左下方的Play按钮。若无异常,当按下某一按键时,能完成以下功能时,则表示设计调试通过。(a)长按设置键可选择测量频率或者周期。(b)短按则是选择设置闸门
13、时间(0.05s10s)。第5章 毕业设计总结大学三年就会在这最后的毕业设计总结划上一个圆满的句号。我曾经以为时间是一个不快不慢的东西,但现在我感到时间过的是多么的飞快,三年了,感觉就在一眨眼之间结束了我的大学生涯。最能把理论知识运用到实践当中的过程就数毕业设计了。在整个毕业设计的过程中每一步都是自己亲自做过的,遇到的问题也非常多,在经过遇到问题,思索问题到解决问题的过程中,收获是最多的。以往没有注意到的问题,都在这一次的毕业设计中得以体现,这培养了我的细心,耐心和专心。我觉得能够在这次的毕业设计中学到很多的东西,以往不注意的细节,在这一次中是必须让自己去注意的。也是我这三年来所学到知识的一个
14、体现。我深深知道,每一次的学习实践环节都是那么的来之不易,都是通过老师的深思熟虑后,才给我们定下目标。然后让我们在知识的海洋里翱翔,让我们随着年龄的增长不断的扩充自己的知识领域,也逐渐成熟,逐渐长大,老师同时也教导我们逐渐成为一个能够为身边的人,为家庭,为国家做出点点贡献的人,教导我们学会感恩。所以,我在这次的毕业设计中,认真对待每一个过程,希望自己的认真,自己最后的毕业设计的成果能够回报老师这么多年来的教导,这么多年的奉献。最后,由于理论方面所学有限,理解又不好,再加之动手能力的匮乏,在这次毕业设计中难免会有错误,还望老师批评指正。参考文献1林志琦.单片机原理接口及应用.北京:中国水利水电出
15、版社,20072胡辉.单片机原理与应用.北京:中国水利水电出版社,20073赵文博.单片机语言C51程序设计.北京:人民邮电出版社,20054谭浩强.c程序设计.北京:清华大学出版社,1991附录1 电路原理图附录2 整体总程序#include #include #include #include float f; /频率float p; /周期float sj; /闸门时间char idata buff20;char flag=0; /频率周期选择标志位char xs=0;/设置闸门时间结束后是否显示结果的标志位unsigned char m=0,n=0,yichu=0,fenpin;/m定
16、时中断次数 n计数中断次数 yichu判断是定时器还是计数器溢出#define Key_Set P1#define K1 0xbf#define K2 0x7f#define NO_Set 0xff#define Freq 0#define Peri 1sbit B153=P24;sbit A153=P23;sbit P17=P17;sbit P16=P16;sbit P35=P35;sbit Set=P32;unsigned char LCD_Wait(void);void LCD_Write(bit style, unsigned char input);void LCD_SetDispl
17、ay(unsigned char DisplayMode);void LCD_SetInput(unsigned char InputMode);void LCD_Initial();void GotoXY(unsigned char x, unsigned char y);void Print(unsigned char *str);void C52_Initial();void Delay(unsigned int t);void display(float f);void cepin();void panduan();void timedisplay(float sj);void Tim
18、e_Set1();void Time_Set2();void t0();void t1();sbit LcdRs= P20;sbit LcdRw= P21;sbit LcdEn= P22;sfr DBPort= 0x80;/P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口unsigned char LCD_Wait(void)LcdRs=0; /寄存器选择输入端 1:数据 0:指令LcdRw=1;_nop_(); /RW:为0:写状态;为1:读状态;LcdEn=1;_nop_();/使能输入端,读状态,高电平有效;写状态,下降沿有效LcdEn=0;return DBPo
19、rt;#define LCD_COMMAND 0 / Command#define LCD_DATA 1 / Data#define LCD_CLEAR_SCREEN0x01 / 清屏#define LCD_HOMING 0x02 / 光标返回原点void LCD_Write(bit style, unsigned char input)LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();/注意顺序LcdEn=1;_nop_();/注意顺序LcdEn=0;_nop_();LCD_Wait();#define LCD_SHOW0x04
20、 /显示开#define LCD_HIDE0x00 /显示关 #define LCD_CURSOR0x02 /显示光标#define LCD_NO_CURSOR0x00 /无光标 #define LCD_FLASH0x01 /光标闪动#define LCD_NO_FLASH0x00 /光标不闪动void LCD_SetDisplay(unsigned char DisplayMode)LCD_Write(LCD_COMMAND, 0x08|DisplayMode);#define LCD_AC_UP 0x02#define LCD_AC_DOWN0x00 / default#define LC
21、D_MOVE 0x01 / 画面可平移#define LCD_NO_MOVE0x00 /defaultvoid LCD_SetInput(unsigned char InputMode)LCD_Write(LCD_COMMAND, 0x04|InputMode);void LCD_Initial()LcdEn=0;LCD_Write(LCD_COMMAND,0x38); /8位数据端口,2行显示,5*7点阵LCD_Write(LCD_COMMAND,0x38);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); /开启显示, 无光标LCD_Write(LCD_COM
22、MAND,LCD_CLEAR_SCREEN); /清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); /AC递增, 画面不动void GotoXY(unsigned char x, unsigned char y)if(y=0) LCD_Write(LCD_COMMAND,0x80|x);if(y=1) LCD_Write(LCD_COMMAND,0x80|(x-0x40);void Print(unsigned char *str)while(*str!=0)LCD_Write(LCD_DATA,*str);str+;void C52_Initial() sj=10
23、00000.00; Key_Set=0xff; TMOD=0x51; / 01010001 T1为计数器,T0为定时器 EA=1; ET0=1; ET1=1; EX0=1; PX0=1; /外部中断0设置为高优先级 IT0=0;/电平触发方式void Delay(unsigned int t) /t随着数值越大,误差趋于平衡.unsigned char i; while(t-) for(i=0;i999400.00) if(f1040.00) sprintf(buff, Freq:%4.2fkHz ,(f/1000.00); else if(f0.06) sprintf(buff, Freq:
24、%3.2fHz ,f); GotoXY(0,1); Print(buff);void Pdisplay(float p) if(p999400.00) if(p9950.00) sprintf(buff, Cycle:%4.2fms ,(p/1000.00); else if(p0.248) sprintf(buff, Cycle:%3.3fus ,p);else sprintf(buff,error(Time or F),p); GotoXY(0,1); Print(buff); void cepin()unsigned char a;unsigned long js;m=0;n=0;TMO
25、D=0x51;TH0=0x3c; /定时50msTL0=0xb0;TH1=0;TL1=0;a=sj/50000.00;TCON=0x50; /启动定时器和计数器while(m!=a); TCON=0;js=TH1*256+n*65536+TL1;f=(js/(sj/1000000.00)*fenpin;p=sj/(js*fenpin);if(xs=0) /设置结束后第一次不显示结果if(flag=Freq) Fdisplay(f);else Pdisplay(p);void panduan()xs=0; /设置结束后第二次循环显示结果B153=1; /选择16分频A153=0; yichu=0
26、;TMOD=0x51; TH0=0xff; /定时器0 200usTL0=0x38;TH1=0xff; /计数器1 100脉冲TL1=0x9c;TR0=1; /启动定时器0和计数器1TR1=1;while(yichu=0); /如果没有溢出一直循环TR0=0; /已经溢出关闭定时器0和计数器1TR1=0; if(yichu=1)/计数器先溢出:在200ms内测得的脉冲过多,说明频率较高 fenpin=16; /转为测16分频后的频率 16 cepin();else/定时器先溢出:100个脉冲的时间比较短,即频率较低,可以减少分频数 yichu=0;B153=0;A153=1; TH0=0xfc
27、; /定时器0 1ms TL0=0x18; TH1=0xff; /计数器1 100个脉冲 TL1=0x9c; TR0=1; /启动定时器0和计数器1 TR1=1; while(yichu=0); /如果没溢出一直循环 TR0=0; /已经溢出关闭定时器0和计数器1 TR1=0;if(yichu=1) /计数器先溢出:在1ms内测得的脉冲过多,说明频率较高fenpin=4; /转为测4分频后的频率 4 cepin(); else /定时器先溢出:100个脉冲的时间比较短,即频率较低 fenpin=1; B153=0; A153=0; cepin(); void timedisplay(float
28、 GTime)sprintf(buff,GTime=%7.0fus ,GTime);GotoXY(0,1);Print(buff);Delay(50); void Time_Set2()Delay(1000);if(P17=1) sj=sj-50000.00; if(sj50000.00) timedisplay(sj); else sj=50000.00; timedisplay(sj); else while(P17=0) Delay(500); sj=sj-500000.00; if(sj50000.00) timedisplay(sj); else sj=50000.00; timedisplay(sj); void Time_Set1()Delay(1000);if(P16=1) sj=sj+50000.00; if(sj10000000.00) timedisplay(sj); else sj=10000000.00; timedisplay(sj); else while(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甲壳多糖提炼工操作水平竞赛考核试卷含答案
- 音圈绕制工班组考核评优考核试卷含答案
- 淡水鱼类繁育工安全知识竞赛知识考核试卷含答案
- 石雕工岗前安全生产基础知识考核试卷含答案
- 考古探掘工安全专项考核试卷含答案
- 626 QZCY9手动气动阻车器
- 《某品牌水果发展的PEST分析案例》
- 5.3 社会历史的主体 课件-高中政治统编版必修四哲学与文化
- 室内卡丁车竞技免责协议书
- 2026年北京市海淀区初三下学期一模化学试卷和答案
- 2026山东菏泽生物医药职业学院招聘工作人员120人农业考试参考题库及答案解析
- 2026年音乐教资考前冲刺测试卷附参考答案详解【达标题】
- 2026年北京理工大学博士英语真题及答案
- 3.4 我们来造“环形山”课件(内嵌视频) 2025-2026学年教科版科学三年级下册
- 广东省茂名电白区七校联考2026届中考一模数学试题含解析
- 直播基地规划建设方案报告
- (新疆二模)新疆2026年普通高考三月适应性检测文科综合试卷(含答案)
- 喷漆房安全管理制度
- 《无人机导航定位技术》全套教学课件
- 山东中烟工业有限责任公司招聘笔试题库2026
- 基因型知识点讲解课件
评论
0/150
提交评论