数字电压表课程设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计实验报告
学校及学院:苏州大学城市轨道交通学院
班级: 10控制
学号: 1042402025 姓名:张炎峰
1、了解和学习如何去设计数字电压表电路;
2、学习如何对多个设计方案进行比较分析,选出最优方案;
3、在手工焊接电路的同时提高自己的焊接技术;
4、对在测试过程中出现得各种问题,通过其现象找出错误的原因并进行修复,在帮别人检查修复电路的同时提高自己对该电路的深入了解;
二、设计方案
(一)、方案一
1、电路原理图
2、电路局部分析
A、基准电压电路
MC1403芯片分析
NC:此引脚无实际用处。
当Vin脚输入电压为5V时,V out 脚
输出电压为2.5V。
在V out管脚处接电位器,通过调整
电位器调整芯片ICL7135的2、3脚之间的电压至1V
作为ICL7135的芯片的基准电压。在最后的调试过程
中,通过调整基准电压,来逐渐调整数字电压表的准
B、振荡电路及时钟电路
在无输入信号(xi=0)
时,电路中的噪扰电压使放大器产生瞬
间输出x'o,经反馈网络反馈到输入端,
得到瞬间输入xd,再经基本放大器放大,
又在输出端产生新的输出信号x'o,如此
反复。在无反馈或负反馈情况下,输出
x'o会逐渐减小,直到消失。但在正反馈
情况下,x'o会很快增大,最后由于饱和
等原因输出稳定在xo,并靠反馈永久保
持下去。
C、与数码管有关的显示电路
将数码管的所有的a脚连在一起,所有的b脚连在一起,c、d、e、f、g也是如此,这些脚最后全部连到74LS47的9~15脚,按原理图连接。理论分析如下:数码管的控制包括两部分:段选信号和片选信号。当片选信号选通的时候,段选信号输入到数码管管脚处时,就能显示我们所需要的数字,其他没有选通信号的数码管,即使有段选信号,其也不能显示。数码管的工作顺序:片选信号选通对应位置处的数码管,段选信号对数码管输入要显示的数字信号,片选信号再选通其他数码管,段选信号输入数字信号,如此循环,当切换频率较高时数码管的数字显示就会比较平稳而不会出现跳动。
对于最高位的数码管显示小数点,由于它要一直显示,所以通过对它直接接地,使小数点常亮。对于数码管最高位的显示,由于我们需要他在我们需要他显示0的时候都不亮,显示1的时候b、c需要亮。当最高位的数码管亮时,ICL7135的12脚处在高电平,电阻R5也就处在高电平,进而使T7三极管导通,使得74LS47芯片的5脚接地,使RBI 处于低电平,这时数码管管段就会关断,使得数码管在显示0的时候所有管段都熄灭。
对于数码管的片选信号来说,分析如下:当ICL7135输出给T1~T5三极管的基极的电压为高电平的时候,三极管导通,使得三极管集电极的+5V的电压得以加到数码管上,进而选通数码管。
(二)、方案二
基于单片机制作的数字电压表
此图为单片机制作的数字电压表局部电路图。数字电压表单片机程序如下:
#include
#include"Config.h"
uchar table1[]="0123456789 V.mA";
uchar flag=0,flag1,flag2,aa;
uint num,A;
uchar A4,a1,a2,a3,a4;
uchar b1,b2,b3,b4,B1,B2,B3,B4;
uchar N1,N2,N3,N4;
unsigned long int num1,num2;
void out_init()
{
KEYSEL=0x00;
KEYDIR=0x0f;
KEYOUT=0xf0;
LED8SEL=0x00;
LED8DIR=0x00;
LED8OUT=0xff;
DATASEL=0x00;
DATADIR=0xff;
DATAOUT=0xff;
P5SEL = 0x00;
P5DIR|= BIT5 + BIT6 + BIT7;
CTRSEL=0x00;
CTRDIR=0x18;
CTROUT=0xff;
}
//********************************************************************* // 显示屏命令写入函数
//********************************************************************* void LCD_write_com(unsigned char com)
{
RS_CLR;
RW_CLR;
EN_SET;
DataPort = com; //命令写入端口
delay_ms(5);
EN_CLR;
}
//********************************************************************* // 显示屏数据写入函数
//********************************************************************* void LCD_write_data(unsigned char data)
{
RS_SET;
RW_CLR;
EN_SET;
DataPort = table1[data]; //数据写入端口
delay_ms(5);
EN_CLR;
}
//********************************************************************* // 显示屏清空显示
//********************************************************************* void LCD_clear(void)
{
LCD_write_com(0x01); //清屏幕显示
delay_ms(5);
}
//*********************************************************************