电子综合设计实践报告_第1页
电子综合设计实践报告_第2页
电子综合设计实践报告_第3页
电子综合设计实践报告_第4页
电子综合设计实践报告_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、实践报告 学院: 自动化工程学院 班级: 2013035 姓名: 肖 杰 学号: 20132600 2015年7月电子综合设计实践报告要求每位同学要上交一份完整的设计方案(统一用A4纸打印,封面不需用彩打),内容应包括:(1) 实验报告封面(2) 实验目的(3) 电子设计报告的主要内容:(或者,按任务书中的的内容撰写即可)l 方案论证及选择。l 理论分析、算法研究及参数计算。l 系统组成、各子系统的指标分配。l 系统的实现硬件设计、EDA仿真,总体方框图、各功能块电路图、计算机仿真波形图或曲线图、总的完整电路图。l 系统的实现软件设计,软件流程图、执行程序及源程序。源程序各部分要注释清楚。l

2、系统调试,出现问题及解决的途径与方法。(4)实验结论。必要的附件文档,如电路原理图、PCB图、原程序清单、MCS-51实物开发板等。(5) 总结对实验结果进行分析,对实验过程进行总结,学习体会等。注:以上内容为报告中必写项。实践报告中所写内容自己要弄懂,不懂的理论知识请不要盲目拷贝粘贴,报告中体现出自己所做所学即可,报告页数在十几页左右,个人根据情况自定。1、 Protuse仿真(十二张图)(一)、555定时器1、555多谐振荡器设计原理: 多谐振荡器又称为无稳态触发器,它没有稳定的输出状态,只有两个暂稳态。在电路处于某一暂稳态后,进过一段时间可以自行触发翻转到另一暂稳态。两个暂稳态自行相互转

3、换而输出一系列矩形波。多谐振荡器可用作方波发生器。 电路中表笔vout始终在0和5v之间跳跃,而表笔vc则在1/3vcc与2/3vcc之间振荡。接通电源后,假定是高电平,则T截止,电容C充电。充电回路是VCCR1R2 C地,按指数规律上升,当上升到时(TH、端电平大于),输出翻转为低电平。是低电平,T导通,C放电,放电回路为CR2T地,按指数规律下降,当下降到时(TH、端电平小于),输出翻转为高电平,放电管T截止,电容再次充电,如此周而复始,产生振荡,经分析可得:输出高电平时间T=ln2*(R1+R2)*C1输出低电平时间T=ln2*R1*C1振荡周期T=ln2*(2R1+R2) *C1Pro

4、teus绘制电路图:仿真结果:2、555单稳态电路设计原理: 555定时器外接一个电容充放电电路即可构成一个单稳态多谐振荡器,稳态时555电路输入端处于高电平,内部放电开关管T导通,输出端为低电平,电路不经过电容C1。当把开关按钮按上,使输入端电位瞬时低于1/3VCC,进入暂稳态,电容C1加入电路并开始充电,当充电至2/3VCC时,输出端从高电平返回低电平,放电开关管T重新导通,电容C上的电荷很快经放电开关管放电,暂稳态结束,恢复稳定,为下个触发脉冲的来到作好准备。单稳态持续时间tw=1.1R2*C1。Proteus绘制电路图:仿真结果:3、555警笛电路设计原理: 由两片555多谐振荡器组成

5、,U1的3脚与U2的5脚相连。在平时,U1的3脚为低电平不工作;当接入电源3脚为高电平时,电路开始工作,发出警笛声。警笛的频率由U1、U2的频率以及R1的数值决定。Proteus绘制电路图:仿真结果:扬声器发出类似报警器的警笛声。小结体会:555 定时器是数字电路中最常用的时基电路之一,它把模拟电子中的放大功能和数字子的逻辑功能融合起来 ,定时精确 ,电源范围宽直接推动负载。通过仿真实验,我大致了解了555定时器的工作原理,和555定时器在单稳态和多谐振荡下的输入输出波形,也实际制作了555定时器在生活中的实例,对555定时器有了更加深刻的认识。555定时器作为一种价格低廉、性能优使用方便的中

