1、实现了通过小系统板上的按键设置放大器的增益等级,并在数码管与液晶屏上显示增益等级。具体指标:最低增益为0.1倍;最高增益大于1.5倍,共15个增益等级,以0.1为间隔;各等级的实际增益值与标准值比较,误差小于1%。2.3 系统的设计原理与分析2.3.1 系统的设计原理本系统是由单片机控制的增益可控放大器系统,可以根据用户的按键输入,通过单片机的处理,分别输出到数码管与液晶显示模块,以显示相应的增益等级,并输出信号来控制增益可控放大器电路模块,实现0.1倍到1.5倍,共个增益等级的电压输出。2.3.2 系统的总体结构系统总体结构如图2.1所示。系统的输入为四个按键输入与电压输入Vi。系统的运算处
2、理在单片机内完成。系统的输出分为三部分:数码管增益等级的显示,LCD增益等级的显示,增益可控放大器电路模块的输出增益电压Vo系统的通信由三条十芯的数据线来实现各个模块间的通信。图2.1 系统组成结构框图2.3.3 系统的功能1) 可控增益放大器:在单片机的控制下,将输入电压Vi按指定的增益等级增益到输出电压Vo。2) 键盘:共有四个按键,第一个按键使增益等级达到最大(1.5倍),第二个按键使增益等级达到最小(0.1倍),第三个按键使增益增大一个等级,第四个按键使增益减小一个等级。3) 数码管显示:显示具体的增益等级值(如“1.3”)4) 液晶显示:开机滚动画面显示,分两行显示增益等级值(如Am
3、plify scale:a= 1.3)3. 系统的硬件结构3.1 硬件总体结构硬件总体结构如图3.1所示。系统由三大部分组成:单片机小系统、增益可控放大器电路模块、液晶显示电路模块。其中单片机小系统主要包括单片机,按键,数码管与输入输出口,主要有信号输入,信号处理,控制信号输出等功能。增益可控放大器电路模块:实现在单片机的控制下将输入电压Vi增益到输出电压Vo的功能。液晶显示电路模块:实现在单片机的控制下,开机滚动画面和增益等级的显示功能。单片机小系统的控制信号通过单片机上的P3 25四个口输出到增益可控放大器电路模块,而单片机小系统与液晶显示电路模块间的通信则由8255的PA,PB口实现。图
4、3.1 系统硬件总体结构图3.2 描述3.2.1 功能描述1) 从单片机小系统接收4个控制信号2) 根据15种控制信号排出15种不同的电阻并联组合3) 将输入电压Vi根据增益等级增益到输出电压Vo3.2.2 接口定义本模块用IDC10插座与单片机小系统的P1插座通过IDC10扁平电缆连接,使插座上的7、8、9、10脚与单片机的P3的2、3、4、5口连接。另有两个一芯跳线棒,用于测量输入电压与输出电压。3.2.3 技术要求输入电压:-3V3V输出电压:-4.5V4.5V响应时间:s级3.2.4 集成电路管脚定义1)CD4066管脚定义:4066共有14个管脚,其中2个为电源端,其余12个为4组开
5、关,如图3.2所示。图3.3芯片4066管脚定义图21. 7,14号管脚为集成电路供电端,14号管脚接5V电压;7号管脚接地。2. 1,2,13号管脚控制一个开关,在本电路中控制电阻R1=10K。其中,1号,2号管脚为开关输入、输出端,13为控制端。3. 10,11,12号管脚控制一个开关,在本电路中控制电阻R2=5K。其中,10号,11号管脚为开关输入、输出端,12为控制端。4. 3,4,5号管脚控制一个开关,在本电路中控制电阻R3=2.5K。其中,3号,4号管脚为开关输入、输出端,5为控制端。5. 6,8,9号管脚控制一个开关,在本电路中控制电阻R4=1.25K。其中,8号,9号管脚为开关
6、输入、输出端,6为控制端。2)A741管脚定义:A741的管脚定义如图3.3所示:图3.3增益器A741管脚定义图34,7号管脚为集成电路供电端,7号管脚接5V电压;4号管脚接-5V电压。2,3号管脚为输入端子,2号管脚为反相输入端子接输入电压Vi,3号管脚为非反相输入端子接地6号管脚为输出端子,输出输出电压Vo。1,5号管脚为补偿调整端子,接10K的电位器。48号管脚为为空。3.2.5 实现方式初步实现方案:查阅资料后,由于要实现增益等级从0.1倍到1.5倍的变化,决定采用反相放大器来实现。反相放大器电路如图3.4所示。在反相输入端子经电阻Ri加入输入电压Vi,在输出端子得到输出电压Vo,其
7、增益倍数A=-,即Vo=-Vi 。5图3.4 反相放大器电路6考虑用4066中的4组开关的15种开闭合排列,与4个适当的电阻组成电阻组代替Ri,以实现增益等级的该变。有4个电阻串联与4个电阻并联两种方案,在查阅了4066 DATASHEET之后,发现开关的通路电阻较大,在200左右,如采用串联方案会造成较大的系统误差,故最终采用了4个电阻并联的方案,以减小误差。初步实现方案如图3.5所示。图3.5 初步实现方案示意图7具体电阻阻值确定:在查阅了4066 DATASHEET之后,发现开关的通路电阻较大,在200左右,而断路的电阻也非无穷大,在500K左右,为了减小误差,考虑使用1K到10K范围内
8、的电阻。将Rf固定为1K,经过进一步计算得:R1=10K,R2=5K,R3=2.5K,R4=1.25K, 各增益等级所需阻值与4个电阻组合具体情况如表3.1所示。增益等级各档的阻值(K)电阻的组合0.110.000R10.25.000R20.33.333R1/R20.42.500R30.52.000R1/R30.61.667R2/R30.71.429R1/R2/R30.81.250R40.91.111R1/R411.000R2/R41.10.909R1/R2/R41.20.833R3/R41.30.769R1/R3/R41.40.714R2/R3/R41.50.667R1/R2/R3/R4表3
9、.1各增益等级所需阻值与4个电阻组合表电路设计:实际的电路图设计如图3.6所示。图3.6 增益可控放大器电路模块的电路图设计P1为IDC10插座,P2为测量输入电压Vi的一芯跳线棒,P3为测量输出电压Vo的一芯跳线棒。U2A,U2B,U2C,U2D为4066的四组开关。R1, R2, R3, R4 对应图3.5中的R1, R2, R3, R4,R5为图3.5中反馈电阻Rf。阻值由上文计算所得。R6为10 K的电位器,接A741的1,5号管脚补偿调整端子,滑动端接-5V,起到微调作用,以减小误差。其电路如图3.7所示,其原理详见相关资料。图3.7 A741补偿调整电路示意图83.3 3.3.1
10、功能描述1. 接收单片机发出的指令与数据并反馈忙信息2. 开机滚动画面显示“Welcome to use this amplifer!”3. 分两行显示增益等级值(如增益等级值为1.3时显示 a= 1.33.3.2 接口定义本模块用两个IDC10插座与单片机小系统连接。插座1与单片机小系统的P5插座通过IDC10扁平电缆连接,使插座1上的6、7、8脚与8255PA的5、6、7口连接。插座2 与单片机小系统的P6插座通过IDC10扁平电缆连接,使插座2上的1-8脚与8255PB的0-7口连接。3.3.3 技术要求工作温度: -20 - 70工作电流:6080mA工作电压:4.25V9ms级3.3
11、.4 集成电路管脚定义液晶模块详细的管脚定义如表3.2所示引脚号符 号名 称功 能具体定义Vss接地0V2VDD电路电源5V接5V电压3VEE液晶驱动电压对比度调节接电位器滑动端4RS寄存器选择信号H:数据寄存器L:指令寄存器接8255的PA5口5R/W读/写信号读 L:写接8255的PA6口6E片选信号下降沿触发,锁存数据接8255的PA7口7-14DB0-DB7数据线数据传输接8255的PB0-7口表3.2液晶模块管脚定义表108255部分管脚定义:11由于8255管脚较多,本报告中仅就所涉及的管脚加以说明。PA0-7,8255的A并行数据口,其5、6、7号口连接液晶模块,输出控制指令PB
12、0-7,8255的B并行数据口,其0-7号口连接液晶模块,输出显示字符与指令并从液晶读入忙标注符。D0-7,8255数据线,双向三态,用来传送数据、控制字和状态字。本模块中8255工作在方式0下,控制PA,PB口的输入、输出状态。RESET,8255复位端,用于初始化8255。3.3.5 实现方式液晶模块的实现方案基本参照指导讲义上的做法。由于单片机的输入输出口有限,使用8255进行输入输出口的扩展,再将8255的PA与PB口与液晶电路模块连接。从而实现以单片机控制8255,再由8255传送指令与数据来控制液晶显示。实现方案如图3.8所示。图3.8 液晶模块初步实现方案示意图12实际的电路图设
13、计如图3.9所示。图3.9液晶模块的电路示意图13液晶模块的1号引脚接地,2号引脚接5V电压,3号引脚就调节对比度的电位器滑动端,电位器的另两端分别接5V电压与接地。液晶模块的3条控制线,4,5,6号引脚分别与插座1上的6、7、8脚相连,从而与8255PA的5、6、7口连接。液晶模块的8条数据线,7-14号引脚分别与插座2上的1-8脚相连,从而与8255PB的0-7口连接。4. 系统的软件结构4.1 软件总体结构和功能软件总体结构:软件总体结构的框图如图4.1所示。液晶重新初始化图4.1 软件总体结构框图软件功能:1. 检测用户的按键,做出响应2. 计算当前的增益等级3. 控制单片机输出控制信
14、号4. 控制数码管显示相应的增益等级5. 控制液晶显示开机滚动字幕与相应的增益等级 软件模块:系统主要由timer1,timer0两个定时器中断构成。Timer1实现液晶的初始化和开机滚动字幕显示。Timer0实现放大器增益等级的输入,控制信号的输出与相应的数码管和液晶的相应显示。4.2 重要的全局变量1)按键定义:单片机P1 03口,对应单片机小系统板上自左向右四个按键sbit KEY1=P10;sbit KEY2=P11;sbit KEY3=P12;sbit KEY4=P13;2)输出端口定义:单片机P3 25口,CD4066 四个开关控制输出口,对应四个并联的电阻sbit R1=P32;
15、sbit R2=P33;sbit R3=P34;sbit R4=P35;3)存储器映象地址定义:14ADDR_8SEG XBYTE0x2000:数码管段驱动寄存器地址ADDR_SEL XBYTE0x4000:数码管位驱动和指示灯驱动寄存器地址PA XBYTE0xE000:8255 PA口寄存器地址PB XBYTE0xE001:8255 PB口寄存器地址CONTROL XBYTE0xE003:8255 控制字寄存器地址4.3 流程逻辑程序的流程逻辑如图4.2所示。图4.2 软件流程逻辑图在系统初始化后,随即进入定时中断1中,反复循环直到检测到有任意按键按下,跳出定时中断1循环,进入定时中断0的循
16、环中。4.4 4.4.1 功能描述实现液晶的初始化和开机滚动字幕显示功能。滚动字幕显示“Welcome to use this amplifer!” 每0.5秒字幕整体向左移一位,以达到滚动的效果。4.4.2 输入输出项描述输入:按任意键跳出开机滚动字幕状态,进入定时中断0的主循环中。输出:液晶屏第一行滚动显示“Welcome to use this amplifer!4.4.3 数据结构 1) 寄存器:2) 全局变量:unsigned char bdata busy:8255 PB口输入输出缓存,可位寻址最高位 sbit BF = busy7unsigned char pos:液晶输出位置指
17、针sbit RST=P14: 8255 复位端变量 3) 记录状态变量: unsigned char count1:液晶移位时间间隔计数器 4.4.4 调用函数说明timer1() interrupt 3 using 0功能:定时中断1,每5ms进入中断无详细说明:定时器1从初始的EE00开始计数直到FFFF溢出,进入中断。void initialize()液晶初始化,清屏,清除显示缓存区内容函数流程如图4.3所示。图4.3 initialize()函数流程图15void wait_busy();液晶忙信号检测与等待函数流程如图4.4所示。图4.4 wait_busy()函数流程图16由于要从
18、液晶模块读入标志位BF,需要将8255 B口改为输入状态,并在BF=0时,改回输出状态,需要改变D0-7控制字,如表4.1所示。控制字A口B口D7D6D5D4D3D2D1D0十六进制80H输出82H输入 表4.1 8255在方式0在输入/输出组合17void lcdpos();液晶输出位置控制pos 位置指针右移或换行当一行满了16个字符则换行,否则右移一位。void lcdoutput(char n);液晶屏输出字符 n字符 n液晶屏上显示字符n先调用lcdpos()确定显示字符的位置,然后再将显示指令与要显示的数据传给液晶4.4.5 流程图定时中断1的流程图如图4.3所示。图4.3 定时中
19、断1的流程图4.5 4.5.1 功能描述实现放大器增益等级的输入,控制信号的输出与相应的数码管和液晶的相应显示。4.5.2 输入输出项描述键盘共有四个按键,第一个按键使增益等级达到最大(1.5倍),第二个按键使增益等级达到最小(0.1倍),第三个按键使增益增大一个等级,第四个按键使增益减小一个等级(循环进行)。数码管显示:液晶显示:开机滚动画面显示,分两行显示增益等级值 a= 1.34.5.3 数据结构1. 寄存器:2. 全局变量:unsigned char bdata output_sel; 数码管位驱动和指示灯驱动信号输出缓存可位寻址的变量18 sbit led_1 = output_se
20、l5; sbit led_2 = output_sel6; sbit led_3 = output_sel7; sbit led_4 = output_sel4;unsigned char digi_scaner:数码管扫描驱动指针unsigned char digi4:数码管4位输出数组变量,十进制表示,unsigned char count:增益倍数变量3. 记录状态变量: unsigned char time:按键检测时间间隔计数器4.5.4 调用函数说明timer0() interrupt 1 using 0定时中断0,每5ms进入中断void keyboard();每0.15秒检测按
21、键,使相应的指示灯亮,digi变为相应的数值,并将增益倍数变量count改变到相应的值键盘输入数码管4位输出数组变量digi,增益倍数变量count改变到相应的值void switch_output();由增益倍数变量count,计算CD4066 控制输出口的输出值增益倍数变量 countCD4066 控制输出口的信号R1,R2,R3,R4unsigned char NUMTOSEG7(unsigned char DATA) 197段数码显示译码 需要显示的数字或符号DATA7段译码结果 ( D70 = PGFEDCBA )void digital_output();20经NUMTOSEG7(
22、DATA)译码,动态扫描数码管4位显示数码管4位输出数组变量digi数码管4位显示4.5.5 流程图定时中断0的流程图如图4.4所示。图4.4 定时中断0的流程图5. 系统功能及技术指标测试5.1 测试项目1. 测试增益放大器的增益等级,输出从0.1到1.5的15不同等级。2. 数码管显示相应的增益等级值(如“1.3”)3. 液晶板显示开机滚动字幕,以及同步显示增益放大系数。4. 按键具备应有的功能:第一个按键使增益等级达到最大(1.5倍),第二个按键使增益等级达到最小(0.1倍),第三个按键使增益增大一个等级,第四个按键使增益减小一个等级(循环进行),按键灵敏度检测。5.2 测试的资源测试设
23、备:直流稳压电源1V,5V,-5V、万用表、电脑测试环境:电信群楼4-105实验室5.3 测试方法在接口处分别接入1V左右(输入电压Vi),5V和-5V(为a741供电),万用表接在输出端测量电压。通过按键改变增益值,计算增益倍数以及增益误差是否符合规定。同时测试液晶屏与数码管所显示的信息是否和当前输出电压相同并检测按键的灵敏度。5.4 测试结果及分析实测增益值和与标准值误差分析如表5.1所示。输入电压(V)输出电压(V)显示增益实测增益误差(%)0.99970.0992-0.7702%0.99950.20020.20030.1501%0.3010.30120.3835%0.99930.399
24、40.3997-0.0801%0.50010.50050.0901%0.99920.6010.60150.2469%70.70170.70230.3231%80.99910.80620.80690.8658%90.9990.90680.90770.8564%100.99891.00771.01.00880.8810%110.99881.10831.10960.8756%120.99871.20641.20800.6642%130.99861.3071.30880.6794%140.99851.40781.40990.7082%151.50851.51060.7077%表5.1 实测增益值和与标准值误差分析测试结果分析:增益误差均在1%之内符合要求,液晶板与数码管显示达到设计要求,按键灵敏度稍欠,但功能正常
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1