交通灯的课程设计.docx
- 文档编号:24733046
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:28
- 大小:204.59KB
交通灯的课程设计.docx
《交通灯的课程设计.docx》由会员分享,可在线阅读,更多相关《交通灯的课程设计.docx(28页珍藏版)》请在冰豆网上搜索。
交通灯的课程设计
基于单片机控制的数字电压表李国志
苑海洋焦作大学
毕业设计
中图分类号:
TP273
基于基单片机控制的数字电压表的设计
DesignofDigitalVoltageMeterbasedonSingle-chipMicrocomputer
专业名称:
电气自动化技术
学生姓名:
李国志
导师姓名:
刘晓莉
职称:
讲师
焦作大学
二○一○年12月
中图分类:
TP273密级:
无
UDC:
单位代码:
11522
基于基单片机控制的数字电压表的设计
姓 名
李国志
学 制
3年
专业
电气自动化技术
研究方向
自动化技术
导 师
刘晓莉
职 称
讲师
论文提交日期
2010.12.25
论文答辩日期
2011.01.04
焦作大学
摘要
数字电压表的诞生打破了传统电子测量仪器的模式和格局。
它显示清晰直观、读数准确,采用了先进的数显技术,大大地减少了因人为因素所造成的测量误差事件。
数字电压表是把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式,并加以显示的仪表。
数字电压表把电子技术、计算技术、自动化技术的成果与精密电测量技术密切的结合在一起,成为仪器、仪表领域中独立而完整的一个分支,数字电压表标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。
本设计采用了以单片机为开发平台,控制系采用AT89C52单片机,A/D转换采用ADC0809。
系统除能确保实现要求的功能外,还可以方便进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。
简易数字电压测量电路由A/D转换、数据处理、显示控制等组成。
关键词:
单片机;AT89C52;A/D转换;ADC0809;数据处理
Abstract
Thebirthofdigitalvoltagemeterbreakthetraditionalmodelofelectronicmeasuringinstrumentsandpatterns.Itshowstheclearandintuitive,accuratereadings,usinganadvanceddigitaldisplaytechnology,greatlyreducedduetohumanfactorsofthemeasurementerrorcausedbytheincident.Digitalvoltagemeterisarowofanalog(DCinputvoltage)intoanon-continuous,discretedigitalform,andtheinstrumentdisplay.Digitalvoltagemetertoelectronictechnology,computingtechnology,automationtechnologyandprecisionoftheresultsofelectricalmeasurementtechnologyclosertogetherandbecomeinstruments,metersandcompleteanindependentfieldofabranch,digitalvoltagemeterindicatesthatthefieldofelectronicdevicesarevolutionandalsopioneeredthemodernpioneerofelectronicmeasurementtechnology.Thedesignusesasingle-chipplatformforthedevelopment,controloftheDepartmentoftheuseofAT89C52single-chip,A/DconversionusingADC0809.Inadditiontotherealizationofthesystemtoensurethattherequiredfunctionality,butalsofacilitatethe8otherA/Dconvertermeasurement,distancemeasurementfunctionoftransmissionexpansion.SimpledigitalvoltagemeasuringcircuitismadeoftheA/Dconversion,dataprocessing,displaycontrol,etc.
Keywords:
SCM;AT89C52;A/Dconversion;ADC0809;dataprocessing
引言................................................................1
1设计方案..........................................................2
2.1硬件总体框图..................................................2
2.2程序总体框图..................................................3
3设计单元电路......................................................4
3.1待测信号源单元电路............................................5
3.2A/D模数转换单元...............................................5
3.3单片机控制单元................................................6
3.1.1AT89C52单片机芯片.........................................6
3.3.2外部时钟电路..............................................7
3.3.3复位电路..................................................8
3.4数码管显示模块................................................9
4电路原理说明.....................................................10
4.1AT89C52单片机................................................10
4.2ADC0809模数转换芯片..........................................11
4.3八段数码管和74LS47...........................................13
4.3.1八段数码管...............................................13
4.3.274LS47译码芯片...........................................13
4.4系统整体工作原理.............................................14
4.4.1硬件原理.................................................14
4.4.2软件原理分析.............................................17
5致谢.............................................................24
6参考文献.........................................................25
附录..............................................................26
附录1:
调试报告.................................................26
附录2:
元器件清单.................................................27
引言
数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。
目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
新型数字电压表以其高准确度、高可靠性、高分辨率、高性价比等优良特性倍受人们的青睐。
目前,数字电压表作为数字化仪表的基础与核心,已被广泛用于电子和电工测量、工业自动化仪表、自动测试系统等领域,显示出强大的生命力。
与此同时,由电压表扩展而成的各种通用及专用仪表(含数字万用表),也将电量及非电量测量技术提高到崭新水平本文重点介绍单片A/D转换器以及由它们构成的基于单片机的数字电压表的工作原理。
1设计方案
根据本次课设的要求,以51单片机为核心,设计一个简易直流电压表,电压表的作用即是测直流电压的大小,而由所学微控制器的知识可知,可以利用单片机的模数转换来实现这一设计。
模数转换就是用单片机控制模数转换芯片(A/D),使它对外部的一个模拟信号进行采样、量化然后转化为一个离散的数字量,提供给控制器作进一步处理。
常用的A/D有ADC0809、ADC0808等。
它们都是8位的模数转换芯片,即把模拟量转换为一个8位的二进制数字。
实际应用中还有12位、16位等更高位的A/D,但本次设计做简易电压表,精度上不作太高要求,故只须8位的即可。
此次电压表总体的方案就是用单片机的I/O口输出信号来控制A/D启动转换,将送入的模拟量转换为一个8位数字量,然后再通过I/O口送回单片机内部进行处理,单片机进行一系列的运算和校准后,通过数码管将电压值显示出来。
而在方案的实现上由两部分组成:
硬件部分和软件部分。
硬件即电子元器件的选择且将它们连接成一个可行的硬件系统,软件是硬件系统功能化的重要组成部分。
没有软件,硬件将无法实现所需功能。
硬件的设计可以在Proteus上进行,软件可以用Proteus自带的汇编工具或是KEILC51等工具编写C语言,然后在Proteus将硬软件相结合,进行仿真,再根据结果不断对硬件进行改进,对软件进行调试,实现目的功能。
2设计总体框图
系统的设计包括两部分,即硬件原理框图的设计和程序框图设计。
2.1硬件总体框图
硬件总体框图由四个大模块组成,硬件框图如图1所示。
一般的A/D芯片具有多路转换通道,故在此设计中可利用多路通道设计成多通道的直流电压表。
还可以通过改变A/D芯片的参考电压来改变其量程。
A/D芯片将输入的模拟电压值转换为一个8位的二进制数
字,再输送到单片机控制单元,经过处理显示出电压值。
2.2程序总体框图
设计程序部分时,主要应包括主函数和和几个功能子函数。
根据电压表的特性,设计了A/D准换的子函数,包括通道0和通道1,还有数码管显示子函数,包括5V和10V量程两个。
程序总体框图如下图2所示。
图2程序框图
3设计单元电路
根据第二节中原理框图,可将整个系统设计为四个部分:
待测模拟信号源部分,模数转换部分,微控制器部分,数码管显示部分。
其中,待测信号源部分实际上不属于待设计开发的部分,因为电压表的待测信号一般都是来自外部,在此,设计它是供其它部分的开发和仿真。
.3.1待测信号源单元电路
待测信号源就是直流电压表应用时,所须测电压值的信号源,实际上不属于电压表的内部结构,但在此开发研究时,设计它以供仿真。
其电路图如图3所示。
图3待测信号源模块
图3待测信号源
该部分实际上是两个滑动变阻器均接在电源和地两端,中间的滑线端提供两路待测信号,这两路分别提供给模数转换的通道0和通道1。
3.2A/D模数转换单元
A/D对前端的待测信号源提供的模拟电压进行转换,实际是对模拟量进行采样和量化的过程,最终会转换出一个与模拟值相对应的数字量。
单元电路如图4所示。
图4A/D转换单元
图4A/D转换单元电路
图4A/D转换单元电路
该单元外围还有控制量程的选择开关,时钟源及与单片机相连的各端口(具体见标号),通过改变基准电压Vref(+)可改变量程,而本设计提供了10V和5V两个量程档,受选择开关控制。
八路模拟输入通道中,设计时只用了两路,即IN0、IN1,只要依次原理稍加扩展,可增添更多路的通道。
数据输出口OUT8-OUT1分别与单片机的P0口相连。
3.3单片机控制单元
单片机控制单元是整个系统的核心中枢,对外围进行控制,对数据进行运算处理,是连接各部分的纽带。
它主要包括51单片机芯片和其工作所必须的外围电路,如时钟振荡电路和复位电路等。
3.3.1AT89C52单片机芯片
其电路如图5所示。
该单元外围还有控制量程的选择开关,时钟源及与单片机相连的各端口(具体见标号),通过改变基准电压Vref(+)可改变量程,而本设计提供了10V和5V两个量程档,受选择开关控制。
八路模拟输入通道中,设计时只用了两路,即IN0、IN1,只要依次原理稍加扩展,可增添更多路的通道。
数据输出口OUT8-OUT1分别与单片机的P0口相连。
其电路如图5所示。
图5单片机控制单元电路
AT89C52是51系列的一种单片机,其具体介绍在第四节作详细介绍。
3.3.2外部时钟电路
主要是通过一个12MHZ的时钟晶振产生时钟信号,以作为单片机工作的外部时钟,其XTAL1和XTAL2分别接入到单片机上相对应的引脚。
电路图如图6。
图6外部时钟电路
图6时钟晶振电路
外部时钟的晶振频率为12MHZ,则通过该电路提供给单片机的时钟也为12MHZ.
3.3.3复位电路
当对单片机的的reset引脚加超过两个机器周期以上的高电平时,可使单片机复位,即程序从头开始执行。
设计的复位电路如图7所示:
图7复位电路
当按一次键后,形成的RC电路会使RST端的高电平保持两个机器周期以上,使单片机复位。
3.4数码管显示模块
选用了两片集成的共阳极数码管,每片是由两块8端数码管组成(包括小数点位)。
这四块8断数码管共用相同的数据输入线,每块有一根片选线,只有选中了该数码管,它才会点亮并显示。
而通过动态扫描原理可以使接在同一数据线的几块数码管显示不同的数。
其中的74LS47芯片是BCD转7段数码管的译码器。
在DCBA输入BCD码值,通过74LS47转换就可以在数码管上显示十进制数字。
其中有两块电压表起校准对比作用。
图8数码管显示模块
4电路原理说明
现对电路的各器件和整个系统的工作原理分别加以阐述。
4.1AT89C52单片机
AT89C52是51系列的一个型号,它是ATMEL公司生产的。
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程。
DIP封装的引脚图如图9所示。
图9AT89C52引脚
AT89C52的主要功能特性有:
兼容MCS51指令系统,8k可反复擦写(>1000次)FlashROM,32个双向I/O口,256x8bit内部RAM,3个16位可编程定时/计数器中断,时钟频率0-24MHz,2个串行中断,可编程UART串行通道,2个外部中断源,共8个中断源,2个读写中断口线,3级加密位,低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。
而在本次设计中只需要用到最基本的4个输入输出I/O口功能。
通过汇编或是C语言编程,可以用指令对单片机的各输入输出进行控制,还可以进行各种基本运算。
4.2ADC0809模数转换芯片
ADC0809是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0808是ADC0809的简化版本,功能基本相同。
一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。
DIP封装的引脚如图10所示。
图10ADC0809引脚图
其内部结构如图11所示。
ADC0809芯片有28条引脚,各引脚定义:
引脚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路模拟输入中的一路
图11ADC0809内部引脚
该八位转换芯片,是把基准电压量化成256等份,然后通过逐次逼近法,对外部的模拟信号进行取样比较,确定其所在的等级,即所对应的8位二进制数的大小。
由此可知,8位转换芯片的精确度为基准电压除以256的值,如接5V基准电压时,精确度约为0.020V,接10V时,则约为0.039V.所以,基准电压值越低,精确度越高,但代价是量程也小。
4.3八段数码管和74LS47
4.3.1八段数码管
八段数码管比七段数码管多路一位小数点,实际是8个LED摆放排列而成。
当特定的某几个数码管点亮时,就显示了特定的数字形状。
有共阳极和共阴极之分,共阳极是指8个输入端a、b、c、d、e、f、g、dp要输入低电平才会是相应LED点亮,共阴极则须输入高电平。
本次设计用的是共阳极的数码管。
图12是其结构原理图。
图12八段数码管结构
4.3.274LS47译码芯片
74LS47是常用的BCD对七段显示器译码器/驱动器,可对共阳极七段数码管进行译码功能。
引脚图如图13所示例。
如当输入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;
图1374LS47芯片
4.4系统整体工作原理
现对整体系统的硬件和软件工作原理进行分析。
4.4.1硬件原理
将各单元电路整合后可以得到完整的系统硬件电路。
如图14所示。
原理:
由单片机的P3口的几根口线控制ADC0809的几个控制端,如图14中标号所示。
当P3口的几根口线依次输出地址选择、地址所存信号、开始(START)信号等的有效电平后,A/D被启动,从相应的模拟输入通道采入模拟量,并经行转换,转换完成后,AD的标志端口EOC有低电平变为高电平,单片机查询到这一状态后,由P3.4对AD的OE置有效,使转换后的八位二进制数从锁存器中输出到单片机的P0口。
单片机内部对这一二进制数进行计算等必要处理后从P1口输出到数码管显示部分显示出来。
然后单片机启动A/D进行下一路通道的转换,这就是通过改变P0-P3输出到A/D的地址办到的。
地址不同,选择通道不同。
其它的控制方法不变。
本次设计只用到两路,故转换会在两路之间循环进行。
其中待测信号源由两个滑阻分压形成,改变滑线端位置,则分压改变,输入到A/D的模拟电压值变化。
图14系统硬件电路
滑阻的分压在0-10件变化,对此,可改变A/D的基准电压Vref(+),Vref(-)接地不变。
Vref(+)接5V时,则可对0-5V的电压进行准确的转换。
若超出,则转换后的值一直是8位1,即11111111。
不能正确量化。
此时,将Vref(+)接10V,则可对0-10V的模拟电压进行正确的量化转换。
由以上可知图中的双刀双掷开关实际上起到了电压表量程选择的作用。
一路开关选择5V或10V电压,另一路选择高低电平将与量程对应的信号传到单片机的P2.0口,以供查询后选择相应的程序分支。
4.4.2软件原理分析
对上面的硬件部分,按照图2所示的软件流程框图进行软件设计。
用C语言进行程序的编写。
程序如下:
//直流电压表程序;
#include
#defineucunsignedchar
#defineuiunsignedint
sbitL_OE=P3^4;//对各控制引脚进行定义;
sbitL_EOC=P3^5;
sbitL_ALE=P3^6;
sbitL_START=P3^7;
sbitL2=P2^0;
voiddelay(uix)//延时子程序,延时时间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 课程设计