6、规模的集成电路,必将在控制域得到更广泛的应用。(二)、比例运算放大器(同相、反相)设计原理:LM324是四运放集成电路,它采用14脚双列直插塑料封装,外形如图所示。它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。 每一组运算放大器可用图1所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。其主要运算特性有“虚短”和“虚断”两种。Proteu

7、s绘制电路图:反相比例运算放大器同相比例运算放大器仿真结论:反相比例运算放大器同相比例运算放大器同相与反相放大器的差别: 反相比例放大器的反相端为虚地,所以共模输入可视为0,对运放共模抑制比要求低。输出电阻小,带负载能力强。要求放大倍数较大时,反馈电阻阻值高,稳定性差。而同相比例放大器的输入电阻高,输出电阻小,带负载能力强 V-=V+=Vi,所以共模输入等于输入信号,对运放的共模 抑制比要求高。小结体会: 通过对两种比例运算放大器的的仿真电路和输出波形,我进一步了解了同相比例放大器和反相比例放大器之间的特性与区别。(3) 、波形发生器(三角波、正弦波)工作原理:电源部分,为单片机提供5V稳压电

8、源;数码管显示所选择的的波形代号,1代表正弦波,2代表方波,3代表锯齿波,4代表三角波;幅度调节电路用来调节输出波形的幅度;D/A转换及放大电路可以将数字信号转换成模拟信号输出我们所需要的波形;显示电路则是将波形显示在屏幕上。Proteus绘制电路图:RC桥式正弦波振荡器三角波方波发生器仿真结论:RC桥式正弦波振荡器三角波方波发生器Rc桥式振荡器通过放大自振荡,形成波形。通过反向连接,由于pn结击穿的现象,二极管D1、D2可以起到稳幅作用。三角波和方波发生器,可以通过拉氏定理计算电阻,电容与输出波形的关系(积分)。小结体会: 巩固了rc桥式定理自振荡的概念。Rc桥式的连接中,在原有设计的基础上

9、加上开关可直接得到稳定波形。通过绘波形发生器的电路,我利用集成运放实现了正弦波、方波和三角波形的输出。(四)、显示译码器和数码管的应用设计原理:核心器件1) 74LS47(BCD码到七段显示译码器):译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实现译码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器。2) 74LS48七段译码器/驱动器: 74LS48的输入端是四位二进制信号(8421BCD码),a、b、c、d、e、f、g是七段译码器的输出驱动信号,高电平有效。可直接驱动共阴极七段数码管, 是使能端,起辅助控制作用。3) 七

10、段LED数码管的工作原理及应用: 简而言之,就是将法官二极管摆成数字1、2、3、4。的样子。通过给不同输入端加入信号(高电位)表示出需要的数值。Proteus绘制电路图:译码数码管显示0102仿真结论:0102小结体会: 通过绘制电路图以及电路仿真,我实现了利用译码器和数码管实现数码显示功能。了解到仿真连接时要留一定的空间,免得线路连接混乱、不便检查。此外在解决实际问题时还要详细各个驱动器译码器的引脚功能。(五)、ADC0808和DAC0832的应用设计设计原理:ADC0808的内部结构ADC0808原理:电路的功能是将模拟信号转换成数字信号。由右下角电源提供模拟信号,滑动变阻器起分压作用,A

11、DC0808的输出端与单片机P2端相连,将模拟信号转换为数字型号,输出端p0与显示屏相连。DAC0832内部结构原理:由单片机内部程序产生数字型号,输出并连接DAC0832,使数字信号转变为模拟信号,通过运放,并输出。Proteus绘制电路图:ADC0808DAC0832 仿真结论:ADC0808DAC0832 小结体会: 实现了 Keil和Proteus的联合调试,利用Proteus和Keil C实现AD和DA部分的电子及编程设计,复习了C语言的内容,了解到单片机C语言和一般C语言的差异。(六)、串/并行数据转换器设计原理: 由DATA IN输入数据,通过时钟和NE555定时器,使串行的信号

