基于单片机的简易低频信号发生器的设计Word文档下载推荐.docx
- 文档编号:21996104
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:18
- 大小:341.48KB
基于单片机的简易低频信号发生器的设计Word文档下载推荐.docx
《基于单片机的简易低频信号发生器的设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的简易低频信号发生器的设计Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
量化电平个数相对于数模转换的分辨率,对于低频低成本的信号发生器,为了简化程序设计,所以直接采用8位DA转换芯片DAC0832,让单片机AT89C51对8位DA芯片进行控制,从而输出波形。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
单尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
CPU、内存、内部和外部总线系统,大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
我们所设计的程序是总结了目前各个智能化设计程序的水位监测系统,采用51控制单片机,集水位采集、存储、显示及远程联网于一体的设计,使得仪器仪表数字化、智能化、微型化。
同时采用AT89系列单片机,AT89系列单片机是ATEML公司的8位Flash单片机。
AT89系列单片的核心是8031,在软件和硬件方面与MCS-51系列完全兼容,AT89系列的指令与有关定义和MCS一51完全相同,MCS—51系列单片机应用系统编写的程序可以直接使用。
AT89系列的引脚排列、定义与MCS-51完全一致,可以直接替换。
由于内部有FlashROM,所以编写的程序烧录很方便,易于电擦除,可以反复使用,非常方便用户对程序进行修改,缩短研制周期,降低了研制成本。
在单片机部有Flash存贮器,功耗特别低,FlashROM的容量从TA89C1051的1K到AT89S55的20K,有许多品种,选择余地大。
2.3系统工作流程图
图2.3.1系统工作流程图
在C编译时,通过在主程序内设置中断初始化、调用按键子程序、档位频率键、波形种类选择键的设置,在辅助程序中编译好各个子程序使得程序可以通顺流程的进行
2.4独立按键流程图
编译按键子程序时,要求开始后系统默认设置波形种类选择档位为1,设置频率档位为5,通过标志位来判断走向,如果标志位不为0则直接结束,如果标志位为0,则按键松开后看a的取值来选择波形种类,如果a>
3,则认为a=1,如果不大于则结束。
图2.4.1独立按键流程图
2.5中断服务程序流程图
图2.5.1中断服务程序流程图
程序开始后根据Case语句给定时器赋初值,判定a的取值,如果a=1则输出正弦波形,如果a=2则输出三角波形,如果a=3则输出方波波形,待波形输出后看中断服务计数i的取值如果i++;
if(i>
255)i=0,则程序结束。
第3章各硬件单元电路的设计
3.1AT89C51单元电路的设计
单片机的设计利用P1、P2口共同控制数码管的一系列显示,P1口为段码输出,P2.0、P2.3作为位码输出,P0口作为输出,输出到D/A转换器的输入,P3.2、P3.3、P3.4分别作为波形种类选择按键的输入,波形频率档位加的输入,波形频率档位减的输入,P3.6口连接到D/A转换器的WR口。
图3.1.1AT89C51单元设计电路图
3.2按键的单元电路设计
三个不同的按键一端连在单片机P3口,另一端接地使得电路连通,在按键与单片机间还需增加三个上拉电阻来避免出现悬空的可能性。
图3.2.1AT89C51单元设计电路图
3.3DAC0832芯片的单元电路设计
本单元的设计主要是把单片机的数字输出转换成模拟输出,把单片机的八位输出送到D/A转换器的D10到D17作为转换器的输入,从单片机P3.6口输出的信号送到D\A寄存器选通输入WR。
因为D\A转换器的输出是电流,所以要加一个运算放大器把电流转换成电压。
图3.3.1DAC0832单元设计电路
第4章系统仿真
由于本次课程设计条件的限制,只做了软件(protues)仿真。
按照设计的电路连接好,电路接好后,按照预先设定好的调试步骤,逐步对电路进行系统调试,调试结果做如下:
4.1方波
当数码管上第四位及波形种类显示位显示为3时,示波器中显示为方波,此时频率的大小受频率档位选择键的控制。
图4.1.1方波仿真图
4.2正弦波
当数码管上第四位及波形种类显示位显示为1时,示波器中显示为正弦波,此时频率的大小受频率档位选择键的控制。
图4.2.2正弦波仿真图
4.3三角波
当数码管上第四位及波形种类显示位显示为2时,示波器中显示为三角波,此时频率的大小受频率档位选择键的控制。
4.3.1三角波仿真图
结束语
这次单片机课程设计我们历时两个星期,但经过这两个星期的实践和体验下来,我对单片机越来越感兴趣了,之前对我来说学到的仅是那些理论知识,通过这次设计的具体应用,我发现了它的强大之处。
这次课程设计感触最深的是团队和合作。
在这我要谢过那些帮我的老师和同学。
现在想来,学校安排的课程设计确实有着它深层的意义,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能。
通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。
这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。
单片机课程设计结束了,但通过设计我所学到的东西却将长久的存在。
相信这次设计带给我们的严谨的学习态度和一丝不苟的科学作风将会给我们未来的工作和学习打下一个更坚实的基础。
最后真诚的感谢李晓秀的老师的教育与指导,感谢周定双与陈顺舟同学在整个过程中对我的帮助!
参考文献
【1】教材《单片微型计算机技术》刘国荣编机械工业出版社
【2】《单片微型计算机原理、应用及接口技术》张迎新编国防工业出版社
【3】单片机实用系统设计技术》房小翠编国防工业出版社
【4】《单片机应用系统设计》何立民编北航出版社
【5】《单片机原理及接口技术曹琳琳编国防科技大学出版社
附录A建议信号发生器设计控制电路及仿真
附录B源程序清单
#include<
reg51.h>
absacc.h>
#defineP0XBYTE[0xdf00]//P0琐存地址
unsignedcharcodeseg[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//显示数组
unsignedcharcodesig_sin[256]={
0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,
0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,
0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,
0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,
0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe3,0xe1,0xde,0xdc,
0xda,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,
0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,
0x80,0x7d,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,
0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,
0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x14,0x12,0x10,0xf,0xd,0xc,0xb,0x9,
0x8,0x7,0x6,0x5,0x4,0x3,0x3,0x2,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x1,0x1,0x2,0x3,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xa,0xc,0xd,0xe,0x10,0x12,0x13,
0x15,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x23,0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,
0x38,0x3b,0x3d,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,
0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c
};
unsignedchara;
//全局信号信号选择变量
unsignedintb;
//全局信号档位变量送显示
unsignedintpinlv;
//档位变量送定时器赋初值
unsignedinti=0;
//中断服务计数
sbitbutten_swtich=P3^2;
//按键1波形选择
sbitbutten_up=P3^3;
//按键2频率+
sbitbutten_down=P3^4;
//按键3频率-
voiddelay1ms(unsignedcharii)//延时基时1毫秒子程序
{
unsignedcharjj;
for(;
ii>
0;
ii--)
for(jj=0;
jj<
125;
jj++);
}
voidInit_Timer1(void)//定时器0初始化
{
EA=1;
//开总中断
ET1=1;
//定时器T1中断允许
TMOD=0x10;
//TMOD=0001000B,使用定时器T1的模式1
TH1=(65536-500)/256;
//定时器T1的高8位赋初值
TL1=(65536-500)%256;
TR1=1;
//启动定时器T1
voidbutten_scan1()//按键处理子程序
if(butten_swtich==0)//信号按键选择
{
delay1ms(20);
//消抖延时
if(butten_swtich==0)
{
while(!
butten_swtich);
//等待按键松开
a++;
if(a>
3)a=1;
//循环选择
}
}
voidbutten_scan2()
if(butten_up==0)//信号按键选择
if(butten_up==0)
{
while(!
butten_up);
b=b+1;
if(b>
9)b=9;
//再按加就不再加了
elseif(butten_down==0)//信号按键选择
delay1ms(10);
if(butten_down==0)
butten_down);
b=b-1;
if(b<
1)b=1;
//再按减就不再减了
}
main()
{a=1;
b=5;
Init_Timer1();
while
(1)
butten_scan1();
//调用按键处理子程序
butten_scan2();
P2=0x1;
P1=seg[a];
//信号输出送显示1三角波2正弦波3方波
P2=0x8;
P1=seg[b];
//档位显示0~9默认第5档
voidOS_Timer1(void)interrupt3//系统OS定时中断服务
switch(b)//根据不同的档位给定时器赋不同的初值
case1:
pinlv=0xf2;
break;
case2:
pinlv=0xf3;
case3:
pinlv=0xf4;
case4:
pinlv=0xf5;
case5:
pinlv=0xf6;
case6:
pinlv=0xf7;
case7:
pinlv=0xf8;
case8:
pinlv=0xf9;
case9:
pinlv=0xfa;
TH1=pinlv;
//定时器赋初值
TL1=0xff;
if(a==1)P0=sig_sin[i];
//P0口给正弦波信号数组
elseif(a==2){if(i<
128)P0=2*i;
elseP0=254-2*i;
}//P0口给三角波信号数组
elseif(a==3){if(i>
128)P0=0xff;
elseP0=0;
}//方波
i++;
255)i=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 简易 低频 信号发生器 设计