课程设计--智能仪器设计.doc_第1页
课程设计--智能仪器设计.doc_第2页
课程设计--智能仪器设计.doc_第3页
课程设计--智能仪器设计.doc_第4页
课程设计--智能仪器设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

不要删除行尾的分节符,此行不会被打印- I -哈 尔 滨 理 工 大 学课 程 设 计 题目 智能仪器设计 姓名 王玉林 班级 测控10-5班 学号 1005010502 指导教师 苑惠娟 成绩 2013年6月11日目录第1章 绪论11.1 课程设计题目与要求1第2章 总体方案设计22.1 工作原理22.2 系统组成22.3 波形发生22.4 显示部分22.5 按键部分2第3章 硬件电路设计33.1 显示及键盘接口电路33.2 D/A转换电路43.3 复位电路53.4 8路LED63.5 本章小结6第4章 软件设计7第5章 PCB板设计、安装与调试85.185.285.385.4 本章小结8第6章 系统标定、测试与精度分析96.196.296.396.4 本章小结9结论10致谢11参考文献12心得体会13附录14千万不要删除行尾的分节符,此行不会被打印。在目录上点右键“更新域”,然后“更新整个目录”。打印前,不要忘记把上面“Abstract”这一行后加一空行- III -第1章 绪论1.1 课程设计题目与要求设计任务:设计制作一个波形发生器,该波形发生器能产生三角波,梯形波等由用户编辑的特定形状波形。示意图如下:图1 设计要求图设计要求:1.具有产生三角波、正弦波两种种周期性波形的功能;2.频率可调节,并显示在数码管上。3.LED在运行过程中按要求亮。第2章 总体方案设计2.1 工作原理根据题目的要求,制定了整体方案:以STC90C51单片机为控制核心,P20、P21口接pcf8591p信号输入并进行数模转换,P3口接8路独立按键,P1口接8路LED ,P0口接数码管显示,由程序控制P2口产生波形(分别是正弦波、方波),再由按键及按键次数控制产生波形的种类及频率在一定范围内可调。在LED上实时的显示波形的频率和种类,波形在示波器上产生。正弦波波形的发生:在产生正弦波时,每周期只取80个点,在波形尽量不失真的前提下,使其频率达到的值尽量大,以便示波器显示。2.2 系统组成系统组成总体框图如下:P2.4P2.5独立按键P2.0p2.1D/A转换波形P1P0P1位选数码显示STC90C51系统复位系统时钟2.3 波形发生采用单片机和数模转换pcf8591p实现波形的产生。通过STC90C51执行三角正弦波程序,向D/A转换器的输入端按I2C总线方式发送数据,从而在D/A转换电路输出端得到相应的电压波形。在STC90C51的P2.4P2.7口接独立按键,通过软件编程来选择波形、频率,每种波形对应一个按键,频率增加、减少对应一个按键。2.4 显示部分8段LED共阴极数码管,P1口进行位选,P0口输出段选信号。2.5 按键部分采用独立按键,它相比较矩阵键盘,按键的数目比少,结构简单,方便操作,执行效率高。第3章 硬件电路设计硬件电路原理图3.1 显示及键盘接口电路功能:led显示,按键扫描。由LED数码管显示器和独立按键组成。当某一按键按下一次时,扫描程序扫描到之后,通过P0口将信号发送到LED。扫描及显示利用程序实现,不断扫描独立按键,当某一按键按下时,随即执行程序段,完成相应的功能。共阴极数码管6路独立按键3.2 D/A转换电路功能:将波形样值编码转换成模拟值,输出波形。由一片PCF8591组成。PCF8591是具有I2C总线接口的8位A/D及D/A转换器。有四路A/D转换输入,1路D/A模拟输出,也就是既可以作D/A转换也可以作A/D转换。PCF8591靠数据线SDA和时钟线SCL和90C51联系。单片机以I2C协议向PCF8591发送数字编码,产生不同的输出。先利用采样定理对各种波形进行抽样,然后把各种采样值进行编码,收到的数字量存入各个波形表,执行程序时通过查表的方法依次取出,经过D/A转换后输出就可以得到波形。如N个点构成波形的一个周期,则PCF8591输出N个样点值后,样值点形成运动轨迹,即一个周期。利用单片机的中断时间控制输出周期的速度,也就是控制输出的波形的频率。D/A转换电路图3.3 复位电路单片机的复位电路在刚接通电时,刚开始电容是没有电的,电容内的电阻很低,通电后,5V的电通过电阻给电容进行充电,电容两端的电会由0V慢慢的升到4V左右(此时间很短一般小于0.3秒),RC构成的微分电路在上电瞬间产生一个微分脉冲,其宽度大于两个机器周期,90C51复位。因此,复位脚的电由低电位升到高电位,引起了内部电路的复位工作,RST端电压慢慢下降,降到一定电压值以后,即为低电平,单片机开始正常工作(即上电复位,也叫初始化复位);当按下复位键时,电容两端放电,电容又回到0V了,于是又进行了一次复位工作(即手动复位)。复位电路3.4 8路LED发光二极管用于按键检测,检查按键扫描是否成功,以验证程序的有效性。8路LED3.5 本章小结第4章 软件设计主程序和子程序都存放在PCF8591单片机中。主程序的功能是:开机做键盘扫描及显示工作,然后根据用户所按的键转到相应的子程序进行处理。子程序的功能有:延时子程序、中断程序、显示子程序、按键子程序,按键子程序中有频率的加和减键、波形的转换键等共4个键。第5章 软硬件调试5.1在单片机编程中主要出现了以下问题:1) 键盘扫描时,多次扫描的问题,最终加入循环语句,是按键松开时执行,解决。2) 共256个样值点的正弦波输出时,不能完整显示的问题,采用每隔3个样值点输出一个的方案,减少样值数量从而增大输出频率。3) 中断时间问题,因为定时器中断时间过短引起的波形不能正常显示问题。最终考虑了D/A转换时间,以及程序段的执行时间,使一次中断时间不小于100毫秒,得以解决。4) 数码管显示的闪动问题,加大了对动态显示数码管的扫描频率,更改了由浮点数构成的频率计算公式,解决了计算引起的程序执行时间过长问题。5) 正弦波频率范围问题,通过计算子程序段执行时间,定时器中断时间,DA转换时间,最终确定频率输出范围10hz800hz。5.2 本章小结千万不要删除行尾的分节符,此行不会被打印。“结论”以前的所有正文内容都要编写在此行之前。- 15 -心得体会通过这次课程设计,我重新学习了以前的知识,学习了Altium designer这个软件,学习硬件电路的设计,以及PCB的绘制。实验过程中遇到了很多问题,例如DA转换不能正常工作,还有就是数码管显示的问题,由于数码管显示的时间太长,然后DA转换的时候,导致DA不能正常工作,只能通过一小段延时来实现的数码管的显示,还有就是DA输出波形时,数码管不能显示其输出频率,因为动态数码管刷新的时间太快,以至于在 转换过程中不能显示其频率,通过按键调整其频率效果不是很好,通过示波器显示的波形不能很好的反映其真实频率。通过这次课程设计进一步加深对数码管,按键的使用,以及常见波形的产生。这次的实践主要掌握了一些编程技巧,学会了用软件技术解决了按键抖动的问题,学会了中断定时的使用,运用动态扫描显示节省了IO口的使用。数码管显示的延时时间影响数码管的亮度及是否产生闪烁的现象。 附 录#include#include #define NOP() _nop_() #define _Nop() _nop_() bit ack;sbit SCL=P21; sbit SDA=P20;sbit k1=P22;sbit k2=P23;sbit k3=P24;sbit k4=P25;sbit k5=P26;sbit k6=P27;unsigned int wave=0,i=0;unsigned int sum=0,n=0,f=1;int g=0;unsigned char code Disp_Tab = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共阴数unsigned char code dispbit6=0xfe,0xfd,0xfb,0xf7,0xef,0xdf; /位选控制 查表的方法控制char sanjiao;char code sin256=0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xdd,0xde,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80;void start_i2c()SDA=1;_Nop();SCL=1;_Nop(); _Nop(); _Nop(); _Nop();_Nop();SDA=0;_Nop();_Nop();_Nop();_Nop();_Nop();SCL=0;_Nop();_Nop(); void SendByte(unsigned char c) unsigned char BitCnt; for(BitCnt=0;BitCnt8;BitCnt+) /*要传送的数据长度为8位*/ if(c 0; i-) for(j = 200; j 0; j-);void ledshow(unsigned int f,unsigned int i)unsigned int LedOut6; LedOut3=Disp_Tabf%10000/1000; LedOut2=Disp_Tabf%1000/100; LedOut1=Disp_Tabf%100/10; LedOut0=Disp_Tabf%10; LedOut4=Disp_Tabf%100000/10000; LedOut5=Disp_Tabwave%2; P0 = LedOuti; P1 = dispbiti; void main() unsigned int ge,shi,bai,qian,wan; EA=1; ET0=1; ET1=1; TMOD=0x11; TR0=1;TR1=1; TH0=0xfc; TL0=0x17; TH0=0xfc; TL0=0x17; TH1=0xff; Tl1=0xf5; start_i2c(); SendByte(0x90); SendByte(0x40); while(1) if(k1=0) delay(50); if(k1=1) wave+; if(k2=0) delay(50); if(k2=1) ge+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论