12、变成并行信号,并由LED灯管输出显示。Proteus绘制电路图:仿真结论: 小结体会: 仿真连接时要留一定的空间,免得线路连接混乱、不便检查,此外在解决实际问题时还要详细各个驱动器译码器的引脚功能,通过改变信号源的输入波形能够使LED灯管实现不同的亮灭。2、 开发板程序设计1、串口通信 #include<reg52.h> /包含单片机寄存器的头文件 /引脚定义:sbit SMG_q = P10;/定义数码管阳级控制脚(千位)sbit SMG_b = P11;/定义数码管阳级控制脚(百位)sbit SMG_s = P12;/定义数码管阳级控制脚(十位)sbit SMG_g = P13

13、;/定义数码管阳级控制脚(个位)sbit SPK = P15;/定义蜂鸣器sbit key1 = P37;/定义按键1sbit key2 = P36;/定义按键2sbit key3 = P35;/定义按键3sbit key4 = P34;/定义按键4sbit key5 = P33;/定义按键5sbit key6 = P32;/定义按键6unsigned char oldkey=0xff;/保按键接口状void display(unsigned char da);/定义显示函数,参数为显示内容,只显示两位十六进制/变量定义:unsigned char table=0xc0,0xf9,0xa4,0

14、xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;/表:共阳数码管 0-9 a-f,十六进制显示unsigned char ldata=0;/作为接收及发送的数据变量/函数声明:unsigned char ReadKey(void);/读键值返回unsigned char sendtmp=0,disptmp=0;unsigned char isrev=0;/*函数功能:向PC发送一个字节数据*/void Send(unsigned char dat) SBUF=dat; /将待发送数据写入发送缓冲器 while(TI

15、=0) /若发送中断标志位没有置"",即正在发送就等待 ; TI=0;/软件将TI清/*函数功能:延时约ms*/ void delay(void) unsigned char m,n; for(m=0;m<200;m+) for(n=0;n<250;n+) ; /延时子函数void delay0(unsigned int t)while(t-);/*函数功能:主函数*/void main(void)/unsigned char i;unsigned char lold=1;/作为按键放开的凭证,1为放开,0为按下EA=1;/开启总中断TMOD=0X20;/设置定

