模拟·数字电路课程设计.doc_第1页
模拟·数字电路课程设计.doc_第2页
模拟·数字电路课程设计.doc_第3页
模拟·数字电路课程设计.doc_第4页
模拟·数字电路课程设计.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

班级: 电气1081 姓名: 学号: 成绩: 指导老师(签名): 目 录 1 设计概述 . 32 设计方案与硬件设计概要. 3 2.1 详细设计方案(功能框架图) 32.2 硬件设计方案 . 5 (1) 电源模块 . 5(2) 频率发生器 . 5(3) 频率计 . 6 3 实物演示结果 7 4 设计总结 . 8 附: at89s52 程序代码 (c语言) . 9 altium designer 6.9 sch file and pcb file . 12 1 设计概述: “模拟数字电路课程设计”是自动化专业的专业基础课-模拟电路和数字电路及数字逻辑的实践性教学环节,是对学生学习电子电路的综合性训练。 本设计主要分三个模块设计:电源模块 频率发生器 频率计 电源模块跟频率发生器模块运用的是模拟电路上的基础知识,而频率计模块运用的是数字电路基础知识,为了加强课外的学习能力,本设计还综合性的加上了单片机的内容,是基于at89s52 单片机开发的频率计。 总体上,由电源模块将市电降压为运放ua741正常工作的+/-15伏电压跟at89s52单片机工作电压+5伏。采用ua741运放产生方波跟三角波,再用单片机的定时/中断功能来计数频率,用数码管来显示频率结果。2 设计方案: 2.1 详细设计方案:(功能框架图) 电源模块(市电降压为+/-15v 和 +5v整流桥堆,lm337,lm317,7805)市电(交流220伏) 频率发生器(ua741运放)频率计(双向总线发送器/接收器 74ls2453线8线 译码器 74ls138可编程逻辑芯片 at89s52) 表1 总体框架图市电(220v)2200uf电解电容滤波,lm317稳压输出正15伏3a整流桥堆整流出直流电压2200uf 电解电容滤波,lm337稳压输出负15伏7805稳压输出正5伏表2电源模块示意框同相滞回比较器u1输出经限流电阻被双向稳压管箝位在+uzu1输出uo1 =-uz积分器u2反相积分,当输出uo2 =ut2积分器u2正向积分,当uo2 =ut1u1输出uo1 =+uz表3 频率发生器at89s52单片机上电电容充电,电平至高复位晶振起振,单片机工作定时器0开始工作,定时1秒钟计数器1检测外部输入高电平数定时器0满数溢出,进入中断函数执行操作将计数器中数分离成十进制与权值结合74ls138函数表,用权值作为二进制地址码通过p0口选通数码管位选端结合74ls245真值表,选择芯片工作状态,实行总线并行传输两个四位共阴数码管显示频率表4 频率计2.2 硬件设计方案:(1) 电源模块: 电源模块首先用220v+/-18伏e型变压器降压,经3a整流桥堆整流成单向直流脉冲电压,用一个2200uf大电解电容c9并联一个0.1uf瓷片电容c11来滤波,得到平滑的直流电压,在并联一个电阻与3mmled串联作为电源指示灯(3.9k电阻r11起到限流保护led灯的作用)。考虑到需要电流的稳定性(与7812的性能区别),所以采用了lm317可调稳压器,通过调制r16跟r13电阻的阻值比来得到+15v的电压。为了得到一个相当稳定的电压,在输出端再并联一个去耦电容c5(防止尖峰电压冲击)。lm337工作电路与lm317工作电路基本相同,唯一区别的是lm337稳压后得到的是负电压也就是-15v。为了得到正负电压源,所以务必中端接地作为电压参考点。c3跟c1并联构成7805稳压器的输入滤波电路,c2是+5v输出电压的去耦电容。(2) 频率发生器: 频率发生器如图所示,此电路由同相输入的滞回比较器和rc电路组成。rc回路既作为延迟环节,又作为反馈网络,通过rc充放电实现输出状态的自动转换。设某一时刻输出电压uo=+uz,则同相输入端电位up=+ut。uo通过r4对电容c正向充电。反相输入端电位n随时间t的增长而逐渐增高,当t趋于无穷时,un趋于+uz;但是,一旦un=+ut,再增大,uo从+uz跃变为-uz,于此同时up从ut跃变为-ut。随后,uo又通过r3对电容c反向充电,如图中虚线箭头所示。un随时间逐渐增长而减低,当t趋于无穷大时,un趋于-uz;但是,一旦un=-ut,再减少,uo就从-uz跃变为+uz,up从-ut跃变为+ut,电容又开始正向充电。上述过程周而复始,电路产生了自激震荡。(3) 频率计: 图1 频率计是基于at89s52单片机设计的,电容c1跟电阻r9构成单片机复位电路(高电平触发),两个瓷解电容c2,c3跟12m晶振构成单片机的时钟振荡电路来驱动单片机内部时钟电路。p1口控制74ls245芯片(双向总线发送器/接收器)的数据输入口,从74ls245真值表得到工作在dir=1,/e=0的状态下,数据从d口传输到b口,r1r8电阻为限流电阻防止电流过大烧坏数码管中的led灯,d0口用来控制两个四位数码管的段选控制端。两个四位数码管均采用共阴的,只要在输进高电平便可来选中该位。单片机的p0口用来控制74ls138的地址输入端a,b,c。当74ls138工作在g1=1,g/2a=0,g/2b=0的状态下,可将地址端的输入二进制编码成一个相应的低电平输出,用来控制共阴数码管的位选控制端。 74ls138 函数表 74ls245 真值表3 实物图: 4 设计总结: 经过这次试验设计让我更加深刻得去如何设计数字跟模拟的综合电路,虽然在设计跟调试过程中存在各种各样的错误跟失败,但是,在网络的帮助下,让我更加有效率地去解决问题。在这次的设计中,主要运用了a ltium designer 6.9 ,proteus 7 ,跟multisim ,keil uvision等软件,无疑这是一次综合的锻炼。让我熟悉了从设计到制作再到调试的具体流程(设计电路仿真通过买元件材料制作调试)。因为之前有多次制作的前例,所以关于在制作环节做得很轻松。总之,该次设计不仅让我单单学会了这ua741,at89c52,74ls138,74ls245等相关芯片的使用,而且让我学会了“第二课堂”的课外知识,例如基本元件的知识,电路设计的电气要求等等,可谓受益匪浅!附:c语言程序代码/*51频率计设计*/*频率范围是065khz*/#include#define unchar unsigned char#define unint unsigned intvoid init_timer(); /定时器初始化函数void delay(); /延时倍数函数void mult_delay(unchar time); /基础延时函数unchar num_8,num_7,num_6,num_5,num_4,num_3,num_2,num_1; void display(unchar num_8,unchar num_7,unchar num_6,unchar num_5,unchar num_4,unchar num_3,unchar num_2,unchar num_1) ; /定于显示函数/unchar num_0=10;unchar count=0;/unchar code led_point = 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x00; /定义带小数点的代码段unchar code leddata=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00; /定义不带小数点的代码/*/*函数原型:void/*函数功能:数码管上显示脉冲频率/*输入参数:无/*输出参数:无/*调用模块:51库头文件/*建立时间:2010/06/15 21:23/*作者:黄积潮/*主函数*/-void main()init_timer(); /定时器配置while(1)display(num_8,num_7,num_6,num_5,num_4,num_3,num_2,num_1); /数码管不停地在扫描数据/*定时器初始化函数*/void init_timer()ea = 1; /开总中断et0 = 1; /允许定时器0中断tmod = 0x51; /定时器工作方式选择 定时器0工作在定时状态定时50ms,定时器1工作在计数状态累计下降沿数。th0 = 0x4c; tl0 = 0xb0; /定时器0赋予初值/*-*/tl1 = 0x00; th1 = 0x00; /定时器1赋予初值/*-*/tr0 = 1; /启动定时器0跟计数器1tr1 = 1;/*定时器中断服务函数*/void timer0() interrupt 1 /50ms中断函数unchar temp_tl1 = 0;unchar temp_th1 = 0;unsigned long temp_number = 0;th0=0x4c; /50ms初值 晶振11.0592 th0=3c 晶振12mtl0=0xb0; /50ms初值 晶振11.0592m tl0=d0 晶振12m tl0=b0count+; if(count=20) /中断20次,每次50ms 定时1scount=0;temp_tl1 = tl1;temp_th1 = th1;tl1 = 0x00;th1 = 0x00;temp_number = temp_th1*256+temp_tl1;/计数器取数分析num_8=temp_number/10000000; /取样数据逐位分离,数码管显示num_7=(temp_number%10000000)/1000000;num_6=(temp_number%1000000)/100000;num_5=(temp_number%100000)/10000;num_4=(temp_number%10000)/1000;num_3=(temp_number%1000)/100;num_2=(temp_number%100)/10;num_1=(temp_number%10)/1;/*数码管显示函数*/ void display(unchar num_8,unchar num_7,unchar num_6,unchar num_5,unchar num_4,unchar num_3,unchar num_2,unchar num_1)p0=0xf8; /选通数码管位选端p1=leddatanum_1; /输入段选码mult_delay(5);p0=0xf9;p1=leddatanum_2;mult_delay(5);p0=0xfa;p1=leddatanum_3;mult_delay(5);p0=0xfb;p1=leddatanum_4;mult_delay(5);p0=0xfc;p1=leddatanum_5;mult_delay(5);p0=0xfd;p1=leddatanum_6;mult_delay(5);p0=0x

温馨提示

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

评论

0/150

提交评论