基于51单片机的电压采集与显示系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
题目:51单片机的电压采集与显示系统设计专业:电气工程及其自动化
班级:
学号:
学生姓名:
指导教师:
2010 年 9 月5 日
摘要
随着电子科技的不断发展与进步,电压测量成为广大电子领域中必须掌握的过程,并且对测量的精度和采集功能的要求也越来越高,而电压的测量与显示系统甚为重要。
本文介绍的重点是电压数据的采集与显示系统,数据采集与通信控制采用了模块化的设计,数据采集与通信控制采用了单片机8051来实现,硬件部分是以单片机为核心,还包括模-数转换模块,显示模块,和串行接口部分,还有一些简单的外围电路。
8路被测电压通过通用ADC0809模-数转换,实现对采集到的数据进行模拟量到数字量的转换,由单片机对数据进行处理,用数码管显示模块来显示所采集的结果,由相关控制器完成数据接收和显示,VB程序编写了更加明了化数据显示界面。
本系统主要包括四大模块:数据采集模块、控制模块、显示模块、A/D转换模块。
绘制电路原理图与工作流程图,并进行调试,最终设计完成了该系统的硬件电路。
在软件编程上,采用了C语言进行编程,开发环境使用相关集成开发环境。
开发了显示模块程序、通道切换程序、A/D转换程序。
关键词:单片机, ADC0809,A/D转换,模块显示电压测量
Abstract
Along with the development of electronic technology progress, voltage measurement of electronic fields become broad must grasp of the process, and the accuracy of measurement and collection function requirements, and more and more is also high voltage measurement and display system is very important. This paper focuses on voltage data acquisition and display system, data collection and communication control using modular design, data collection and communication control adopted MCU 8051, hardware part is, still include singlechip mode - several conversion module, display module, and the serial interface, and some simple outer circuit.
8 and the voltage to be measured by general ADC0809 mode - and to count the collected data for analog to digital, by SCM processing of data, using a digital display module to show the tube, the related results of collecting data receiving and display controller, VB programming and the data showed that the interface. This system mainly including four modules: the data acquisition module, control module, display module, A/D conversion module. Draw circuit principle diagram and the work flow, and debugging, finally completed the system design of hardware circuit. In software programming, the C language program development environment, use the integrated development environment. Develop A display module procedures, channel switching procedures, A/D conversion program..
Keywords: SCM, ADC0809, A/D conversion, module display voltage measurements.
目录
1引言 (6)
2课程设计题目、任务及要求及方案 (7)
3电路原理说明 (9)
3.1ADC0809模数转换芯片 (9)
3.2 AT89C51单片机 (10)
3.3八段数码管和74LS47 (10)
3.4 系统整体工作原理 (11)
3.4.1硬件原理 (11)
3.4.2软件原理分析 (12)
4设计总体框图 (16)
4.1硬件总体框图 (16)
4.2程序总体框图 (16)
4.3待测信号源单元电路 (17)
4.4 AT89C51单片机 (18)
4.5单片机控制单元 (19)
4.5.1外部时钟电路 (19)
4.5.2复位电路 (20)
4.5.3数码管显示模块 (21)
5调试报告 (22)
6 总结及设计心得 (23)
参考文献 (24)
附录.............................................. 2错误!未定义书签。
引言
数字电压表(Digital V oltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。
目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
本章重点介绍51单片机的电压采集与显示系统的基于单片机的数字电压表的工作原理,该设计首先简要介绍了设计电压表的主要方式以及单片机系统的优势;然后详细介绍了直流数字电压表的数据采集与显示的设计流程,以及硬件系统和软件系统的设计,并给出了硬件电路的设计细节,包括各部分电路的走向、芯片的选择以及方案的可行性分析等。
2课程设计题目、任务要求及方案
题目:基于51单片机的电压采集与显示系统的设计
(1)课程设计主要任务:
A、复习有关课程,例如数字电路、单片机等;
B、以89c51为核心,根据设计指标设计电路的框图;
C、根据要求设计出硬件电路图和软件装配图;
D、查阅资料,确定所需各元器件型号和相关技术参数;
E、拟定调整测试方法,并调试电路使其达到设计指标要求;
F、实现对电压的数据采集与显示,完成课程设计工作。
(2)课程设计的要求
A、以89c51单片机为核心芯片,采用ADC0809设计一个单通道模拟电压采集电路,
要求对所接通道变化的模拟电压值进行采集,采集来的数字量一路送至数码管指示,通过相关转换在数码管上精确显示出来;
B、能够对直流电压进行相应的采集和转换;
C、利用led对电压值进行显示,精确到小数点后两位;
D、设计系统的硬件与软件电路,并写出相关程序进行调试;
E、用相关软件(如PROTEL、VISIO制图软件)画出各个分电路;
F、完成对设计方案的论证,并做好分析和总结工作。
(3)课程设计的方案:
依据综合课程设计的要求,以51单片机为核心,采用ADC0809设计一个单通道模拟电压采集电路,要求对所接通道变化的模拟电压值进行采集,采集来的数字量一路送至数码管指示,通过相关转换在数码管上精确显示出来,每行显示5个数据,采集完100个数据后停止采集过程,显示的电压值可以保留到小数点后两位。
电压表的作用即是测直流电压的大小,通过对电压值的采集与处理,而由所学微控制器的知识可知,可以利用单片机的模数转换来实现这一设计,进一步把相应的电压值精确显示出来。
模数转换就是利用单片机控制模数转换芯片(A/D),让它对外部的一个模拟信号进行采
样、量化、编码然后转化为一个离散的数字量,提供给控制器作进一步处理。
对于常用的
A/D转换芯片有ADC0809、ADC0808等。
它们都是8位的模数转换芯片,就是把模拟量转换
为一个8位的二进制数。
利用单片机89c51与ADC0808设计一个数字电压表,将模拟信号0~
5 V之间的直流电压值转换成数字量信号0~FF,以数码管显示。
Protel软件启动仿真,当
前输入电压为2.5 0V,转换成数字值为7FH,用鼠标指针调节电位器尺,可改变输入模/数转换器ADc0808的电压,并通过虚拟电压表观察ADc0808模拟量输入信号的电压值,LED数码管实时显示相应的数值量。
此次电压表总体的方案就是用单片机的I/O口输出信号来控制A/D启动转换,将送入的模拟量转换为一个8位数字量,然后再通过I/O口送回单片机内部进行处理,单片机进行一系列的运算和校准后,通过数码管将电压值显示出来。
而在方案的实现上由两部分组成:硬件部分和软件部分。
硬件即电子元器件的选择且将它们连接成一个可行的硬件系统,软件是硬件系统功能化的重要组成部分。
硬件的设计可以在Protel,VISIO上进行,软件可以用Protel自带的汇编工具或是KEIL C51等工具编写C语言,然后在Protel将硬软件相结合,进行仿真,再根据结果不断对硬件进行改进,对软件进行调试,实现电压的采集与显示功能。
3电路原理说明
3.1 ADC0809模数转换芯片
ADC0809是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D 转换。
ADC0808是ADC0809的简化版本,功能基本相同。
一般在硬件仿真时采用ADC0808进行A/D 转换,实际使用时采用ADC0809进行A/D 转换。
DIP 封装的引脚如图1所示。
其内部结构如图11
引脚1~5,26~28(IN0~IN7):8路模拟量输入端。
引脚8,14,15,17~21:8位数字量输出端。
引脚22(ALE ):地址锁存允许信号,输入,高电平有效。
6脚(START ): A /D 转换启动脉冲输入端,输入一个正脉冲(至少100ns 宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D 转换)。
7
脚(EOC ): A /D 转换结束信号,输出,当A /D 转换结束时,此端输出一个高电平(转换期间一直为低电平)。
9脚(OE ):数据输出允许信号,输入,高电平有效。
当A /D 转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
10脚(CLK ):时钟脉冲输入端。
要求时钟频率不高于640KHZ. 12脚(VREF (+))、16(VREF (-)):参考电压输入端. 11脚(Vcc ):主电源输入端。
13脚(GND ):地。
引脚23~25(ADDA 、ADDB 、ADDC ):3位地址输入线,用于选通8路模拟输入中的一路.
IN3
IN4IN5IN6IN7EOC D3OE Vcc V1GND D1
3.2 AT89C52单片机
AT89C51是51系列的一个型号,它是ATMEL公司生产的。
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash 存储单元,AT89C51有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C51可以按照常规方法进行编程,但不可以在线编程。
AT89C51的主要功能特性有:兼容MCS51指令系统,8k可反复擦写(>1000次)Flash ROM ,32个双向I/O口,256x8bit 内部RAM,3个16位可编程定时/计数器中断,时钟频率0-24MHz,2个串行中断,可编程UART串行通道, 2个外部中断源,共8个中断源,2个读写中断口线,3级加密位,低功耗空闲和掉电模式 ,软件设置睡眠和唤醒功能。
而在本次设计中只需要用到最基本的4个输入输出I/O口功能。
通过汇编或是C语言编程,可以用指令对单片机的各输入输出进行控制,还可以进行各种基本运算。
3.3八段数码管和74LS47
八段数码管比七段数码管多路一位小数点,实际是8个LED摆放排列而成。
当特定的某几个数码管点亮时,就显示了特定的数字形状。
有共阳极和共阴极之分,共阳极是指8个输入端a、b、c、d、e、f、g、dp要输入低电平才会是相应LED点亮,共阴极则须输入高电平。
本次设计用的是共阳极的数码管。
图2是其结构原理图。
图2 八段数码管结构
74LS47译码芯片
74LS47是常用的BCD对七段显示器译码器/驱动器,可对共阳极七段数码管进行译码功能。
引脚图如图3所示例。
如当输入DCBA=0010 则输出abcdefg=0010010。
故使显示器显示"2"。
其四位BCD码与对应的译码及数码管显示关系为:
DCBA=0000,abcdefg=1000000,数码管显示0;
DCBA=0001,abcdefg=1111001,数码管显示1;
DCBA=0010,abcdefg=0100100,数码管显示2;
DCBA=0011,abcdefg=0110000,数码管显示3;
DCBA=0100,abcdefg=0011001,数码管显示4;
DCBA=0101,abcdefg=0010010,数码管显示5;
DCBA=0110,abcdefg=0000011,数码管显示6;
DCBA=0111,abcdefg=1111000,数码管显示7;
DCBA=1000,abcdefg=0000000,数码管显示8;
DCBA=1001,abcdefg=0011000,数码管显示9;
图3 74LS47芯片
3.4 系统整体工作原理
现对整体系统的硬件和软件工作原理进行分析。
3.4.1硬件原理
将各单元电路整合后可以得到完整的系统硬件电路,原理:由单片机的P3口的几根口线控制ADC0809的几个控制端,当P3口的几根口线依次输出地址选择、地址所存信号、开始(START)信号等的有效电平后,A/D被启动,从相应的模拟输入通道采入模拟量,并经行转换,转换完成后,AD的标志端口EOC有低电平变为高电平,单片机查询到这一状态后,
由P3.4对AD的OE置有效,使转换后的八位二进制数从锁存器中输出到单片机的P0口。
单片机内部对这一二进制数进行计算等必要处理后从P1口输出到数码管显示部分显示出来。
然后单片机启动A/D进行下一路通道的转换,这就是通过改变P0-P3输出到A/D的地址办到的。
地址不同,选择通道不同。
其它的控制方法不变。
本次设计只用到两路,故转换会在两路之间循环进行。
其中待测信号源由两个滑阻分压形成,改变滑线端位置,则分压改变,输入到A/D的模拟电压值变化。
滑阻的分压在0-10V变化,对此,可改变A/D的基准电压Vref (+),Vref(-)接地不变。
Vref(+)接5V时,则可对0-5V的电压进行准确的转换。
若超出,则转换后的值一直是8位1,即11111111。
不能正确量化。
此时,将Vref(+)接10V,则可对0-10V的模拟电压进行正确的量化转换。
由以上可知图中的双刀双掷开关实际上起到了电压表量程选择的作用。
一路开关选择5V或10V电压,另一路选择高低电平将与量程对应的信号传到单片机的P2.0口,达到对电压值的显示。
3.4.2软件原理分析
对上面的硬件部分,按照软件流程框图进行软件设计。
用C语言进行程序的编写。
程序如下:#include<reg52.h>
#define uc unsigned char
#define ui unsigned int
sbit L_OE=P3^4; //对各控制引脚进行定义;
sbit L_EOC=P3^5;
sbit L_ALE=P3^6;
sbit L_START=P3^7;
sbit L2=P2^0;
void delay(ui x) //延时子程序,延时时间由实参传值确定;
{uc i;
while(x--)
{for(i=0;i<10;i++) {;}
}
}
//主程序;
void main()
{ void display5in0(uc zhi); //各个子程序的声明,延时程序在前则不
必;void warning(uc zhi);
void display10in0(uc zhi);
void display5in1(uc zhi);
void display10in1(uc zhi);
void AD_IN0();
void AD_IN1();
uc aa,bb;
while(1) //设置大循环,模数转换不停进行;
{
AD_IN0(); //调用通道0转换子程序;
aa=P0; //将转换后的数字量给变量aa;
if(aa==0xff) //判断是否超出量程;
{warning(aa);} //超出则调用警告子程序;
else if(L2==0)display5in0(aa);/*判断量程,若是5V,则调用通道0的5V显示子程序;*/
else if(L2==1)display10in0(aa); //否则调用通道0的10V显示子程序;
AD_IN1();//通道1转换子程序;
bb=P0; //同上,将转换后的数字量传给变量bb;
if(bb==0xff) //判断是否超出量程;
{warning(bb);} //超出则警告;
else if(L2==0)display5in1(bb);/*判断量程,为5V则调用通道1的5V 显示程序;*/
else if(L2==1)display10in1(bb); //否则调用通道1的10V显示子程序;
}
}
//5V量程通道0显示程序;
void display5in0(uc zhi)
{
uc shu1,shu2;
zhi=zhi+3; //用准确电压表校准,对数字量稍加修正;
shu2=zhi/51; //对数字量除以256,再乘以量程5,则为显示值的个位;
shu2=shu2+0x20; /* 个位和片选信号相加,0x20是二进制0010 0000,对低四位BCD数据值不影响,即P1.5选中一片数码管点亮,方便的进行动态扫描;*/ shu1=zhi%51; //求上次运算的余数;
shu1=shu1/5; //余数乘以10,乘以5,再除以256,表示小数点位;
shu1=shu1+0x10; //四位BCD值加上片选信号,0x10选择P1.4对应数码管;
P1=shu2; //点亮一片数码管,显示个位数值,其它均关闭;
delay(1); //稍加延时,1毫秒以内;
P1=shu1; //点亮另一片数码管,显示小数位数值,其它的关闭;
delay(1); //稍加延时;
}
//10V量程通道0显示程序,各语句含义通上;
void display10in0(uc zhi)
{
uc shu3,shu4;
zhi=zhi+5;
shu4=zhi/26;
shu4=shu4+0x20;
shu3=zhi%26;
shu3=shu3/2.6;
shu3=shu3+0x10;
P1=shu4;
delay(1);
P1=shu3;
delay(1);
}
//5V量程通道1显示程序,同上;void display5in1(uc zhi)
{
uc shu5,shu6;
zhi=zhi+3;
shu6=zhi/51;
shu6=shu6+0x80;
shu5=zhi%51;
shu5=shu5/5;
shu5=shu5+0x40;
P1=shu6;
delay(1);
P1=shu5;
delay(1);
}
//10V量程通道1显示程序,同上;void display10in1(uc zhi)
{
uc shu7,shu8;
zhi=zhi+5;
shu8=zhi/26;
shu8=shu8+0x80;
shu7=zhi%26;
shu7=shu7/2.6;
shu7=shu7+0x40;
P1=shu8;
delay(1);
P1=shu7;
delay(1);
}
//超出量程警告程序,若判断超出量程,数码管显示零并闪烁;void warning(uc zhi)
{
P1=0xf0;
delay(3000);
P1=0xff;
delay(3000);
}
//通道0转换程序
void AD_IN0()
{
//通道0
P3=0; //通道0地址
L_ALE=1;//地址所存;
L_START=1; //启动转换;
L_START=0;
while(L_EOC!=1) //判断转换是否完成;
L_OE=1; //完成则输出数字量;
}//通道1转换程序,同通道0;
void AD_IN1()
{
P3=1;
L_ALE=1;
L_START=1;
L_START=0;
while(L_EOC!=1);
L_OE=1;
}
4设计总体框图
4.1硬件总体框图
该系统硬件总体框图由四个模块组成,如下图5所示。
在芯片的选择中,一般的A/D 芯片具有多路转换通道,我们可利用多路通道设计成多通道的直流电压表,对测量电压值进行采集与处理,进而比较准确的显示其大小。
我们还可以通过改变A/D芯片的参考电压来改变其量程,达到对电压值的多样化显示。
A/D芯片将输入的模拟电压值转换为一个8位的二进制数字,再输送到单片机控制单元,经过处理显示出相应电压值。
控制模块
图5
4.2程序总体框图
设计程序部分时,主要应包括主函数和和几个功能子函数。
根据电压表的特性,设计了A/D准换的子函数,包括通道0和通道1,还有数码管显示子函数,包括5V和10V量程两个。
程序总体框图如下图4所示。
图4 程序框图
4.3待测信号源单元电路
待测信号源就是直流电压表应用时,所须测电压值的信号源,实际上不属于电压表的内
3
部结构,但在此开发研究时,设计它以供仿真。
其电路图如图6所示。
IN0IN1
图6 待测信号源模块
该部分实际上是两个滑动变阻器均接在电源和地两端,中间的滑线端提供两路待测信号,这两路分别提供给模数转换的通道0和通道1。
4.4 AT89C51/52单片机(下图7所生)
图7 A T89C52单片机芯片
4.5单片机控制单元
单片机控制单元是整个系统的核心中枢,对外围进行控制,对数据进行运算处理,是连接各部分的纽带。
它主要包括51单片机芯片和其工作所必须的外围电路,如时钟振荡电路和复位电路等。
4.5.1外部时钟电路
主要是通过一个12MHZ的时钟晶振产生时钟信号,以作为单片机工作的外部时钟,其XTAL1和XTAL2分别接入到单片机上相对应的引脚。
电路图如图8。
XTAL1
30pF
12M HZ
XTAL2
30pF
图8 外部时钟电路
外部时钟的晶振频率为12MHZ,则通过该电路提供给单片机的时钟也为12MHZ.
4.5.2复位电路
当对单片机的的reset引脚加超过两个机器周期以上的高电平时,可使单片机复位,即程序从头开始执行。
设计的复位电路如图10所示:
1K
RST
1uF
8.2K
图10 复位电路
当按一次键后,形成的RC电路会使RST端的高电平保持两个机器周期以上,使单片机复位。
34
4.5.3数码管显示模块
选用了两片集成的共阳极数码管,每片是由两块8端数码管组成(包括小数点位)。
这四块8断数码管共用相同的数据输入线,每块有一根片选线,只有选中了该数码管,它才会点亮并显示。
而通过动态扫描原理可以使接在同一数据线的几块数码管显示不同的数。
其中的74LS47芯片是BCD转7段数码管的译码器。
在DCBA输入BCD码值,通过74LS47转换就可以在数码管上显示十进制数字。
其中有两块电压表起校准对比作用。
图9 数码管显示模块
5调试报告
在Protel仿真软件平台上搭建硬件电路,在keil uv2上编写软件并经编译连接生产可执行的.hex文件,把该文件添加到在Protel平台上搭建好的电路的单片机里。
运行进行仿真调试。
仿真时,两块数码管均有各自示数,在标准电压表的示数附近,说明各模块均在正常工作,只是软件上对数据的处理有待改善。
开始时,程序的显示子程序里没有修正的过程,仿真的结果精度不达要求:
例如,在5V量程下,标准电压表的显示值2.53V,而数码管显示2.40;标准电压表显示4.09V,数码管示值为3.9 2。
在10V量程则偏差更大。
据此在程序中对值进行修正,依照标准电压表进行尝试性修正,各显示子程序中的语句“zhi=zhi+3;”或“zhi=zhi+5;”等都是对偏小的结果进行的修正。
修正后发现,若在5V量程上测5V以内的模拟电压或是在10V量程上测5到10V电压,则能精确到小数点后两位:
如,5V时:标准电压表的显示值2.83V,而数码管显示2.80;标准电压表的显示值3.68V,而数码管显示3.71。
10V时:标准电压表的显示值6.84V,而数码管显示6.83;标准电压表的显示值7.27V,而数码管显示7.33;两路通道显示均如此,是四舍五入保留到小数点后两位的值。
同时发现,用5V量程测超出的电压时,数码管显示“00”并闪烁,说明警告程序工作。
此外若用10量程测5V以内的电压,则精确度大大下降,误差达到0.20V。
故为求精确,要求使用者用适当的量程测量待测电压,获得较高的精度。
此外,数码管在正常工作显示时,仍有一些闪烁跳动,这主要是因为用动态扫描法显示,而在两路通道间转换时,要等待每次转换完成,这之间的间隔超过1毫秒,使得测量值发生了变化,但总体上这不影响数码管显示和使用者的读数。
6 总结及设计心得
本次课程设计的内容是基于51单片机的直流电压采集与显示系统的设计,核心部分是模数转换及电压显示,这一知识点在本学期的教学过程中已经广泛应用,对模数转换芯片ADC0809有进一步了解,故我将此次设计的重点放在了功能的扩展部分模块的实现方法及显示的改变上。
大四学期教学实验中,通过网上资料及课本信息,我会会了简单的编程和设计最重要的是排版效果,此次,我在之前基础上,扩展了模数转换的通道,增添了量程选择功能,在数码管显示上,采用了动态扫描的方法,并且编程有汇编转变为C语言。
在这些过程中我获益匪浅:加深了对模数转换的了解,能对其功能进行多元化的应用;数码管的显示技术上,我在以前所存静态显示的基础上,又掌握了动态扫描方法,有利于简化硬件设施;另一个收获是在课程设计的过程中,我边学边用C语言,对简单的C语言编程能够独立轻松的完成,C语言在单片机的编程中灵活,功能强大,效率高,简单明了,具有很多优势,学会它是此次课程设计的最大收获。
通过这次综合课程设计,我一对单片机的应用和开发产生了浓厚的兴趣,课外也在进行一些探究,希望能熟练地掌握它。
在此基础上,我发现学习好它的一个有效方法就是动脑动手进行一些开发和设计,在开发和设计的过程中去思考和学习,边学边用,则能真正的理解原理和过程,达到掌握相关知识点的目的。
当前基于单片机的应用非常广泛,其强大的控制功能在各个领域都得到广泛应用。
所以,今后我将会在老师的指导下,更加深入的去了解与探究这块领域。
参考文献
[l] 李现勇.VisualC++串口通信技术与工程实践【M】.北
京:人民邮电出版社.2002.
[2] 刘一.Visual C++缡程实例教程【M】.北京:北京希望
电子出版社.2002.
[3] 康华光.电子技术基础(数字部分).北京:高等教育出版社.2008
[4] 康华光.电子技术基础(模拟部分).北京:高等教育出版社.2006
[5] 王静霞.单片机应用技术(C语言版).北京:电子工业出版社.2009
[6] 马忠梅,等.单片机的C语言应用程序设计【M】.北京:
北京航空航天大学出版社.2003.
[7] 江世明.基于Proteus的单片机应用技术.北京:电子工业出版社.2009
[8] 徐爱钧.Keil Cx51 v7.0单片机高级语言编译与uVision2应用实践.北京:电
子工业出版社.2008
附录:元器件清单
所用到的元器件有:
AT89C51/52单片机1片
74LS47芯片1片
ADC0809芯片1片
共阳极数码管2块
8.2K电阻1个
1.5K电阻1个
30pF瓷片电容2只
5V电源1个
10V电源1个
标准直流电压表2个
导线若干
12MHZ晶振1个
NPN三极管1只
双刀双掷开关1个
开关1个滑动变阻器(1M)2个。