基于单片机方波发生器课程设计报告.docx
- 文档编号:9855190
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:15
- 大小:331.33KB
基于单片机方波发生器课程设计报告.docx
《基于单片机方波发生器课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于单片机方波发生器课程设计报告.docx(15页珍藏版)》请在冰豆网上搜索。
基于单片机方波发生器课程设计报告
河池科技大学
单片机课程设计
题目____________________
姓名____________________
学院____________________
专业____________________
学号____________________
指导教师____________________
成绩____________________
二〇一二年五月二十二日制
摘要
本课程设计设计的是一种AT89C51单片机构成的波形发生器,可产生方波、三角波、正弦波、锯齿波等多种波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。
文章给出了源代码,通过仿真测试,其性能指标达到了设计要求。
关键词:
单片机;DAC;信号发生器
第一章系统功能要求:
用单片机产生频率可调的方波信号。
输出方波的频率范围为1Hz-200Hz,频率误差比小于0.5%。
要求用4个按钮改变方波给定频率,按钮每按下一次,给定频率改变一次。
用示波器观察方波波形。
1.1、设计内容
本课程设计是设计一个方波发生器,用4个按钮控制方波的频率以及占空比。
1.2设计原理
AT89C51单片机具有组成微型计算机的各部分部件:
CPU、RAM、I/O定时器/计数器以及串行通讯接口等。
只要将AT89C51的ROM,接口电路,再配置键盘及其接口,显示器及其接口,数模转换及波形输出,指示灯及其接口等四部分,即可构成所需波形发生器。
其信号发生器构成原理框图如图1所示。
图1–方波信号发生器设计原理框图
在信号发生器中,只用到片内中断请求,即是在AT89C51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着输出下一个信号波形,如此循环。
当有按键按下时,产生外部中断请求信号,CPU暂停当前工作,处理中断请求,重新装入定时初值,开始定时。
第二章方波发生器设计方案论证
在电子技术领域中,实现方波发生器的方法有很多种,可以采用不同的原理及器件构成不同的电路,但可以实现相同的功能。
2.1方案的设计与选择
实现方波发生器的方法很多,但主要有三个方案:
采用单片函数发生器8038,采用锁
相式频率合成器,采用单片机编程。
方案
优点
缺点
单片函数发生器8038
简单易行,可实现数控,调整频率
信号频率稳定度不高
锁相式频率合成器
性能良好
难以达到输出频率覆盖系数
单片机编程
信号精度较高
需求软硬件结合
通过对比,决定采用单片机编程的方法来实现。
该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改编程序来实现频率的变换。
此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做得很高。
本设计用到一个AT89C51微处理器,4个按键,一个四与门。
AT89C51用到两个定时器,定时器0和定时器1。
其中定时器0工作在定时方式1下,决定方波频率;定时器1工作在定时方式1下,用来设定占空比。
按键1与2控制方波信号频率。
按下按键1或2时,进行频率的调节,占空比不变。
1键按下时,频率增加100Hz,若2键按下时,频率增加10Hz。
频率最大值为500Hz,当频率大于最大值时,重新赋值为50Hz。
另外两个按键控制方波信号占空比。
当按键3和4按下时,进行占空比调节,频率不变。
3键按下时,占空比进行增加10%,4键按下时,占空比增加1%。
占空比最大值为100%,当占空比大于100%时,重新赋值为0%。
第三章系统的硬件电路的设计
3.1系统硬件原理
系统硬件原理图如图2。
本次设计中,采用内部时钟方式。
AT89C51单片机的P1.0、P1.1、P1.2、P1.3口分别连接四个按键,对输出方波的频率、占空比进行控制。
P2.0口作为方波输出口,可以通过示波器来观察波形。
四个键盘口连接一个四与门,与INT0口连接,将键盘中断请求信号送入CPU。
图2–系统硬件原理图
3.2芯片端口资源分配表
表274LS21芯片端口资源分配表
芯片端口
作用说明
1
连接按键1,判断按键1是否按下
2
连接按键2,判断按键2是否按下
3
连接按键3,判断按键3是否按下
4
连接按键4,判断按键4是否按下
5
发送键盘中断请求信号
表3AT89C51芯片端口资源分配表
芯片端口
作用说明
P1.0
连接按键1,控制输出方波频率
P1.1
连接按键2,控制输出方波频率
P1.2
连接按键3,控制输出方波占空比
P1.3
连接按键4,控制输出方波占空比
P2.0
输出方波波形
P3.2
接收键盘中断请求信号
第四章软件设计
方波发生器的软件设计包括主程序、延时子程序、系统初始化程序、键盘中断子程序、定时器中断子程序。
4.1主程序
主程序包括系统初始化,和一个死循环系统。
当有中断请求信号产生时,跳出循环,执行中断程序。
流程图如图3所示。
图3–主程序流程图
4.2系统初始化子程序
在此程序中,给所有变量赋初值:
键盘扫描口、初始频率与占空比及定时、开中断、定时器0与定时器1的工作方式等。
初始化时启动了定时器0和定时器1.其中初始频率为50Hz,占空比为50%。
键盘中断处理子程序流程图如图4所示
4.3键盘中断子程序
键盘用外中断0实现。
当有键按下时,产生低电平送入INT0口,形成中断请求信号,CUP转去执行键盘中断子程序,进行频率调节或占空比调节。
(1)频率调节按下按键1或2时,进行频率的调节,占空比不变。
1键按下时,频率增加100Hz,若2键按下时,频率增加10Hz。
频率最大值为500Hz,当频率大于最大值时,重新赋值为50Hz。
(2)占空比调节当按键3和4按下时,进行占空比调节,频率不变。
3键按下时,占空比进行增加10%,4键按下时,占空比增加1%。
占空比最大值为99%,当占空比大于99%时,重新赋值为1%。
N
Y
N
Y
图4–键盘中断处理子程序流程图
4.4定时器中断子程序
定时器中断子程序中有定时器0与定时器1中断,频率定时器0中断流程图与占空比定时器1流程图分别如图5、图6所示。
①定时器0中断执行的操作有:
复位,启动自身进行频率定时,同时启动定时器1,进行占空比定时,输出高电平。
②定时器1中断,停止自身的计时,输出低电平。
第五章、系统调试
在本次课程设计中,使用Proteus软件进行仿真调试。
调试内容主要为软硬件的协同,观察波形输出结果是否能够与设计方案所设计的那样达到要求。
调试结果如下:
1)在Proteus软件中运行仿真,示波器窗口中出现方波波形,显然波形频率与占空比分别为50Hz和50%,符合程序初始化的结果。
图7–Proteus仿真–初始状态
2)分别按下按键1、2调节方波频率。
可以看到方波波形频率不断增加,一快一慢,而占空比依然为50%未变。
图8–Proteus仿真–调节方波频率
3)重新在初始状态下进行仿真。
分别按下按键3、4调节方波占空比,可以看到方波波形的占空比发生变化,而频率未变。
图9–Proteus仿真–调节方波占空比
第六章、结果分析
在本次设计中,方波信号发生器的频率和占空比都独立可调。
输出方波信号的占空比围为0%—100%,调节精度为1%;频率范围为50Hz—500Hz,调节精度为10Hz。
频率和占空比之间的调节彼此独立。
进行频率调节时,每次可以增加100Hz或10Hz,超过500Hz输出为50Hz的方波;进行占空比调节时,每次可增加1%或10%,超出100%时输出占空为0%方波。
总体看来,设计成果达到了设计要求。
输出方波的波形稳定,调节也较为简单。
参考文献
[1]皮大能.南光群.刘金华.单片机课程设计指导书.北京理工大学出版社,2010.7.
[2]李光飞.楼然苗.胡佳文.谢象佐.单片机课程设计实例指导.北京航空航天大学出版社,2004.9.
[3]求是科技.单片机典型模块设计实例导航.人民邮局出版社.2004.5.
[4]童诗白.模拟电路技术基础[M].北京:
高等教育出版社,2000.5.
[5]方大千.鲍俏伟.实用电子控制电路.国防工业出版社,2003.4.
[6]李朝青.单片机原理及接口技术.北京航空航天大学出版社.2011.6
附件1
基于单片机方波发生器的程序清单:
#include
#defineucharunsignedchar
#defineuintunsignedint
floatfosc=12000000;//系统时钟频率
sbitKEY1=P1^0;//控制频率百位;
sbitKEY2=P1^1;//控制频率十位;
sbitKEY3=P1^2;//控制占空比十位;
sbitKEY4=P1^3;//控制占空比个位;
sbitOUTPUT=P2^0;//方波输出端口;
ucharzkb;
uintfreq;
ucharTIMER0_L,TIMER0_H,TIMER1_L,TIMER1_H;//定
/****************************
延时子程序
****************************/
voiddelay(ucharn)//延时
{
uchari;
while(n--)
{for(i=255;i>0;i--)
{}
}}
/*******************
系统初始化
*******************/
voidchushihua(void)
{
P1=0x0f;
freq=50;
zkb=50;
TIMER0_L=0xe0;
TIMER0_H=0xb1;
TIMER1_L=0xf0;
TIMER1_H=0xd8;
TL0=0xe0;//初始频率50Hz定时20ms
TH0=0xb1;
TL1=0xf0;//初始占空比50%定时10ms
TH1=0xd8;
TMOD=0x11;//定时器1和定时器0工作在方式1
IT0=1;//选择INT0为下降沿触发方式
EX0=1;//外部中断0允许
ET0=1;//定时器1和定时器0中断允许
ET1=1;
EA=1;//系统中断允许
TR0=1;//定时器1和定时器0开始定时
TR1=1;
}
/*********************
主函数
*********************/
voidmain(void)
{
chushihua();//系统初始化
while
(1)
{}
}
/************************
定时器中断子程序
************************/
voidTimer0_freq()interrupt1//频率定时器0中断
{
TR1=1;//启动定时器1,占空比定时
TL0=TIMER0_L;
TH0=TIMER0_H;
OUTPUT=1;//输出高电平
}
voidTimer1_zkb()interrupt3//占空比定时器1中断
{
TR1=0;//定时器1停止
TL1=TIMER1_L;
TH1=TIMER1_H;
OUTPUT=0;//输出低电平
}
/***********************
键盘扫描子程序
***********************/
voidkeyscan()interrupt0using1//外部中断0
{floatTF0,TZ1;
EX0=0;//关中断
delay(10);//延时消抖
if(P1!
=0x0f)//判断是否有键按下
{
if(KEY1==0)freq+=100;//按键为1号,频率加100
if(KEY2==0)freq+=10;//按键为2号,频率加10
if(freq>500)freq=50;//频率大于500Hz,重新赋值为5
if(KEY3==0)zkb+=10;//按键为3号,占空比加10
if(KEY4==0)zkb++;//按键为4号,占空比加1
if(zkb>100)zkb=1;//占空比大于100,重新赋值为
TF0=(65536-fosc/(12.0*freq));//频率定时初值
TZ1=(65536-(fosc*zkb)/(12.0*100*freq));//占空比定时
TIMER0_H=(uint)TF0/256;
TIMER0_L=(uint)TF0%256;
TIMER1_H=(uint)TZ1/256;
TIMER1_L=(uint)TZ1%256;
}
P1=0x0f;//给键盘扫描口赋初值
EX0=1;//开中断
TR0=1;//定时器1和定时器0开始定时
TR1=1;}
附录2基于单片机方波发生器的器件清单
1.9*15万能板..............................................1个
2.40P锁紧座...............................................1个
3.40P晶振座子.............................................1个
4.自锁开关................................................1个
5.按键....................................................5个
6.25V10uf电解电容.........................................5个
7.30pf瓷片电容............................................5个
8.3mmLED灯................................................15个
9.40P单排排针.............................................5个
10.40P单排排座............................................5个
11.10K9脚排阻.............................................5个
12.方头USB-B母...........................................2个
13.10k电阻................................................4个
14.AT89C52................................................1个
15.74LS21.................................................1个
16.1uf电容...............................................1个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 方波 发生器 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)