版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中国地质大学武汉电路综合实习报告 课程题目:基于单片机D/A转换设计函数信号发生器摘要:以51单片机为核心设计函数信号发生器,采用程序设计方法产生正弦波,方波,三角波,方波,锯齿波,波形的频率在一定频率范围内可任意改变。通过键盘来控制四种波形的类型选择与频率变化,并通过液晶屏1602显示其各自的类型及数值。主要包括信号发生部分、D/A转换部分以及液晶显示部分。关键词:D/A转换,液晶显示 主要内容:1.实习原理2.实习内容1) 系统设计l 设计要求l 方案设计(各模块设计)l 软件设计流程2) 通过示波器对波形种类及频率进行测试l 测试说明l 测试过程l 测试结果3.实习的心得体会4.附录:源
2、程序1.实习原理:l 系统总体框图l 主控芯片AT89S52l DAC0832的内部结构:l D/A转换原理图DAC0832是双列直插式8位D/A转换器。能完成数字量输入到模拟量(电流)输出的转换。其主要参数如下:分辨率为8位,转换时间为1s,满量程误差为1LSB,参考电压为-10V+10V,供电电源为+5V+15V,逻辑电平输入与TTL兼容。DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号 /XFER。l 液晶屏的显示l 矩阵键盘2.实习内容:1)系统设计利用AT89S52单片机采用程序设计方法产
3、生锯齿波、正弦波、方波、三角波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。l 设计要求1)基于单片机的D/A转换用软件编程产生四种波形,分别为:锯齿波,正弦波,方波,三角波;2)通过键盘选择四种波形类型;3)波形频率可调;l 方案设计论证显示方案论证 :方案一:采用LED数码管。LED数码管由8个发光二极管组成,每只数码管轮流显示各自的字符。由于人眼具有视觉暂留特性,当每只数码管显示的时间间隔小于1/16s时人眼感觉不到闪动,看到的是每只数码管常亮。使用数码管显
4、示编程较易,但要显示内容多,而且数码管不能显示字母。方案二:采用LCD液晶显示器1602。其功率小,效果明显,显示编程容易控制,可以显示字母。以上两种方案综合考虑,选择方案二。键盘方案论证:方案一:矩阵式键盘。矩阵式键盘的按键触点接于由行、列母线构成的矩阵电路的交叉处。当键盘上没有键闭合时,所有的行和列线都断开,行线都呈高电平。当某一个键闭合时,该键所对应的行线和列线被短路。方案二:编码式键盘。编码式键盘的按键触点接于74LS148芯片。当键盘上没有闭合时,所有键都断开,当某一键闭合时,该键对应的编码由74LS148输出。以上两种方案综合考虑,选择方案一。l 软件设计流程开始 初始化 N有键按
5、下 YKey=BKey=AKey=CKey=9Key=8Key=7减频率增频率锯齿波正弦波方波三角波2) 通过示波器对波形种类及频率进行测试l 测试说明:正弦波、矩形波、三角波和方波信号的输出,通过对独立键盘来实现其不同波形的输出以及改变其频率。l 测试过程:当程序下进去时经过初始化,液晶屏的上只显示“Starting,XinHaoFaSheng”,然后显示“Clear All,Nothing Happened”,当键盘4按下时开始显示频率,当键盘7按下时,此时输出波形为三角波,当键盘8按下时,此时输出波形为方波,当键盘9按下时,此时输出波形为正弦波,当键盘C按下时,此时输出波形为锯齿波。每按
6、一次键盘4,再按键盘A,波形频率增加,每按一次键盘4,再按键盘B,波形频率减小。l 测试结果各种波形:输出波形为三角波输出波形为方波时输出为正弦波时输出为锯齿波时存在问题:得到的波形纹波比较明显,波形相当不稳定,而且有时候出现了失真解决方法:修改程序中波形的幅值,使幅值减小,最后纹波变小,波形也比较稳定。至于出现失真这个问题,经过检查,发现连接线路有所松动,处理完后,波形正常。3.实习心得体会 通过这次实习,我学习了函数发生器设计的原理,用keil软件编程及调试,protues软件仿真,示波器的使用,加深了我对单片机的理解,也让我了解到专业知识的重要性。在实习过程中也碰到了很多困难,比如说对于
7、写程序可以说是掌握得不是很好,用c语言写程序会出现很多错误;在用protues软件仿真时,由于第一次接触,所以一开始都不知道何从下手;在用示波器测试时纹波太大,而且波形不稳定等等,最后通过一些书籍,百度查看相关资料,询问同学,再修改程序,解决了困难。 这次实习是对我们过去所学知识的系统提高和扩充的过程,很好的锻炼了我们解决问题的能力,同时也让我们了解到自己的不足,从而不断完善自己。4.附录源程序:#includeregX51.h#include intrins.h#include #include1602.h#includeDAC0832.h#include #define uchar uns
8、igned char #define uint unsigned int uchar Key,keytemp,flag=20,i;uchar freq,baiwei,shiwei,gewei;uint code pinlv=400,227,214,200,190,178,170,160,153,147,140,134,130,125,121,117,112,108,105,101, 99,96,92,90,88,86,83,81,80,78,76,74,72,70,78,76,74,72;uchar code value16= /矩阵键盘中每个键对应的P0口值 0x0e7,0x0d7,0x0b
9、7,0x077, 0x0eb,0x0db,0x0bb,0x07b, 0x0ed,0x0dd,0x0bd,0x07d, 0x0ee,0x0de,0x0be,0x07e ;uchar code table= 0x30, /0在1602中的十六进制码 0x31, /1在1602中的十六进制码 0x32, /2在1602中的十六进制码 0x33, /3在1602中的十六进制码 0x34, /4在1602中的十六进制码 0x35, /5在1602中的十六进制码 0x36, /6在1602中的十六进制码 0x37, /7在1602中的十六进制码 0x38, /8在1602中的十六进制码 0x39, /9在
10、1602中的十六进制码 0x41, /A在1602中的十六进制码 0x42, /B在1602中的十六进制码0x43, /C在1602中的十六进制码 0x44, /D在1602中的十六进制码 0x45, /E在1602中的十六进制码 0x46 /F在1602中的十六进制码 ;uchar code sanjiaobo128=0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c,0x20,0x24,0x28,0x2c,0x30,0x34,0x38,0x3c,0x40,0x44,0x48,0x4c,0x50,0x54,0x58,0x5c,0x60,0x64,0x68,0x6c
11、,0x70,0x74,0x78,0x7c,0x80,0x84,0x88,0x8c,0x90,0x94,0x98,0x9c,0xa0,0xa4,0xa8,0xac,0xb0,0xb4,0xb8,0xbc,0xc0,0xc4,0xc8,0xcc,0xd0,0xd4,0xd8,0xdc,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xfe,0xfa,0xf6,0xf2,0xee,0xea,0xe6,0xe2,0xde,0xda,0xd6,0xd2,0xce,0xca,0xc6,0xc2,0xbe,0xba,0xb6,0xb2,0xae,0xaa,0xa6,0xa2
12、,0x9e,0x9a,0x96,0x92,0x8e,0x8a,0x86,0x82,0x7e,0x7a,0x76,0x72,0x6e,0x6a,0x66,0x62,0x5e,0x5a,0x56,0x52,0x4e,0x4a,0x46,0x42,0x3e,0x3a,0x36,0x32,0x2e,0x2a,0x26,0x22,0x1e,0x1a,0x16,0x12,0x0e,0x0a,0x06,0x02,;uchar code fangbo256=0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00
13、,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
14、,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,;uchar code zhengxianbo128=0x80,0
15、x86,0x8c,0x92,0x98,0x9f,0xa5,0xab, 0xb0,0xb6,0xbc,0xc1, 0xc7,0xcc,0xd1,0xd5, 0xDA,0xde,0xe2,0xe6,0xea,0xed,0xf0,0xf3,0xf6,0xf8,0xfa,0xfc,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfc,0xfa,0xf8,0xf6,0xf3,0xf0,0xed,0xea,0xe6,0xe3,0xde, 0xDA,0xd6,0xd1,0xcc,0xc7,0xc1,0xbc,0xb6,0xb1,0xab,0xa5,0x9f,0x
16、99,0x92,0x8c,0x86,0x80,0x79,0x73,0x6d, 0x67,0x61,0x5b,0x55, 0x4f,0x49,0x43,0x3e, 0x39,0x33,0x2e,0x2a,0x25,0x21,0x1d,0x19,0x15,0x12,0x0f,0x0c,0x09,0x07,0x05,0x03,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x01, 0x02,0x03,0x05,0x07,0x09,0x0c,0x0e,0x12,0x15,0x18,0x1c,0x20, 0x25,0x29,0x2e,0x33, 0x38,0x3d,0x43,0
17、x48,0x4e,0x54,0x5a,0x60,0x66,0x6c,0x73,0x79,;uchar code jc128=0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x40,0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5
18、e,0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e,0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xac,0xae,0xb0,0xb2,0xb4,0xb6,0xb8,0xba,0xbc,0xbe,0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,0xd0,0xd2,0xd4,0xd
19、6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe;void ScanKey();void Dly_mS(unsigned int ms)/延时函数 unsigned int i; while(ms-) for(i=0;i75;i+);void IniSys() Dly_mS(200); EA=0; TCON = 0x00; /*中断标志清0*/ IT1=0; /*中断1边缘触发*/ EX1=0; /*中断1暂时关闭*/ ET0=0; /*定时
20、器0中断关闭*/ TMOD = 0x01; /*定时器0方式1*/ TH0=0x0FC; TL0=0x18;/定时1ms EA=1; /*开中断*/ ET0=1; /*开定时器0中断*/void CT0Server() interrupt 1 /定时器中每1MS扫描一次键盘 TH0=(65536-1000)/256; TL0=(65536-1000)%256;/定时10ms TR0=1; keytemp=Key; ScanKey();void delay_nus( uchar n ) while( -n ) ; void ScanKey() uchar P0Buf,scan,j; P0=0x0
21、f; P0Buf=P0; if(P0Buf!=0x0f) P0=0xf0; scan=P0Buf; P0Buf=P0; scan=scan+P0Buf; for(j=0;j16;j+) if(valuej=scan) Key=j; break; void function0() Display(0,0,Clear All ); Display(0,1,Nothing Happened); DAC0832=0x00;void function4() for(i=0;i128;i+) /循环送255个三角波数据 DAC0832=sanjiaoboi; delay_nus(freq); void function5() for(i=0;i128;i+) /循环送255个方波数据 DAC0832=fangboi; delay_nus(freq); void function6() for(i=0;i128;i+) /循环送255个正弦波数据 DAC0832=zhengxianboi; delay_nus(freq); void function
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省龙岩市一级校联盟2024-2025学年高二上学期11月期中联考数学试题 含解析
- 写刘慈欣的英语作文
- 红餐:云南米线发展报告2024
- 文书模板-清理旱厕服务合同
- 2024年04版小学三年级英语第五单元期中试卷
- 药理习题库(含答案)
- 信息不对称对企业的影响分析-职场实操
- 2024年电力控制设备项目投资申请报告代可行性研究报告
- 2024年户外广告行业项目资金申请报告代可行性研究报告
- 2024年空间环境监测系统项目投资申请报告代可行性研究报告
- 沥青路面结构图设计课件
- 水的净化(上课用) 完整版PPT
- 初中数学人教七年级上册(2023年更新) 一元一次方程合并同类项解一元一次方程教案
- 腰椎间盘突出症的护理 培训
- 血液透析中心各项制度
- 听觉理解能力评估记录表
- 食品企业生产部门年终总结报告精编ppt
- DBJ50∕T-338-2019 轻质隔墙条板应用技术标准
- 通用版:温湿度记录表
- 《计算机视觉》教学大纲
- 中级汉语练习题(一)
评论
0/150
提交评论