




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实习报告模板实习报告模板 1 1 单片机原理课程设计DAC输出控制学院核工程与地球物理学院姓名余 鑫文学号xx0120215班级测控班专业测控技术与仪器指导教师周 伟xx年1月15日DAC输出控制第1章系统设计方案1 0实验要求控制直 流电压输出可变波形输出 脉冲波 三角波 正弦波 频率 幅度 可调1 1设计思路采用4 4矩阵键盘线反转法输出电压值在LCD1602上 显示 采用单片机和DAC0832数模转换器生成波形 由于是软件滤波 所以 不会有寄生的高次谐波分量 生成的波形比较纯净 1 2方案比较与选择方案一采用函数信号发生器ICL8038集成模拟芯 片 它是一种可以同时产生方波 三角波 正弦波的专用集成电路 但是这种模块产生的波形都不是纯净的波形 会寄生一些高次谐波 分量 采用其他的措施虽可滤除一些 但不能完全滤除掉 方案二采用分立元件实现非稳态的多谐振振荡器 然后根据需要加 入积分电路等构成正弦 矩形 三角等波形发生器 这种信号发生器输出频率范围窄 而且电路参数设定较繁琐 其频 率大小的测量往往需要通过硬件电路的切换来实现 操作不方便 方案三采用单片机和DAC0832数模转换器生成波形 由于是软件滤波 所以不会有寄生的高次谐波分量 生成的波形比较纯净 它的特点是价格低 性能高 在低频范围内稳定性好 操作方便 体积小 耗电少 经比较 方案三既可满足课程设计的基本要求又能充分发挥其优势 电路简单 易控制 性价比较高 所以采用该方案 第2章系统硬件设计2 1单片机晶振电路对于MCS 51一般的晶振可以在1 2MHZ 12MHZ之间选择 这是电容C可以对应的选择10pf 30Pf 对于本设计的电容C用30pF 晶振选用12MHZ 晶振电路解法图 一条引脚接在XTAL1 另一条接在XTAL2 电路图如图所示2 2单片机复位电路复位是单片机的初始化工作 复 位后中央处理器CPU和单片机内的其它功能部件都处在一定的初始状 态 并从这个状态开始工作 为了防止程序执行过程中失步或运行紊乱 此处我们采用了上电复 位及手动复位电路 电路图如图所示2 3主控制器电路主控制器电路 由单片机AT89C 51 键盘扫描电路 外围电路 2 4数模转换电路第3章系统软件设计3 1系统整体流程1 初始化子 函数初始化子函数的主要工作是设置定时器的工作模式 初值预置 开中断和打开定时器等 在这里 定时器T1工作于16位定时模式 单片机按定时时间重复的 把波形送到DAC0832的寄存器 2 键扫描子函数键扫描子函数的任务是检查3个键是否有键按下 若有键按下 则执行相应的功能 这里3个键分别用于频率增加 频率减小和正弦波 锯齿波和方波的 选择功能 3 2波形数据产生子函数波形数据产生函数是定时器T1的中断程序 当定时器溢出时 发生一次中断 当发生中断时 单片机按次序将波形数据表中的波形数据一一送到D AC8032 DAC8032根据输入的数据大小输出对应电压 波形数据产生子函数流程图如图所示3 3主函数主函数的任务是进行 上电初始化 并在程序运行中不断查询按键情况执行相应的功能 3 4程序 include reg51 h include define ucharunsigned char define uintunsigned int define keyP1功能标志 1 开中断 中断返回查表指针加1正弦波输出方波 输出锯齿波输出关中断 关定时 重装初值 开定时中断开始 defi ne dataoutP2 sbit Lcd RS P2 3 sbit Lcd RW P2 4 sbit Lcd EN P2 5 uchar codetable uchar codetable1 Uchar codekey16 0 xee 0 xed 0 xeb 0 xe7 0 xde 0 xdd 0 xdb 0 xd7 0 xbe 0 xbd 0 xbb 0 xb7 0 x7e 0 x7d 0 x7b 0 x77 uchar key number 正弦波数据表 uchar codesin tab 256 0 x80 0 x83 0 x85 0 x88 0 x8A 0 x8D 0 x8F 0 x92 0 x94 0 x97 0 x99 0 x9B 0 x9E 0 xA0 0 xA3 0 xA5 0 xA7 0 xAA 0 xAC 0 xAE 0 xB1 0 xB3 0 xB5 0 xB7 0 xB9 0 xBB 0 xBD 0 xBF 0 xC1 0 xC3 0 xC5 0 xC7 0 xC9 0 xCB 0 xCC 0 xCE 0 xD0 0 xD1 0 xD3 0 xD4 0 xD6 0 xD7 0 xD8 0 xD A 0 xDB 0 xDC 0 xDD 0 xDE 0 xDF 0 xE0 0 xE1 0 xE2 0 xE3 0 xE3 0 xE4 0 x E4 0 xE5 0 xE5 0 xE6 0 xE6 0 xE7 0 xE7 0 xE7 0 xE7 0 xE7 0 xE7 0 xE7 0 xE7 0 xE6 0 xE6 0 xE5 0 xE5 0 xE4 0 xE4 0 xE3 0 xE3 0 xE2 0 xE1 0 xE0 0 xDF 0 xDE 0 xDD 0 xDC 0 xDB 0 xDA 0 xD8 0 xD7 0 xD6 0 xD4 0 xD3 0 xD1 0 xD0 0 xCE 0 xCC 0 xCB 0 xC9 0 xC7 0 xC5 0 xC3 0 xC1 0 xBF 0 xBD 0 xB B 0 xB9 0 xB7 0 xB5 0 xB3 0 xB1 0 xAE 0 xAC 0 xAA 0 xA7 0 xA5 0 xA3 0 x A0 0 x9E 0 x9B 0 x99 0 x97 0 x94 0 x92 0 x8F 0 x8D 0 x8A 0 x88 0 x85 0 x83 0 x80 0 x7D 0 x7B 0 x78 0 x76 0 x73 0 x71 0 x6E 0 x6C 0 x69 0 x67 0 x65 0 x62 0 x60 0 x5D 0 x5B 0 x59 0 x56 0 x54 0 x52 0 x4F 0 x4D 0 x4B 0 x49 0 x47 0 x45 0 x43 0 x41 0 x3F 0 x3D 0 x3B 0 x39 0 x37 0 x35 0 x3 4 0 x32 0 x30 0 x2F 0X2D 0 x2C 0X2A 0 x29 0 x28 0 x26 0 x25 0 x24 0 x 23 0 x22 0 x21 0 x20 0 x1F 0 x1E 0 x1D 0 x1D 0 x1C 0 x1C 0 x1B 0 x1B 0 x1A 0 x1A 0 x1A 0 x19 0 x19 0 x19 0 x19 0 x19 0 x19 0 x19 0 x19 0 x1A 0 x1A 0 x1A 0 x1B 0 x1B 0 x1C 0 x1C 0 x1D 0 x1D 0 x1E 0 x1F 0 x20 0 x21 0 x22 0 x23 0 x24 0 x25 0 x26 0 x28 0 x29 0X2A 0 x2C 0X2D 0 x2F 0 x3 0 0 x32 0 x34 0 x35 0 x37 0 x39 0 x3B 0 x3D 0 x3F 0 x41 0 x43 0 x45 0 x 47 0 x49 0 x4B 0 x4D 0 x4F 0 x52 0 x54 0 x56 0 x59 0 x5B 0 x5D 0 x60 0 x62 0 x65 0 x67 0 x69 0 x6C 0 x6E 0 x71 0 x73 0 x76 0 x78 0 x7B 0 x7D 三角波数据表 uchar codethr tab 256 0 x80 0 x81 0 x82 0 x83 0 x84 0 x85 0 x86 0 x87 0 x89 0 x89 0 x8A 0 x8B 0 x8C 0 x8D 0 x8E 0 x8F 0 x90 0 x91 0 x92 0 x93 0 x94 0 x95 0 x96 0 x97 0 x98 0 x99 0 x9A 0 x9B 0 x9C 0 x9D 0 x9E 0 x9F 0 xA0 0 xA1 0 xA2 0 xA3 0 xA4 0 xA5 0 xA6 0 xA7 0 xA8 0 xA9 0 xAA 0 xA B 0 xAC 0 xAD 0 xAE 0 xAF 0 xB0 0 xB1 0 xB2 0 xB3 0 xB4 0 xB5 0 xB6 0 x B7 0 xB8 0 xB9 0 xBA 0 xBB 0 xBC 0 xBD 0 xBE 0 xBF 0 xBF 0 xBE 0 xBD 0 xBC 0 xBB 0 xBA 0 xB9 0 xB8 0 xB7 0 xB6 0 xB5 0 xB4 0 xB3 0 xB2 0 xB1 0 xB0 0 xAF 0 xAE 0 xAD 0 xAC 0 xAB 0 xAA 0 xA9 0 xA8 0 xA7 0 xA6 0 xA5 0 xA4 0 xA3 0 xA2 0 xA1 0 xA0 0 x9F 0 x9E 0 x9D 0 x9C 0 x9B 0 x9A 0 x9 9 0 x98 0 x97 0 x96 0 x95 0 x94 0 x93 0 x92 0 x91 0 x90 0 x8F 0 x8E 0 x 8D 0 x8C 0 x8B 0 x8A 0 x89 0 x89 0 x87 0 x86 0 x85 0 x84 0 x83 0 x82 0 x81 0 x80 0 x7F 0 x7E 0 x7D 0 x7C 0 x7B 0 x7A 0 x79 0 x78 0 x77 0 x76 0 x75 0 x74 0 x73 0 x72 0 x71 0 x70 0 x6F 0 x6E 0 x6D 0 x6C 0 x6B 0 x6A 0 x69 0 x68 0 x66 0 x66 0 x65 0 x64 0 x63 0 x62 0 x61 0 x60 0 x5F 0 x5 E 0 x5D 0 x5C 0 x5B 0 x5A 0 x59 0 x58 0 x55 0 x55 0 x55 0 x54 0 x53 0 x 52 0 x51 0 x50 0 x4F 0 x4E 0 x4D 0 x4C 0 x4B 0 x4A 0 x49 0 x48 0 x44 0 x44 0 x45 0 x44 0 x43 0 x42 0 x41 0 x40 0 x40 0 x41 0 x42 0 x43 0 x44 0 x45 0 x46 0 x47 0 x48 0 x49 0 x4A 0 x4B 0 x4C 0 x4D 0 x4E 0 x4F 0 x50 0 x51 0 x52 0 x53 0 x55 0 x55 0 x56 0 x57 0 x58 0 x59 0 x5A 0 x5B 0 x5 C 0 x5D 0 x5E 0 x5F 0 x60 0 x61 0 x62 0 x63 0 x66 0 x65 0 x66 0 x67 0 x 68 0 x69 0 x6A 0 x6B 0 x6C 0 x6D 0 x6E 0 x6F 0 x70 0 x71 0 x72 0 x73 0 x77 0 x75 0 x76 0 x77 0 x78 0 x79 0 x7A 0 x7B 0 x7C 0 x7D 0 x7E 0 x7F uint dataTHHL 65535 uchar datakeyword n 0 bdata sinthr sbit sin thr sinthr 0 sbit ww P2 0 键扫描子函数 keyscan keyword keyif keyword 0 x07 while keyswitch keyword case6 if THHL 65235 THHL 655 35 else THHL THHL 255 break case5 if THHL 500 THHL 0 else THHL THHL 255 break case3 sin thr sin thr break default break 初始化函数 void clearmen key 0 xff dataout 0 x00 THHL 65535 TH1 THHL 256 TL 1 THHLTMOD 0 x11 ET1 1 TR1 1 EA 1 lcd void delayMS uint x 延时 uchar i while x for i 0 i 120 i bit Busy Check 判断是否繁忙 bit state Lcd RS 0 Lcd RW 1 Lcd EN 1 delayMS 1 state bit P0Lcd EN 0 delayMS 1 return state void LCD Wdata uchar dat 写指令 while Busy Check Lcd RS 1 Lcd RW 0 Lcd EN 0 P3 dat Lcd EN 1 delayMS 1 Lcd EN 0 void LCD Wcmd uchar cmd while Busy Check Lcd RS 0 Lcd RW 0 P3 cmd delayMS 1 Lcd EN 0 Lcd EN 1 delayMS 1 Lcd EN 0 void Init Lcd 初始化 LCD Wcmd 0 x38 16 2显示 5 7点阵 8位 数据接口delayMS 1 LCD Wcmd 0 x0f 显示器开 光标开 光标允许闪烁delayMS 1 LCD Wcmd 0 x06 文字不动 光标自动右移delayMS 1 LCD Wcmd 0 x01 清屏delayMS 1 bit pushkey 判断是否按键 P1 0 xf0 if P1 0 xf0 return 1 else return 0 void key scan 键盘扫描 uchar keycode p delayMS 15 if P1 0 xf0 P1 0 xf7 while 1 keycode P1 if keycodeP1 cror P1 1 while pushkey for p 0 p 255 n 0 else n ww ww 取反EA 1 第4章 系统调试4 1输出波形的调试硬件电路的调试比较简单 只要元器件 安装无误 一般都能一次成功 软件调试主要是各子程序的调试 对于频数的增减按键 由于计数 器为16位定时器 最大值为65535 在加减时用255作为减数 这样 频率的调整变化较快些 但是在接近最高频率变化太快 如果加减 时用一作加减数 那么在频率的高端变化平稳 而在频率的低端则 变化太慢 调试时可根据应用特点选择加减数的大小 简易低频信号源输出频率指标实际测试如下 1 当按下K3键一下时 波形为正弦波 波形图如图所示 2 当按下K3键两下时 播行为三角波 仿真
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防洪提勘察设计合同范本
- 狗子领养合同协议书范本
- 美容店长工资合同协议书
- 求合作协议需要几份合同
- 签了补充协议没签主合同
- 首付房屋转让协议书范本
- 电工安全施工合同协议书
- 能效管理合同协议书范本
- 法院判决房屋赔偿协议书
- 生产质量安全协议书范本
- 热电厂2空预器大修施工方案
- 十二岁套面圈的顺口溜大全
- 中国儿童严重过敏反应诊断与治疗建议(2022年)解读
- 卡吉斯铸铁锅炉
- 钢箱拱钢箱梁吊装施工方案
- GB/T 23821-2022机械安全防止上下肢触及危险区的安全距离
- GB/T 25980-2010道路车辆旅居挂车和轻型挂车的连接球尺寸
- GB/T 24218.1-2009纺织品非织造布试验方法第1部分:单位面积质量的测定
- GB/T 1633-2000热塑性塑料维卡软化温度(VST)的测定
- 手术讲解模板:肩关节全部置换术课件
- 食堂伙食收据样稿
评论
0/150
提交评论