16、时器1为模式2,做为波特率发生器TL1=0xFC;/9600波特率的初值,板子使用12M晶振,初值=256-12000000/32/12/9600TH1=0xFC;/TR1=1;/启动波特率发生SCON=0x50;/串口方式2ES=1;/开始串口中断while(1)/循环扫描按键及显示switch(ReadKey()case 1: isrev=0;sendtmp|=01;delay(); /每ms发送一次检测数据disptmp=sendtmp; break;case 2: isrev=0; sendtmp|=02; delay(); /每ms发送一次检测数据 disptmp=sendtmp;

17、break;case 3: isrev=0; sendtmp|=04; delay(); /每ms发送一次检测数? disptmp=sendtmp; break;case 4: isrev=0; sendtmp|=0x08; delay(); /每ms发送一次检测数据 disptmp=sendtmp; break;case 5: isrev=0; Send(sendtmp); /发送数据i delay(); /每ms发送一次检测数据 disptmp=sendtmp; /sendtmp=0; sendtmp=0;break; if(isrev=0) display(disptmp); else

18、display(ldata);/串口中断入口函数void com_isr(void) interrupt 4if(RI)/是接收中断处理RI=0;/将寄存器复位等待接收下一个ldata=SBUF;/将接收的数据存于变量中isrev=1;/扫描键盘unsigned char ReadKey(void)unsigned char lkey=0;if(P3&0xfc)!=0xfc)/检测所有按键是否有按键按下SPK=0;/按键按下则蜂鸣器发声delay0(10);/有按键按下则延时一段时间,以消除按键拌动if(oldkey!=(P3&0xfc)/检测按键未松开而且不是之前按下的按健就

19、进入读键值,否则不作处理oldkey=P3&0xfc;/保存当前状态,为下一次扫描做判断,请看上一行if(key1=0)lkey=1;/第一个键按下复值1else if(key2=0)lkey=2;/第二个键按下复值2else if(key3=0)lkey=3;/第三个键按下复值3else if(key4=0)lkey=4;/第四个键按下复值4else if(key5=0)lkey=5;/第五个键按下复值5else if(key6=0)lkey=6;/第六个键按下复值6elseoldkey=0xfc;/如果都没有按键按下,将复值初始状态SPK=1;/无按键按下则退出蜂鸣return l

20、key;void display(unsigned char da)SMG_b=0;/选择百位数码管P0=tableda/16;/查表输出定义好的数码管段值与P0口,显示相应的0-fdelay0(1);/延时P0=0XFF;/清除数码管显示,因是共阳型,所以不是0SMG_b=1;/关闭百位数码管SMG_s=0;/选择十位数码管P0=tableda%16;/查表输出定义好的数码管段值与P0口,显示相应的0-fdelay0(1);/延时P0=0XFF;/清除数码管显示,因是共阳型,所以不是0SMG_s=1;/关闭十位数码管SMG_g=0;/选择个位数码管,P0=0x89;/显示一个"H&

21、quot;,表示十六进制显示delay0(1);/延时P0=0XFF;/清除数码管显示,因是共阳型,所以不是0SMG_g=1;/关闭个位数码管2、 发光二极管调亮度实验/*标题:LED发光二极管调亮度实验+按键程序+数码管显示程序效果:第一个LED灯亮度通过按键来调节,数码管显示亮度值工作于:LY5A-L12开发板*/头文件:#include "reg51.h"/变量定义:unsigned char table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/表:共阳数码管 0-9 /引脚定义:sbit LED = P2

22、0;/使用第一个LED灯sbit SMG1 = P10;/定义数码管阳级控制脚,第一个sbit SMG2 = P11;/定义数码管阳级控制脚,第二个sbit key1 = P37;/定义按键1sbit key2 = P36;/定义按键2sbit key3 = P35;/定义按键3sbit key4 = P34;/定义按键4sbit key5 = P33;/定义按键5/函数定义:void display(unsigned char da);/定义显示函数,参数为显示内容void delay(void); /延时子函时void LEDout(unsigned char ltime);/LED输出简

23、单PWM调制/主函数,C语言的入口函数:void main(void)unsigned char ldata=0;/作为显示的数据unsigned char lold=1;/作为按键放开的凭证,1为放开,0为按下while(1)/循环扫描按键及显示if(key1=0)/按键1按下if(lold)/是否是刚按下,是执行,否则不执行ldata+;/显示数据加1lold=0;/处理完,将按键视为按下else if(key2=0)/按键2按下if(lold)/是否是刚按下,是执行,否则不执行ldata-;/显示数据减1lold=0;/处理完,将按键视为按下else if(key3=0)/按键3按下if

24、(lold)/是否是刚按下,是执行,否则不执行ldata+=10;/显示数据加10lold=0;/处理完,将按键视为按下else if(key4=0)/按键4按下if(lold)/是否是刚按下,是执行,否则不执行ldata-=10;/显示数据减10lold=0;/处理完,将按键视为按下else if(key5=0)/按键5按下if(lold)/是否是刚按下,是执行,否则不执行ldata=0;/清0lold=0;/处理完,将按键视为按下elselold=1;/如果都没有按键按下,将复值1if(ldata>99)/当值加到99以上,要做相应处理,因为两位数码管不能显示三位数ldata=0;d

25、isplay(ldata);/显示相应的数值,这里用函数的形式调用显示LEDout(ldata);/LED输出/显示函数,参数为显示内容void display(unsigned char da)SMG1=0;/选择十位数码管P0=tableda/10;/获取十位值,查表输出定义好的数码管段值与P0口,显示相应的0-9delay();/延时P0=0XFF;/清除数码管显示,因是共阳型,所以不是0SMG1=1;/关闭十位数码管SMG2=0;/选择个位数码管P0=tableda%10;/获取个位值,查表输出定义好的数码管段值与P0口,显示相应的0-9delay();/延时P0=0XFF;/清除数码

26、管显示,因是共阳型,所以不是0SMG2=1;/关闭个位数码管/延时子函数,短暂延时void delay(void)unsigned char i=20;while(i-);/LED输出,参数为刷新量void LEDout(unsigned char ltime)/此函数相当于一个PWM调制unsigned char i=ltime;LED=0;while(i-);LED=1;i=255-ltime;while(i-);3、 倒计时实验/*标题:定时器中断秒计数实验板:LY5A-L2A开发板说明:数码管做精确的秒计数00-99,注意:使用12M晶振下调试*/头文件:#include <re

27、g52.h>/引脚定义:sbit SMG_q = P10;/定义数码管阳级控制脚(千位)sbit SMG_b = P11;/定义数码管阳级控制脚(百位)sbit SMG_s = P12;/定义数码管阳级控制脚(十位)sbit SMG_g = P13;/定义数码管阳级控制脚(个位)sbit SPK = P15;/定义蜂鸣器sbit key1 = P37;/定义按键1sbit key2 = P36;/定义按键2sbit key3 = P35;/定义按键3sbit key4 = P34;/定义按键4sbit key5 = P33;/定义按键5sbit key6 = P32;/定义按键6/变量定

28、义:code unsigned char table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/表:共阳数码管 0-9 unsigned char l_posit=0;/显示位置unsigned char tt=0;/作为计数时间量unsigned char oldkey=0xff;/保按键接口状态/函数声明:unsigned char kk5(unsigned char bb);unsigned char ReadKey(void);void display(unsigned int da);/定义显示函数,参数为显示内容void

29、delay(unsigned int t); void init();/初如化函数/主函数,C语言的入口函数:void main()unsigned char bb=0;/作为显示变量init();/初始化中断控制寄存器display(bb);/显示变量内容delay(100);while(1)/循环扫描按键及显示switch(ReadKey()/读取键值做以下相应处理case 1:bb+;/1键显示内容加1break;case 2:bb-; /2键显示内容减1break;case 3: bb+=10;/3键显示内容加10break;case 4: bb-=10;/4键显示内容减10break

30、;case 5: bb=kk5(bb);break;case 6:SPK=1;break;display(bb);/显示变量内容delay(100);unsigned char kk5(unsigned char bb)TR0=1;/启定定时器0while(bb)if(tt=20)/20*50MS定时时间为1秒tt=0;bb-;/计数变量加1display(bb);/显示变量内容delay(100);SPK=0;/到时则蜂鸣器发声TR0=0;/启定定时器0return bb;/初始化函数void init()tt=0;TMOD=0X01;/设置定时器1为模式一,即16位计算模式TH0=(655

31、36-50000)/256;/给计数寄存器赋值,50毫秒时间TL0=(65536-50000)%256;EA=1;/开启总中断ET0=1;/开启定时器0中断/中断函数,关键字"interrupt" , 这是C语言的中断函数表示法,1表时定地器0void timer() interrupt 1TH0=(65536-50000)/256;/重新赋值TL0=(65536-50000)%256;tt+;/50毫秒加1,加20次为一秒/显示函数,参数为显示内容void display(unsigned int da)P0=0XFF;/da=da%10000;switch(l_posit)case 0:/选择千位数码管,关闭其它位SMG_q=0;SMG_b=1;SMG_s=1;SMG_g=1;P0=0xff;/tableda/1000;/输出显示内容break;case 1:/选择百位数码管,关闭其它位SMG_q=1;SMG_b=0;SMG_s=1;SMG_g=1;P0=0xff;/tableda%1000/100;break;case 2:/选择十位数码管,关闭其它位SMG_q=1;SMG_b=1;SMG_s=0;SMG_g=1;P0=tableda%100/10;break;case 3:/选择个位数码管

温馨提示

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

评论

0/150

提交评论