基于单片机方波发生器课程研究设计报告.docx

上传人:b****1 文档编号:13597709 上传时间:2023-06-15 格式:DOCX 页数:17 大小:345.30KB
下载 相关 举报
基于单片机方波发生器课程研究设计报告.docx_第1页
第1页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第2页
第2页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第3页
第3页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第4页
第4页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第5页
第5页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第6页
第6页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第7页
第7页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第8页
第8页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第9页
第9页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第10页
第10页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第11页
第11页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第12页
第12页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第13页
第13页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第14页
第14页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第15页
第15页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第16页
第16页 / 共17页
基于单片机方波发生器课程研究设计报告.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机方波发生器课程研究设计报告.docx

《基于单片机方波发生器课程研究设计报告.docx》由会员分享,可在线阅读,更多相关《基于单片机方波发生器课程研究设计报告.docx(17页珍藏版)》请在冰点文库上搜索。

基于单片机方波发生器课程研究设计报告.docx

基于单片机方波发生器课程研究设计报告

单片机课程设计

 

题目____________________

姓名____________________

学院____________________

专业____________________

学号____________________

指导教师____________________

成绩____________________

 

二〇一二年五月二十二日制

摘要

本课程设计设计的是一种AT89C51单片机构成的波形发生器,可产生方波、三角波、正弦波、锯齿波等多种波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。

文章给出了源代码,通过仿真测试,其性能指标达到了设计要求。

关键词:

单片机;DAC;信号发生器

 

目录

第一章系统功能要求:

2

1.1、设计内容2

1.2设计原理2

第二章方波发生器设计方案论证3

2.1方案的设计与选择3

第三章系统的硬件电路的设计4

3.1系统硬件原理4

3.2芯片端口资源分配表4

第四章软件设计5

4.1主程序5

4.2系统初始化子程序5

4.3键盘中断子程序5

4.4定时器中断子程序6

第五章、系统调试7

第六章、结果分析9

参考文献10

附件111

附录2基于单片机方波发生器的器件清单16

第一章系统功能要求:

用单片机产生频率可调的方波信号。

输出方波的频率范围为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个

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2