版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 电 子 技 术 综 合 设 计课 程 结 题 报 告题题 目:目: 多路放大与巡回测量电路多路放大与巡回测量电路 教学打铃系统教学打铃系统 专专 业:业: 电子信息工程(防雷方向)电子信息工程(防雷方向) 班班 级:级: 雷电雷电 071 班班 姓姓 名:名: 袁蛟袁蛟 贺晓曦贺晓曦 指导教师:指导教师: 王江王江 评评 分:分: 2010 年年 11 月月 12 日日 目 录1 题目描述和要求 .11.1 对功能及指标的理解.11.2 系统设计思路.12 设计说明.22.1 工作原理.2单片机最小系统模块.2显示模块.3电压采集模块.3模数转换模块.4时钟模块.5按键模块.62.2 软件设
2、计.6主流程及中断流程图.6与流程图相配的源程序及注解.83 调试过程.173.1 方法.173.2 步骤.17硬件部分.17软件部分.18通道选择电压值.183.4 误差分析.183.5 结论.184 总结.195 附件.191 题目描述和要求题目描述和要求题目一:多路放大与巡回测量电路 基本要求:1. 对八路不同的电压(0-5v)进行巡回测量2. 用按键选择输入,LED 数码管显示通道号和电压值3. 路输入电压调节通过 1 个电位器完成。4. 测量及输出误差5扩展要求:5. 设置一路 050mV 的小信号,经放大后再采集,对应显示 050.0。题目二:教学打铃系统基本要求:使用 DS130
3、2 芯片计时,显示时、分,当设置的闹铃时间与实时时间相同,蜂鸣器定时打铃(或 LED 闪烁报警) 。扩展要求:按键设置并永久保存 24 组定时数据。1.1 对功能及指标的理解对功能及指标的理解题目一要求对八路不同的电压进行巡回测量,并将通道和电压值输出显示到数码管上。则需要 8 个阻值不同的电阻对 5v 进行分压,可产生明显的梯度;再将采集到的电压经转化后显示。其中,小信号为小数点后三位数值,显示时只显示无小数点的两位值;其余电压信号显示三位有效数字。题目二要求滚动显示时间、年、月、日,选用 DS1302 时钟芯片。时钟显示按各个位数分别显示,最小显示单位为秒。对按键进行复用可实现系统不同功能
4、的选择。1.2 系统设计思路系统设计思路单片机及最小系统时钟芯片备用电源按键数码管显示电压采集模数转换图 1-1 系统框图多路放大与巡回测量电路、数字钟系统框图如图 1-1 所示。系统主要由单片机、时钟芯片 DS1302、电压采集及数模转换、显示、按键几部分组成。系统上电后,默认进入时间显示状态,显示时间。通过按键可选择不同的模式。其中,时钟模式下实现实时时钟读取显示、当前时间设置调整;电压采集模式下,实现通道选择、电压值显示。2 设计说明设计说明2.12.1工作原理工作原理2.1.12.1.1 单片机最小系统模块单片机最小系统模块P101P112P123P134P145P156P167P17
5、8RESET9RXD(P30)10TXD(P31)11INT0(P32)12INT1(P33)13T0(P34)14T1(P35)15WR(P36)16RD(P37)17XTAL218XTAL119GND20P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/PROG30EA/VP31P0732P0633P0534P0435P0336P0237P0138P0039VCC40JP1HEADER 4X2CSP34VCCVCCP20P21P22P23C1010UFR1210KVCCC430PC530PY1CRYSTALP25P26P27RDWRP24P
6、00P01P02P03P04P05P06P07P10P11P12P13P14P15P16P17CBA图 2-1 单片机最小系统单片机最小系统是指单片机利用自身资源,用最少的辅助元件组成一个可以工作的系统。包括电源(地) ,起振电路(晶振 Y2=22.1184M) ,复位电路组成。其中,晶振的两端分别接 30pF 的电容到地;复位电路先接 10uF 电容后在与地并联,起到滤波的作用。晶振是为单片机提供起振时间,晶振越大,单片机处理速度越快。本次设计选择 22.1184M 的晶振,一个机器周期大约是 1uS,能够满足系统设计需求。2.1.22.1.2 显示模块显示模块图 2-2 显示模块 为节省资
7、源,在这里选择的数码管是 4 位共阴极数码管。在上拉电阻的选择上,一般 1K 到 10K 比较合适,过大则亮度不够,过小则会烧掉数码管。 电压采集模块电压采集模块将 5V 电源电压与一串 8 个 10K 的电阻串联再在末尾串联一个 1K 的电阻来调节电压。其中第一个 10K 的 R0 电阻用于限流,防止 5V 的电压直接接到通道选择开关 CD4051 上将芯片烧毁。从第二个电阻 R1 开始,将其电流流过后的一端接到通道选择开关 CD4051 上,R1-R7 阻值取 10K。最后一路电压,即通过 R7 的电阻由于信号可能会太小,导致电压值的丢失,故将其放大 50 倍后再接到 CD4051 上,所
8、以反馈电阻 R8=51K,接地电阻 R9=1K。通过按键键值的改变,控制 CD4051 的地址端,就可以选择不同的电压值。R11KR210KR310KR910KR410KR1010KR710KR810K12VR51KR651KVCCData_in1Data_in2Data_in3Data_in4Data_in5Data_in6Data_in7Data_in8321411C1ACAPC9X41X62X3X74X55INH6VEE7C9B10A11X312X013X114X2154051CAPData_in1Data_in2Data_in3Data_in4Data_in5Data_in6Data_
9、in7Data_in8ABC图 2-3 电压采集电路图2.1.32.1.3 模数转换模块模数转换模块图 2-4 模数转换电路ADC0804 转换器的时序如下。CS/=0 时,允许进行转换。WR/由低跳高时转换开始,8 位逐次比较需用 88=64 个时钟周期,再加上控制逻辑操作,一次转换需要 6673 个时钟周期。 当 CS/与 WR/同时有效时便启动转换,转换结束时产生信号 INTR/,可供输出查询或中断信号。在 CS/和 RD/共同控制下可以读取转换结果数据。 在转换过程中,如果再次启动转换器,则终止正在进行的转换,进入新的转换,在新的转换过程中,数据寄存器中仍保持上一次的转换结果。0804
10、 转换器的零点无需调整,而输入电压的范围可以通过调整 Vref/2端处的电压加以改变。Vref 端电压应为输入电压的 1/2。例如输入电压范围是 0V 至 2V,则在 Vref 端应加 1V,但当输入电压为 0+5V 时,Vref 端无需外加任何电压,而由内部电源分压得到 P34RDWRVCCVccREF20Vin(-)7lsbDB018DB117Vin(+)6DB216DB315DB414A-GND8DB513DB612msbDB711Vref/29INTR5CLK-R19CS1RD2CLK-IN4WR3U2ADC0804P10P11P12P13P14P15P16P172.1.42.1.4
11、时钟模块时钟模块图 2-5 时钟模块DS1302 是 DALLAS 公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和 31 字节静态 RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年天数可自动调整,时钟操作可通过 AM/PM 指示决定采用 24 或 12 小时格式。此次设计中,选用 DS1302 将大大简化时钟的实现,节约单片机资源。DS1302 可实现与单片机进行简单的同步串行方式通信,仅需用到三个口线:(1)RES(复位), (2)I/O(数据线) , (3)SCLK(串行时钟) 。时钟/RAM 的读/写数据以一个字
12、节或多达 31 个字节的字符组方式通信。DS1302 功耗很低,保持数据和时钟信息是功耗小于 1mW。同时,DS1302 双电源管脚用于主要电源和备份电源供应,Vcc1 为可编程涓流充电电源,附加七个字节存储器。本次设计中,考虑到单片机 I/O 口的电压可能过低,不足以驱动 DS1302,故将其三个管脚SCLK、I/O、RST 接了上拉电阻。R10、R11、R12 为限流电阻,取其阻值为10K。由于题目中要求数字钟能掉电保持,所以将 DS1302 的一个供电管脚Vcc1 与地间接了一个电容。当电压接通时,由 Vcc2 为 DS1302 供电;掉电时,由 Vcc1 为 1302 供电。通过网上资
13、料的查阅,C1 取 100u 时,1302 的掉电保持时间可达到 1 个小时,满足题目要求。2.1.52.1.5 按键模块按键模块VCC21X12X2344CE5I/O6SCLK7VCC18S31302Y2CRYSTALVCCRDWRCSU1BELLVCCR13RES2P24C8CAPC7CAP图 2-6 按键模块此次设计中只用了三个按键,故需按键复用才能满足题目要求。将三个按键开关 K1、K2、K3 分别接到单片机的 P2.5、P2.6、P2.7。单片机上电时,系统默认显示时间;在此模式下,K2、K3 可实现年、月、日、分、秒的加和减来实现数字钟的时间设置。如果 K1 按下,则进入电压采集模
14、式;数码管会显示采到的电压值。元器件清单元器件清单序号名 称数 量封装1LM324N1DIP142CD4051BE1DIP163STC89C52RC1DIP404Adc08041DIP20513021DIP86共阴数码管1SEG7晶振 22MHZ1CRYSTAL8晶振 37KHZ1SIP29三极管 80501Sip310发光二极管1LED111排阻1SIP912滑动变阻器 1K1CXYP1310K15AXIAL0.31451K1AXIAL0.3151K3AXIAL0.316普通按键3KAI17150PF1RAD0.11830PF2RAD0.11910UF1RB.2/.4S2SW-PBS1SW-
15、PBS4SW-PBP25P26P272.22.2软件设计软件设计2.2.12.2.1 主流程及中断流程图系统初始化有无按键按下时间显示模式读取 1302时间1302 时间显示按键 1按键 2按键 3时间或者通道切换数字加数字减NY按键处理外部中断 0外部中断 1定时器中断 0定时器中断 1采集 10 次电压并求平均值,显示。读定时器 1 的值,关中断。返回按键扫描,取键值。初值清零,置相应的中断标志位。2.2.2 与流程图相配的源程序及注解/ 函数名: adc / 函数功能:ad 采集 / 函数参数: 无 / 返回值: 无 /void adc()float x,y;uint Current_D
16、ate;uint z;x=uT1.T;y=uT2.T;Current_Date=(x/y)*500; /计算采集到的电压AD_OK = 0; /设置模数转换标志归零ADdata=ADdata+Current_Date; /每路电压值累加if(+Mean_Num=10) /如果累加了 10 次Mean_Num=0; /采集次数归零ADdata/=10; /求 10 次平均值if(road=0) /如果是小信号则单独处理z = ADdata/5;dispbuf1 = z/100; /求电压值最高位dispbuf2 = z/10%10; /求电压值第二位dispbuf3 = z%10; /求电压值最
17、低位/目的为了转换显示成毫伏的小信号else /处理其他路信号 dispbuf1 = ADdata/100;dispbuf2 = ADdata/10%10;dispbuf3 = ADdata%10; ADdata=0; /累加电压值归零void display()/*两部分的显示模块*unsigned char sect; if(state) /显示电压值seg7+;seg7 %=4;P2|= 0 xf0; /消隐if(seg7=1&road0)P0=dispcodedispbufseg7|0 x80;else P0=dispcodedispbufseg7;P2 &=dispb
18、itseg7; Else /显示时间seg7+;seg7 %=4;P2|= 0 xf0; sect = (Scan_buff1*10+Scan_buff0)/3;switch(time_seting) /时间case 0: /默认显示时间if(sect%4)=0) /显示秒 0-59P0=dispcodeScan_buffseg7;else if(sect%4)=1) /显示时、分P0=dispcodeScan_buff4+seg7;else if(sect%4)=2) /显示月、日 if(seg7=2)P0=dispcodeScan_buff8+seg7|0 x80;else P0=disp
19、codeScan_buff8+seg7;else if(sect%4)=3) /显示年 P0=dispcodeScan_buff12+seg7;break;case 1: P0=dispcodeScan_buffseg7;break;/显示设置秒case 2: case 3: P0=dispcodeScan_buff4+seg7;break;/显示设置时、分case 4: case 5: P0=dispcodeScan_buff8+seg7;break; /显示设置月、日case 6: P0=dispcodeScan_buff12+seg7;break; /显示设置年P2&=dispb
20、it3-seg7; /位选GetTime();/ 函数名: DisposeKEY / 函数功能:按键处理 / 函数参数: 无 / 返回值: 无 /void DisposeKEY()switch(cKeyCode)case 6: /键值为“6” ,调整时间“加”模式switch(time_seting)case 0:break; case 1: Scan_buff0+=1; /key1 按下,秒加 1if(Scan_buff09)Scan_buff0=0;Scan_buff1+=1;break;case 2: Scan_buff4+=1; /key1 按下,分加 1if(Scan_buff49)
21、Scan_buff4=0;Scan_buff5+=1;break; case 3: Scan_buff6+=1; /key1 按下,时加 1if(Scan_buff69)Scan_buff6=0;Scan_buff7+=1;break;case 4: Scan_buff8+=1; /key1 按下,日加 1if(Scan_buff89)Scan_buff8=0;Scan_buff9+=1;break;case 5: Scan_buff10+=1; /key1 按下,月加 1if(Scan_buff109)Scan_buff10=0;Scan_buff11+=1;break;case 6: Sc
22、an_buff12+=1;/key1 按下,年加 1if(Scan_buff129)Scan_buff12=0;Scan_buff13+=1;break;if(state=1)adc();nDelayKey = 2000; /* 按住键不动,可连续产生键值,相当于连续按键 */break;case 5: /键值为“5” ,电压采集模式if(state=0)time_seting=+time_seting%7;else road=+road%8;send_road(); /调用发送通道函数,发送通道if(state=1)adc();nDelayKey = 2000;break;case 3: /
23、键值为“3” ,调整时间“减模式”if(time_seting0)switch(time_seting) case 1: Scan_buff0-=1; /key3 按下,秒减 1if(Scan_buff09)Scan_buff0=9;Scan_buff1-=1;break;case 2: Scan_buff4-=1; /key3 按下,分减 1if(Scan_buff49)Scan_buff4=9;Scan_buff5-=1;break; case 3: Scan_buff6-=1; /key3 按下,时减 1if(Scan_buff69)Scan_buff6=9;Scan_buff7-=1;
24、break;case 4: Scan_buff8-=1; /key3 按下,日减 1if(Scan_buff89)Scan_buff8=9;Scan_buff9-=1;break;case 5: Scan_buff10-=1; /key3 按下,月减 1if(Scan_buff109)Scan_buff10=9;Scan_buff11-=1;break;case 6: Scan_buff12-=1;/key3 按下,年减 1if(Scan_buff129)Scan_buff12=9;Scan_buff13-=1;break;else state=(+state)%2; /第一次执行,改变 st
25、ate 的值SetTime();break;display(); /调用显示cKeyCode = 0;void main()TMOD = 0 x12; /定时/计数器做定时用TH1 = 0; /给定时 1 器重装初始值,工作在模式 1TL1 = 0; ET1 = 1; /允许 T1 中断TR1 = 1;TH0 = -200; /8 位自动重装定时器约每 200uS 中断 1 次,4608 次为 1 秒 TL0 = -200; TR0 = 1; ET0 = 1; /允许 T0 中断 IT0 = 1; /外部中断下降沿触发 IT1 = 1; EA = 1;/开总中断 send_road();/初始
26、通道号码 DS1302_init(); while(1) if(cKeyCode)DisposeKEY(); /响应按键操作 void T0_INT() interrupt 1nTimer+;if(nTimer = 13824) / 满 3 秒,进行秒处理 nTimer=0; road+; road%=8; send_road();/*扫描按键*if(nDelayKey=0)cKey = (P2 & 0 x0e)1;/ 取键值 P21、P22、P23if(cKey != 0 x0e)nDelayKey=100;/ 设置延迟时间削颤elsebStill=0;/ 是否松键标志,bStill
27、=0 代表松键,此时没有按键按下cLongDelay=0;/ 按键长按时间 / 松键else / 有按键利用 DelayKey 按键消颤nDelayKey-;if(nDelayKey=0)cKeyCode = (P2 &0 x0e)1;/ 取键值 P21、P22、P23if(cKey != cKeyCode)cKeyCode = 0;display();/调用显示函数/ 函数名: SetTime / 函数功能:设置初始时间 / 调用:WriteTo1302() / 初始时间格式:秒 分 时 日 月 星期 / 函数参数: 无 / 返回值: 无 /void SetTime() uchar
28、i; uchar Addr = 0 x80; year = Scan_buff13*16+Scan_buff12; month = Scan_buff11*16+Scan_buff10;date = Scan_buff9*16+Scan_buff8; hour = Scan_buff7*16+Scan_buff6;min = Scan_buff5*16+Scan_buff4;sec = Scan_buff1*16+Scan_buff0;if(sec0 x59) sec=0;if(min0 x59) min=0;if(hour0 x24) hour=1;if(date0 x31) date=1;
29、if(month0 x12)month=1;Curtime0 = sec; Curtime1 = min; Curtime2 = hour; Curtime3 = date; Curtime4 = month; Curtime5 = day; Curtime6 = year; WriteTo1302(0 x8e,0 x00); / 控制命令,WP=0,允许写操作 / for(i=0;i7;i+) WriteTo1302(Addr,Curtimei); / 秒 分 时 日 月 星期 年 / Addr +=2; WriteTo1302(0 x8e,0 x80); / 控制命令,WP=1,写保护 /
30、 / 函数名: GetTime / 函数功能: 读取 DS1302 当前时间 / 调用:uc_R1302() / 输入:ucCurtime / 函数参数: 有(写入的字节内容) / 当前时间格式:秒 分 时 日 月 星期 年/void GetTime(void) uchar i; uchar Addr = 0 x81; for (i=0;i4;Scan_buff12= year&0 x0f;Scan_buff11 = month4;Scan_buff10 = month&0 x0f;Scan_buff9 = date4;Scan_buff8 = date&0 x0f;S
31、can_buff7 = hour4;Scan_buff6 = hour&0 x0f;Scan_buff5 = min4;Scan_buff4 = min&0 x0f; Scan_buff1 = sec4;Scan_buff0 = sec&0 x0f; 3 调试过程调试过程3.13.1硬件部分硬件部分检查电路板,看是否有虚焊和腐蚀不完全的地方;除此之外,还应用欧姆表实际测试电路板,以再次确定电路板没有短路等错误。3.23.2软件部分软件部分利用 Proteus 仿真软件对软件部分进行仿真。因为本次实验我们小组没有完成多路放大与巡回测量这部分工作,所以数据的调试和软件测试都
32、是通过仿真软件来完成。3.33.3调试数据及波形调试数据及波形3.2.1 通道选择电压值通道显示值实测值测量误差00.0240.0660%10.5440.6820.00%21.111.3014.39%31.801.936.37%42.442.564.37%53.073.172.90%63.813.820.20%74.444.450.58%13021302 管脚波形图(仿真)管脚波形图(仿真)1302 管脚 51302 管脚管脚 61302 管脚管脚 73.43.4误差分析误差分析由于 PCB 板制作比较生疏,焊接工艺差导致电路的工作效率不高。C 语言基础差,程序过于冗长,有很多部分都是多余的,
33、使得电路工作效果不好。教学打铃系统采用 1302 时钟芯片效果比较稳定,从波形上面看,没有出现较大偏差。3.53.5结论结论本次设计要求实现多路巡回放大电路电压的测量及显示;实时显示时间并具有掉电保持功能。我们实现了设计的基本功能及多路巡回放大电路中扩展功能的一项,同时使电压采集部分的结果有较高的精度。4 总结总结 通过这个实验 培养了在单元电路设计,系统电路分析,整机联调,计算机辅助设计和信息处理等综合方面的能力;培养和提高学生的科研素质,工程意识和创新精神;学习一种单片机系统设计的方法;熟悉利用 protel99 软件设计硬件电路;学习实物电路的电装技术;熟悉利用 KEIL 软件编写编译 C51 源程序;学习利用万用表,示波器,信号源,电源等设备调试硬件,软件的方法;要求学生掌握硬件开发基本流程和软件开发基本流程。在长达 9 个周的学习实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毛皮制品制作工安全生产意识竞赛考核试卷含答案
- 船舶涂装工安全生产基础知识能力考核试卷含答案
- 模锻工操作规程水平考核试卷含答案
- 2025年陶瓷片状磷扩散沅项目发展计划
- 2025年特种装备电缆项目发展计划
- 2025年新能源扫路车项目发展计划
- 2025年雄激素及同化激素合作协议书
- 2026年智能SOS紧急按钮项目投资计划书
- 消防保卫方案及保证措施
- 选矿工年度考核试卷及答案
- 物理学科组长年终工作总结
- 子宫肌瘤超声表现课件
- 2025年公安招聘辅警考试笔试题库(含答案)
- 山东省潍坊市部分县市2024-2025学年高一下学期期中质量监测历史试题(解析版)
- 2025至2030中国HPLC系统和配件行业项目调研及市场前景预测评估报告
- GB 46034-2025公众聚集场所投入使用营业消防安全检查规则
- 监理归档资料培训课件
- 消防监督检查课件
- 2025年保安服务行业研究报告及未来发展趋势预测
- GB/T 9754-2025色漆和清漆20°、60°和85°光泽的测定
- 运输合同转包协议书范本
评论
0/150
提交评论