单片机频率发生器设计_第1页
单片机频率发生器设计_第2页
单片机频率发生器设计_第3页
单片机频率发生器设计_第4页
单片机频率发生器设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、2011级单片机课程设计 单片机课程设计报告书课题名称频率发生器设计姓 名王涛学 号 20117288院、系、部电气工程系专 业电气工程及其自动化指导教师牛晓燕2014年 6月25日频率发生器设计一、设计目的单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统。它的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。通过学习和掌握单片机中常用接口电路的应用

2、和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。二、设计要求利用核心元件为89C52单片机的开发板制作频率发生器,具体要求:1通过按键输入设定频率(默认占空比1:1)并显示2通过按键输入设定占空比并显示3输出此频率4要求做出实物。(本机地址为08H,当接到上位机发的08H时,则回发08H;当接到上位机发的AAH时,则将设定发给上位机;当收到上位机发的55H时,则修改设定频率)三、硬件电路设计3.1 系

3、统结构框图 频率发生器主要由单片机,键盘,8段数码管,电源以及复位电路六部分组成。系统结构框图如图3-1所示。图3-1 系统结构框图3.2 单片机STC89C52介绍 STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。STC89C52管脚图如图3-2所示,具体介绍如下: 图3-2 STC89C52引脚图 主电源引脚(2根) VCC(Pin40):电源输入,接5V电源 GND(Pin20):接地线 外接晶振引脚(2根) XTAL1(Pin

4、19):片内振荡电路的输入端 XTAL2(Pin20):片内振荡电路的输出端 控制引脚(4根) RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。 ALE/PROG(Pin30):地址锁存允许信号 PSEN(Pin29):外部存储器读选通信号 EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读 指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根) STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。P3口为准双向口。可以字节访问,也可以位访问。P

5、3.0-RXD,串行输入口。P3.1-TXD,串行输出口。P3.2-INT0,外部中断0的请求。P3.3-INT1,外部中断1的请求。P3.4-T0,定时器/计数器0外部计数脉冲。P3.5-T1,定时器/计数器,1外部计数脉冲。P3.6-WR,外部数据存储器写选通。P3.7-RD,外部数据存储器读选通。3.3 按键扫描电路这里使用的是独立式键盘,各键通断是相互独立的,每个按键都通过一根输入线输入到单片机,但每个按键工作状态不会影响其他输入线上的工作状态。因此通过检测输入线的电平状态就可以很容易地判断按键是否按下。行列式键盘的接法比独立式键盘的接法复杂,编程实现上也会比较复杂。独立式键盘电路配置

6、灵活,软件结构简单,在占用相同的I/O端口的情况下,行列式键盘的接法会比独立式接法允许的按键数量多,本设计只需三个按键,数量少,为简单起见故采用独立式接法键盘。独立式键盘的接口方法,查询方式的独立式键盘工作电路如图3-3所示。按键直接与单片机89C52的I/O接口线相接,通过读I/O口判定各I/O口线的电平状态,即可识别出按下的键。图3-4 键盘扫描电路3.4 数码管显示电路动态扫描显示接口是单片机系统中应用最为广泛的一种显示方式。LED数码动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,使得字段上显示字形码。这种方式数码管的发光效率,而且由于各个数码管的字段线是并联使

7、用的,从而大大简化了硬件线路。其接口电路是把所有显示器的8个笔画段A-DP同名端并联在一起,而每个显示器的公共极COM各自独立地接受I/O线控制,CPU向字段输出口送出字段形码是,所有显示器由于同名端并连接收到相同的字形码,但究竟是哪个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。而所谓动态扫描是指采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。 再轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位显示器并非同时点亮,但只要扫描的速度足够快,给人的影响就是

8、一组稳定的显示数据,不会有闪烁感。图3-3 数码管显示电路3.5 电源电路为解决单片机电能,实验板电源部分电路如图3-5所示。图3-5 电源电路3.6 通讯口 为实现PC机与单片机之间的串行通信,实验板通讯部分电路见图3-6,通讯接口采用标准的232接口电平,采用MAX232芯片作为电平转换器。图3-6 通讯口电路3.7 系统电路原理图 系统电路原理图如图3-7所示图3-7 系统电路原理图四、软件设计4.1主程序本次频率发生器的软件设计包括主程序模块、延时子程序模块、系统初始化程序模块、显示子程序模块、按键扫描程序模块、定时器中断子程序模块等子程序模块组成。主程序是整个系统软件的运行主体,各个

9、子系统的软件程序都必须经过它的调度,才能运行得当。根据设计的功能要求,主程序用来控制整个程序的执行,完成了对系统的初始化,而且它与各子程序紧密相联,共同实现频率发生器各种功能的执行。 主程序流程图如图4-1: 图4-1 主程序流程图4.2 中断子程序图4-2 外部中断子程序图 五、程序设计上位机程序如下:#include<reg51.h>#define uchar unsigned charsbit zk=P00;sbit output=P01;uchar i=8,j;void delay1ms(uchar n) /延时n ms uchar j; while(n-) for(j=0

