简易数字电压表 河北工程
- 格式:docx
- 大小:1.78 MB
- 文档页数:23
信息与电气工程学院
课程设计说明书
(2012 /2013学年第二学期)
课程名称:单片机应用
题目:简易直流数字电压表
专业班级:自动化10-**
学生姓名:***
学号:*********
指导教师:苗敬利等
设计周数: 2周
设计成绩:
2013年 6 月 26 日
目录
1. 课设目的 ............................. 错误!未定义书签。
1.1. 设计意义.................................................错误!未定义书签。
1.2. 系统功能要求.............................................错误!未定义书签。
2 方案设计 ............................................. .1
2.1 系统的设计任务...........................................2
2.2 软硬件开发环境............................................4
3 硬件设计 .............................................. 5
3.1 CD4511简介............................................. .5
3.2 CD4511引脚图真值表.......................................6
3.3 AD转换 ..............................................7
4 软件设计 ............................................. 7
4.1 主程序设计...............................................7
4.2 模块程序设计.............................................8
5 系统调试与仿真 ..................................... 8-11
6 课程设计总结 ...................................... 11-13
7 附录 ................................. 错误!未定义书签。
附录7.1 硬件原理图..........................................15
附录7.2程序清单............................................16
8 参考文献
.............................................17
9 元件清单..............................................17
附表
1:课程设计目的
1.1.1设计意义:
用STC90C52AD单片机作为核心控制器,设计简易直流电压表。合理分配地址,编写系统程序。我们这里设计的简易直流电压表没有使用特别多的、复杂的元器件,只是一个单片机控制系统和数码管附加驱动器件。
1.1.2系统功能要求
我们利用单片机内部AD转换,通过C语言编程,实现将由电位器采集的模拟电量,(0V-5V)转换为数字电量,然后通过数码管显示。它的特点是电路简单、制作方便、操作简单、性能可靠。
2:方案设计
2.1:系统设计任务:
基于STC90C52AD单片机的最小系统设计,设计简易直流电压表,3位数码管显示控制方案
①确定总体设计方案;②设计显示电路;③合理分配地址,编写系统程序;④利用Protel设计硬件原理图;⑥软硬件联机调试。
2.1.1:开发软件Keil C51 uVision3简介
Keil uVISION2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS-51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持、PLM、汇编和C语言的程序设计,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。Keil C51集成开发环境主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和输出窗口五部分组成。
工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本操作。建造工具栏主要包括文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。调试工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。在工具栏下面,默认有三个窗口。左边的工程窗口包含一个工程的目标(target)、组(group)和项目文件。右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,我们可在这里对源文件进行编辑、修改、粘贴等。
下边的为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误(包括错误类型及行号)的提示。如果通过则会生成“HEX”格式的目标文件,用于仿真或烧录芯片。基本环境如图2-1所示:
MCS-51单片机软件Keil C51开发过程为: ①建立一个工程项目,选择芯片,确定选项。 ②建立汇编源文件或C源文件。 ③用项目管理器生成各种应用文件。 ④检查并修改源文件中的错误。
⑤编译连接通过后进行软件模拟仿真或硬件在线仿真。
2.2:单片机程序烧写软件
STC90C52AD系列单片机大部分具有在系统可编程特性,单片机在用户系统上即可现在烧录用户程序,而无需将单片机从已经生产好的产品上拆下,在用通用编程器进行烧写程序。大部分STC90C50AD系列单片机在销售给用户之前已经在单片机系统内部固化啦ISP系统引导程序配合PC端得控制程序即可将用户的程序代码下载进单片机内部,故无需编程器烧写程
显示电路中单片机STC90C52AD的P2口,通过总线驱动74LS245直接驱动8段数码管,
完成字形码的输出(字形选择)。而P1.0-P1.2控制3位数码管的位选信号。当P1.0-P1.2为低电平时PNP的三极管选通,通过给P2口赋不同的段选值,数码管显示不同的数字。低电平点亮数码管。
由于各位的段码线并联,P2口输出的段码对各个显示位来说都是相同的,但是数字电压表要求第一位带有小数点,所以第一个数码管要对小数点显示程序进行设计。
数码管动态显示,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选处于关闭状态,这样,在同一时刻,3位LED中只有选通的那一位显示出字符,而其他三位则是熄灭的。同样,虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED显示器的余晖和人眼的视觉暂留作用,每位显示间隔时间较短,造成各位同时亮的假象,达到显示的效果。
3:CD4511
3.1:
CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码—七段码译码器,特点:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED显示器。
CD4511 是一片 CMOS BCD—锁存/7 段译码/驱动器,引脚排列如图 2 所示。其中a b c d 为 BCD 码输入,a为最低位。LT为灯测试端,加高电平时,显示器正常显示,加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时, B1端应加高电平。另外 CD4511有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐。LE是锁存控制端,高电平时锁存,低电平时传输数据。a~g是 7 段输出,可驱动共阴LED数码管。另外,CD4511显示数“6”时,a段消隐;显示数“9”时,d段消隐,所以显示6、9这两个数时,字形不太美观 图3是 CD4511和CD4518配合而成一位计数显示电路,若要多位计数,只需将计数器级联,每级输出接一只 CD4511 和 LED 数码管即可。所谓共阴 LED 数码管是指 7 段 LED 的阴极是连在一起的,在应用中应接地。限流电阻要根据电源电压来选取,电源电压5V时可使用300Ω的限流电阻。
3.2
3.3.
4.软件设计
4.1.主程序设计
4.2:数码显示模块程序如下:
void display(ulong i)//数码管显示函数
{
uint a=0,b=0; uchar table0[10]={0X21,0X7D,0X13,0X19,0X4D, 0X89,0X81,0X3D,0X01,0X09}; //0~9段码
uchar table1[3]={0XFE,0XFD,0XFB}; //三个数码管的位码
uchar table2[3]={0,0,0}; t
able2[0]=i/100;
table2[1]=i%100/10;
table2[2]=i%10;
for(b=0;b<50;b++)
{
for(a=0;a<3;a++)
{
P0=table1[a];
P2=table0[table2[a]];
if(a==0)
P2=table0[table2[a]]-0X01; //是第一个数后面显示小数点
delay(1);
}
}
}
LED灯显示通过P1口连接,当P1口给低电平时,灯亮。