科技创新2A第5组设计报告 液晶Word文档格式.docx
《科技创新2A第5组设计报告 液晶Word文档格式.docx》由会员分享,可在线阅读,更多相关《科技创新2A第5组设计报告 液晶Word文档格式.docx(44页珍藏版)》请在冰豆网上搜索。
实现了通过小系统板上的按键设置放大器的增益等级,并在数码管与液晶屏上显示增益等级。
具体指标:
最低增益为0.1倍;
最高增益大于1.5倍,共15个增益等级,以0.1为间隔;
各等级的实际增益值与标准值比较,误差小于1%。
2.3系统的设计原理与分析
2.3.1系统的设计原理
本系统是由单片机控制的增益可控放大器系统,可以根据用户的按键输入,通过单片机的处理,分别输出到数码管与液晶显示模块,以显示相应的增益等级,并输出信号来控制增益可控放大器电路模块,实现0.1倍到1.5倍,共15个增益等级的电压输出。
2.3.2系统的总体结构
系统总体结构如图2.1所示。
系统的输入为四个按键输入与电压输入Vi。
系统的运算处理在单片机内完成。
系统的输出分为三部分:
数码管增益等级的显示,LCD增益等级的显示,增益可控放大器电路模块的输出增益电压Vo
系统的通信由三条十芯的数据线来实现各个模块间的通信。
图2.1系统组成结构框图
2.3.3系统的功能
1)可控增益放大器:
在单片机的控制下,将输入电压Vi按指定的增益等级增益到输出电压Vo。
2)键盘:
共有四个按键,第一个按键使增益等级达到最大(1.5倍),第二个按键使增益等级达到最小(0.1倍),第三个按键使增益增大一个等级,第四个按键使增益减小一个等级。
3)数码管显示:
显示具体的增益等级值(如“1.3”)
4)液晶显示:
开机滚动画面显示,分两行显示增益等级值(如"
Amplifyscale:
a=1.3"
)
3.系统的硬件结构
3.1硬件总体结构
硬件总体结构如图3.1所示。
系统由三大部分组成:
单片机小系统、增益可控放大器电路模块、液晶显示电路模块。
其中单片机小系统主要包括单片机,按键,数码管与输入输出口,主要有信号输入,信号处理,控制信号输出等功能。
增益可控放大器电路模块:
实现在单片机的控制下将输入电压Vi增益到输出电压Vo的功能。
液晶显示电路模块:
实现在单片机的控制下,开机滚动画面和增益等级的显示功能。
单片机小系统的控制信号通过单片机上的P32…5四个口输出到增益可控放大器电路模块,而单片机小系统与液晶显示电路模块间的通信则由8255的PA,PB口实现。
图3.1系统硬件总体结构图
3.2<
增益可控放大器电路模块>
描述
3.2.1功能描述
1)从单片机小系统接收4个控制信号
2)根据15种控制信号排出15种不同的电阻并联组合
3)将输入电压Vi根据增益等级增益到输出电压Vo
3.2.2接口定义
本模块用IDC10插座与单片机小系统的P1插座通过IDC10扁平电缆连接,使插座上的7、8、9、10脚与单片机的P3的2、3、4、5口连接。
另有两个一芯跳线棒,用于测量输入电压与输出电压。
3.2.3技术要求
输入电压:
-3V~3V
输出电压:
-4.5V~4.5V
响应时间:
μs级
3.2.4集成电路管脚定义
1)CD4066管脚定义:
4066共有14个管脚,其中2个为电源端,其余12个为4组开关,如图3.2所示。
图3.3芯片4066管脚定义图[2]
1.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为控制端。
2)μA741管脚定义:
μA741的管脚定义如图3.3所示:
图3.3增益器μA741管脚定义图[3]
4,7号管脚为集成电路供电端,7号管脚接5V电压;
4号管脚接-5V电压。
2,3号管脚为输入端子,2号管脚为反相输入端子接输入电压Vi,3号管脚为非反相输入端子接地
6号管脚为输出端子,输出输出电压Vo。
1,5号管脚为补偿调整端子,接10KΩ的电位器。
[4]
8号管脚为为空。
3.2.5实现方式
初步实现方案:
查阅资料后,由于要实现增益等级从0.1倍到1.5倍的变化,决定采用反相放大器来实现。
反相放大器电路如图3.4所示。
在反相输入端子经电阻Ri加入输入电压Vi,在输出端子得到输出电压Vo,其增益倍数A=-
,即Vo=-
Vi。
[5]
图3.4反相放大器电路[6]
考虑用4066中的4组开关的15种开闭合排列,与4个适当的电阻组成电阻组代替Ri,以实现增益等级的该变。
有4个电阻串联与4个电阻并联两种方案,在查阅了4066DATASHEET之后,发现开关的通路电阻较大,在200Ω左右,如采用串联方案会造成较大的系统误差,故最终采用了4个电阻并联的方案,以减小误差。
初步实现方案如图3.5所示。
图3.5初步实现方案示意图[7]
具体电阻阻值确定:
在查阅了4066DATASHEET之后,发现开关的通路电阻较大,在200Ω左右,而断路的电阻也非无穷大,在500KΩ左右,为了减小误差,考虑使用1KΩ到10KΩ范围内的电阻。
将Rf固定为1KΩ,经过进一步计算得:
R1=10KΩ,R2=5KΩ,R3=2.5KΩ,R4=1.25KΩ,各增益等级所需阻值与4个电阻组合具体情况如表3.1所示。
增益等级
各档的阻值(KΩ)
电阻的组合
0.1
10.000
R1
0.2
5.000
R2
0.3
3.333
R1//R2
0.4
2.500
R3
0.5
2.000
R1//R3
0.6
1.667
R2//R3
0.7
1.429
R1//R2//R3
0.8
1.250
R4
0.9
1.111
R1//R4
1
1.000
R2//R4
1.1
0.909
R1//R2//R4
1.2
0.833
R3//R4
1.3
0.769
R1//R3//R4
1.4
0.714
R2//R3//R4
1.5
0.667
R1//R2//R3//R4
表3.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为10KΩ的电位器,接μA741的1,5号管脚——补偿调整端子,滑动端接-5V,起到微调作用,以减小误差。
其电路如图3.7所示,其原理详见相关资料。
图3.7μA741补偿调整电路示意图[8]
3.3<
液晶显示电路模块>
3.3.1功能描述
1.接收单片机发出的指令与数据并反馈忙信息
2.开机滚动画面显示“Welcometousethisamplifer!
”
3.分两行显示增益等级值
(如增益等级值为1.3时显示"
a=1.3"
3.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℃
工作电流:
60∽80mA
工作电压:
4.2∽5V[9]
ms级
3.3.4集成电路管脚定义
液晶模块详细的管脚定义如表3.2所示
引脚号
符号
名称
功能
具体定义
Vss
接地
0V
2
VDD
电路电源
5V
接5V电压
3
VEE
液晶驱动电压
对比度调节
接电位器滑动端
4
RS
寄存器选择信号
H:
数据寄存器
L:
指令寄存器
接8255的PA5口
5
R/W
读/写信号
读L:
写
接8255的PA6口
6
E
片选信号
下降沿触发,锁存数据
接8255的PA7口
7-14
DB0-DB7
数据线
数据传输
接8255的PB0-7口
表3.2液晶模块管脚定义表[10]
8255部分管脚定义:
[11]
由于8255管脚较多,本报告中仅就所涉及的管脚加以说明。
PA0-7,8255的A并行数据口,其5、6、7号口连接液晶模块,输出控制指令
PB0-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]
实际的电路图设计如图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.控制单片机输出控制信号
4.控制数码管显示相应的增益等级
5.控制液晶显示开机滚动字幕与相应的增益等级
软件模块:
系统主要由timer1,timer0两个定时器中断构成。
Timer1实现液晶的初始化和开机滚动字幕显示。
Timer0实现放大器增益等级的输入,控制信号的输出与相应的数码管和液晶的相应显示。
4.2重要的全局变量
1)按键定义:
单片机P10…3口,对应单片机小系统板上自左向右四个按键
sbitKEY1=P1^0;
sbitKEY2=P1^1;
sbitKEY3=P1^2;
sbitKEY4=P1^3;
2)输出端口定义:
单片机P32…5口,CD4066四个开关控制输出口,对应四个并联的电阻
sbitR1=P3^2;
sbitR2=P3^3;
sbitR3=P3^4;
sbitR4=P3^5;
3)存储器映象地址定义:
[14]
ADDR_8SEGXBYTE[0x2000]:
数码管段驱动寄存器地址
ADDR_SELXBYTE[0x4000]:
数码管位驱动和指示灯驱动寄存器地址
PAXBYTE[0xE000]:
8255PA口寄存器地址
PBXBYTE[0xE001]:
8255PB口寄存器地址
CONTROLXBYTE[0xE003]:
8255控制字寄存器地址
4.3流程逻辑
程序的流程逻辑如图4.2所示。
图4.2软件流程逻辑图
在系统初始化后,随即进入定时中断1中,反复循环直到检测到有任意按键按下,跳出定时中断1循环,进入定时中断0的循环中。
4.4<
定时中断1>
4.4.1功能描述
实现液晶的初始化和开机滚动字幕显示功能。
滚动字幕显示“Welcometousethisamplifer!
”每0.5秒字幕整体向左移一位,以达到滚动的效果。
4.4.2输入输出项描述
输入:
按任意键跳出开机滚动字幕状态,进入定时中断0的主循环中。
输出:
液晶屏第一行滚动显示“Welcometousethisamplifer!
4.4.3数据结构
1)寄存器:
2)全局变量:
unsignedcharbdatabusy:
8255PB口输入输出缓存,可位寻址最高位
sbitBF=busy^7
unsignedcharpos:
液晶输出位置指针
sbitRST=P1^4:
8255复位端变量
3)记录状态变量:
unsignedcharcount1:
液晶移位时间间隔计数器
4.4.4调用函数说明
timer1()interrupt3using0
功能:
定时中断1,每5ms进入中断
无
详细说明:
定时器1从初始的EE00开始计数直到FFFF溢出,进入中断。
voidinitialize()
液晶初始化,清屏,清除显示缓存区内容
函数流程如图4.3所示。
图4.3initialize()函数流程图[15]
voidwait_busy();
液晶忙信号检测与等待
函数流程如图4.4所示。
图4.4wait_busy()函数流程图[16]
由于要从液晶模块读入标志位BF,需要将8255B口改为输入状态,并在BF=0时,改回输出状态,需要改变D0-7控制字,如表4.1所示。
控制字
A口
B口
D7
D6
D5
D4
D3
D2
D1
D0
十六进制
80H
输出
82H
输入
表4.18255在方式0在输入/输出组合[17]
voidlcdpos();
液晶输出位置控制
pos位置指针右移或换行
当一行满了16个字符则换行,否则右移一位。
voidlcdoutput(charn);
液晶屏输出字符n
字符n
液晶屏上显示字符n
先调用lcdpos()确定显示字符的位置,然后再将显示指令与要显示的数据传给液晶
4.4.5流程图
定时中断1的流程图如图4.3所示。
图4.3定时中断1的流程图
4.5<
定时中断0>
4.5.1功能描述
实现放大器增益等级的输入,控制信号的输出与相应的数码管和液晶的相应显示。
4.5.2输入输出项描述
键盘共有四个按键,第一个按键使增益等级达到最大(1.5倍),第二个按键使增益等级达到最小(0.1倍),第三个按键使增益增大一个等级,第四个按键使增益减小一个等级(循环进行)。
数码管显示:
液晶显示:
开机滚动画面显示,分两行显示增益等级值
a=1.3"
4.5.3数据结构
1.寄存器:
2.全局变量:
unsignedcharbdataoutput_sel;
数码管位驱动和指示灯驱动信号输出缓存可位寻址的变量[18]
sbitled_1=output_sel^5;
sbitled_2=output_sel^6;
sbitled_3=output_sel^7;
sbitled_4=output_sel^4;
unsignedchardigi_scaner:
数码管扫描驱动指针
unsignedchardigi[4]:
数码管4位输出数组变量,十进制表示,
unsignedcharcount:
增益倍数变量
3.记录状态变量:
unsignedchartime:
按键检测时间间隔计数器
4.5.4调用函数说明
timer0()interrupt1using0
定时中断0,每5ms进入中断
voidkeyboard();
每0.15秒检测按键,使相应的指示灯亮,digi[]变为相应的数值,并将增益倍数变量count改变到相应的值
键盘输入
数码管4位输出数组变量digi[],增益倍数变量count改变到相应的值
voidswitch_output();
由增益倍数变量count,计算CD4066控制输出口的输出值
增益倍数变量count
CD4066控制输出口的信号R1,R2,R3,R4
unsignedcharNUMTOSEG7(unsignedcharDATA)[19]
7段数码显示译码
需要显示的数字或符号DATA
7段译码结果(D7~0=PGFEDCBA)
voiddigital_output();
[20]
经NUMTOSEG7(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测试的资源
测试设备:
直流稳压电源1V,5V,-5V、万用表、电脑
测试环境:
电信群楼4-105实验室
5.3测试方法
在接口处分别接入1V左右(输入电压Vi),5V和-5V(为μa741供电),万用表接在输出端测量电压。
通过按键改变增益值,计算增益倍数以及增益误差是否符合规定。
同时测试液晶屏与数码管所显示的信息是否和当前输出电压相同并检测按键的灵敏度。
5.4测试结果及分析
实测增益值和与标准值误差分析如表5.1所示。
输入电压(V)
输出电压(V)
显示增益
实测增益
误差(%)
0.9997
0.0992
-0.7702%
0.9995
0.2002
0.2003
0.1501%
0.301
0.3012
0.3835%
0.9993
0.3994
0.3997
-0.0801%
0.5001
0.5005
0.0901%
0.9992
0.601
0.6015
0.2469%
7
0.7017
0.7023
0.3231%
8
0.9991
0.8062
0.8069
0.8658%
9
0.999
0.9068
0.9077
0.8564%
10
0.9989
1.0077
1.0
1.0088
0.8810%
11
0.9988
1.1083
1.1096
0.8756%
12
0.9987
1.2064
1.2080
0.6642%
13
0.9986
1.307
1.3088
0.6794%
14
0.9985
1.4078
1.4099
0.7082%
15
1.5085
1.5106
0.7077%
表5.1实测增益值和与标准值误差分析
测试结果分析:
增益误差均在±
1%之内符合要求,液晶板与数码管显示达到设计要求,按键灵敏度稍欠,但功能正常