10、;j<122;j+) ; void aabb() interrupt 0 EX0=0; j=0xaa; for(i=9;i>0;i-) if(j&0x80) output=1; else output=0; zk=0;delay1ms(1); zk=1; j=j<<1; EX0=1;void bbaa() interrupt 2 EX1=0; j=0xbb; for(i=9;i>0;i-) if(j&0x80) output=1; else output=0; zk=0;delay1ms(1); zk=1; j=j<<1; EX1=1;

11、void main() IT0=1; /选择INT1为下降沿触发方式 IT1=1; EX1=1; EA=1; EX0=1; while(1);下位机程序如下:#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit OutPut=P17; /矩形波输出口sbit input=P10;float fosc=12000000; /系统时钟频率float length=65536; /方式1计数长度uchar flag,i=8,kz; /状态键标志u

12、char ZKB; /占空比uint PL,TT=50,TTT=50; /频率uchar TIMER0_L,TIMER0_H,TIMER1_L,TIMER1_H; /T0和T1的定时初值uchar code tabl11=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0; /LED共阴极代码/* 延时子程序*/void delay1ms(uint n) /延时n ms uchar j; while(n-) for(j=0;j<122;j+) ; /* 系统初始化*/void system_init(void ) SCON=0x00;

13、flag=0; PL=20; ZKB=50; TL0=0xb0; /初始频率20Hz定时0.05s TH0=0x3c; TL1=0x58; /初始占空比50定时0.025s TH1=0x9e; TMOD=0x11; /T0和T1为工作方式1的定时模式 IT0=1; /选择INT0为下降沿触发方式 IT1=1; /选择INT1为下降沿触发方式 EX0=1; EX1=1; /外部中断0允许 ET0=1; /定时器1和定时器0中断允许 ET1=1; EA=1; /系统中断允许 TR0=1; /定时器1和定时器0开始定时 TR1=1; TIMER0_L=0xb0; TIMER0_H=0x3c; TIM

14、ER1_L=0x58; TIMER1_H=0x9e;/* 显示子程序*/void display(uint PL,uchar ZKB) uchar b,f,d,e,m,n,k; /分离频率的各位数值 b=PL/10000; PL=PL%10000; f=PL/1000; PL=PL%1000; d=PL/100; PL=PL%100; e=PL/10; k=PL%10; m=ZKB/10; /分离占空比各位数值 n=ZKB%10;if(PL=0)b=f=d=e=k=10;if(ZKB=0)m=n=10; P2=0x01; P0=tablb; delay1ms(2); P2=0x02; P0=t

15、ablf; delay1ms(2); P2=0x04; P0=tabld; delay1ms(2); P2=0x08; P0=table; delay1ms(2); P2=0x10; P0=tablk; delay1ms(2); P2=0x40; P0=tablm; delay1ms(2); P2=0x80; P0=tabln; delay1ms(2);/* 键盘扫描*/void Key_Scan() float TC0,TC1; flag+; if(flag=3) /状态返回,正常工作 flag=0; /清状态标志位TC0=(length-(fosc*(100-ZKB)/(12*100*PL

16、);TC1=(length-(fosc*ZKB)/(12*100*PL); /占空比定时初值TIMER0_H=(uint)TC0/256; /计算T0和T1的初值TIMER0_L=(uint)TC0%256;TIMER1_H=(uint)TC1/256;TIMER1_L=(uint)TC1%256; void Key_Scan1() if(flag=1) PL+=10; /按键频率加5 if(PL>10000) PL=50; display(PL,ZKB); if(flag=2) /状态2下对占空比进行调整 ZKB+=5; /按键占空比加5 if(ZKB>99) ZKB=5; if

17、(flag=3) /状态2下对占空比进行调整 flag=0; display(PL,ZKB); display(PL,ZKB); void ccdd() interrupt 0 EX0=0; kz=kz<<1; i-; if(input) kz=kz|0x01; if(input) kz=kz&0xfe; if(i) if(kz=0xaa) Key_Scan(); if(kz=0xbb) Key_Scan1(); i=8; EX0=1; /* 定时器中断子程序*/void Timer0_PL() interrupt 1 /频率T0中断TR0=0; TR1=1; /启动T1,

18、占空比定时 TL0=TIMER0_L; TH0=TIMER0_H; OutPut=1; /输出高电平void Timer1_PL() interrupt 3 /占空比T1中断TR0=1; TR1=0; /T1停止 TL1=TIMER1_L; TH1=TIMER1_H; OutPut=0; /输出高电平/* 主函数*/void main() uint PL0=0; uchar ZKB0=0; system_init(); /系统初始化 while(1)/死循环,显示频率和占空比 if(flag=0) /状态0时,正常显示频率和占空比 display(PL,ZKB); if(flag=1) /状态1时,频率调整状态,频率闪烁 display(PL0,ZKB); TT-; if(TT=0) TT=50; while(TT-) display(PL,ZKB); TT=50; if(flag=2) /状态2时,占空比调整状态,占空比闪烁 display(PL,ZKB0); TTT-; if(TTT=0) TTT=50; while(TTT-) display(PL,ZKB); T

温馨提示

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

评论

0/150

提交评论