双通道数字电压表课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

双通道数字电压表课程设计
————————————————————————————————作者:————————————————————————————————日期:
《单片机》
课程设计报告
系别: 计算机与电子系
专业班级:电子0801
学生姓名:独孤求胜
指导教师:
(课程设计时间:2011 年6 月27 日——2011 年7 月8 日)
华中科技大学武昌分校计算机与电子系
目录
1.课程设计目的 (2)
2.课程设计题目及要求 (3)
3.课程设计报告内容 (4)
3。

1课程设计相关元器件及设备…………………………………………………
4
3。

2元器件的分析 (4)
3.3原理图的设计与分析 (5)
3。

4程序设计流程及说明 (8)
3.5课程设计仿真结果图示 (12)
4.总结 (15)
参考文献 (16)
一、课程设计目的
熟悉典型单片机( MCS-51, AT89S51, PIC, Motorola, AVR )的资源、性能,加深对单片机课程的全面认识和掌握,对单片机及其接口的应用作进一步的了解,掌握基于单片机的系统设计的一般流程、方法和技巧,为学生解决工程实际问题打下坚实的基础。

同时课程设计也是让我们熟练掌握了课本上的一些理论知识,是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力,加深了我们对单片机原理与应用课程的理解。

二、课程题目及要求
1、课程设计题目内容及具体要求:
1)十字路口交通灯控制
2)单词记忆测试器
3)单片机数字电压表
4)简易电子琴
5)4个16 X 16点阵LED电子显示屏的设计
我所在的小组做的是实验三:单片机数字电压表
2、设计要求:
●以单片机为控制器,采用中断方式,对2路0-5V的模拟电压进行循环采集,采集的
数据送LED显示,并存入内存.超过界限时指示灯闪烁.
●设计接口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接电
路图.
●编写下列控制程序
(1)对2路模拟信号输入实行循行采集,每路连续采集16次,取平均值。

(2)分别设定每一路的上限值,若采集的平均值超过该界限值,则对应通道的指示灯闪烁10次后一直亮,指示灯闪烁时喇叭发声,以示警告。

三、课程设计报告内容
1、课程设计相关元器件及设备
本次课程设计包括实物和仿真两种,我做的是用PROTEUS软件进行原理图的设计和仿真,采用KEIL4集成开发环境进行软件的开发和调试。

实验器材包括:装有PROTEUS和KEIL软件的PC机一台。

2、元器件的分析
实验中用到的仿真模型有:AT89C51,ADC0809,数码管,LED,晶振,可变电阻,电容,按键等。

AT89C51作为控制芯片,5V的电压源接上滑动变阻器模拟外部测量电压,外部模拟电压经过ADC0808模数转换后,经过处理在数码管上显示出来。

1)ADC0809简介:
本实验我们选用ADC0808作为模数转换的芯片,其为逐次逼近式AD转换式芯片,其工作时需要一个稳定的时钟输入,根据查找资料,得到ADC0808的时钟频率在10KHZ~1200KHZ,我们选择典型值640KHZ。

课题要求测量电压范围是0到5V,又ADC0808的要求:V REF+〈=V CC,V REF->=GND,故我们取V REF+=+5V,V REF-=0V。

由于ADC0808有8个输入通道可供选择,我们选择IN0通道和IN1通道,使
ADC0808的A、B、C选择通道,因为只有通道0和1,故将B,C接地,通过改变A的值来选择通道0和1,在当ADC0808启动时ALE引脚电平正跳变时变可以锁存A、B、C上的地址信息.ADC0808可以将从IN0得到的模拟数据转换为相应的二进制数,由于ADC0808输出为8位的二进制数。

在AD转换完成后,ADC0809将在EOC引脚上产生一个8倍于自身时钟周期的正脉冲,以此来作为转换结束的标志。

然后当OE引脚上产生高电平时,ADC0808将允许转换完的二进制数据输出。

ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件.其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

ADC0808是ADC0809的简化版本,功能基本相同。

一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。

引脚功能(外部特性)
ADC0808芯片有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(V CC):主电源输入端。

13(GND):地。

23~25(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路.
其结构与引脚图如下所示
2)数码管简单说明:
显示部分我使用的是7SEG_MPX6-CC,6合一数码管,共阴极.
3、原理图的设计与分析
总的设计电路如下所示,电路有几个功能模块共同组成:
用PROTEUS设计的仿真原理图1)时钟电路
2)复位电路
3)模拟电压输入电路
4)AD转换电路5)显示电路
6)报警提示电路
4、程序设计流程极说明1)程序流程图如下
程序流程图
2)程序功能模块及说明
1〉显示模块:
VOID DISPLAY()//数码管显示函数

P1=0;
P2=0XFF;
P1=DISPCODE[DISPBUF[DISPCOUNT]];//显示数据输入P2=DISPBITCODE[DISPCOUNT];//数码管选通IF(DISPCOUNT==5)
{
P1=P1|0X80;
}//显示小数点
IF(DISPCOUNT==2)
{
P1=P1|0X80;
}//显示小数点
DISPCOUNT++;
IF(DISPCOUNT==8)
{
DISPCOUNT=0;
}

本程序模块中P2通过循环计数器DISPCOUNT循环选通八个数码管,P1分别送入八个数码管的数据.
2〉AD转换模块:
VOID GOT_AD_DATA() //启动和获取AD转换结果
{
IF(EOC==1)

OE=1;//允许输出
GETDATA=P0;
OE=0;
ST=1;//读取数据后送一个高脉冲重新开始转换
ST=0;


这个模块启动AD转换,并查询转换是否完成,完成后取出转换结构,然后重新开始转换。

3〉求平均值并保存模块:
VOID DATA_SAVE()

IF(T==16)
{
I=SUM/T; //采样16次,求平均值,并保存
TEMP=I;
T=0;
SUM=0;
IF(A==0)

DISPBUF[5]=I/10000;//将通道0的数据存入5,6,7位置
I=I%10000;
DISPBUF[6]=I/1000;
I=I%1000;
DISPBUF[7]=I/100;
}
ELSE
{
DISPBUF[2]=I/10000;//江通道1的数据存入数组的2,3,4;
I=I%10000;
DISPBUF[3]=I/1000;
I=I%1000;
DISPBUF[4]=I/100;
}
A=!A;//更换通道
}
}
程序段中A为ADC0808的通道选择的最低位,T为计数器,用于计数取样次数,SUM 为16次取样的和。

4>报警系统模块:
VOID SOUNDER() //报警函数
{
IF(A==0)
{
IF(TEMP〉RANGE1)
{
T2++;
IF(T2/16〈20)//取反20次,闪烁10次
{
IF(T2%16==0)//T2为16的倍数时,LED1电频取反
LED1=!LED1;
ELSE
LED1=LED1;

ELSE
{
LED1=1;
T2=500; //任意赋一个大于16*20的值,防止发生溢出;

RING=!RING;

ELSE

LED1=0;
RING=0;
T2=0; //TEMP小于额定数值时,T2清零}
}
IF(A==1)

IF(TEMP〉=RANGE2)
{
T3++;
IF(T3/16<20) //取反20次,闪烁10次
{
IF(T3%16==0)//
LED2=!LED2; //
ELSE
LED2=LED2;
}
ELSE

LED2=1;
T3=500;

RING=!RING;
}
ELSE

LED2=0;
RING=0;
T3=0; //TEMP小于额定数值时T3清零}

}
这个程序段中,我又引入了两个变量T2,和T3,用于计数LED灯多少次反转,T2和T3每当定时器T1中断时加1.
5、课程设计仿真结果图示
1)通道0和通道1正常测量
2)单通道超出量程
LED灯闪烁十次后常亮,蜂鸣器报警。

(通道0的上限为4.5V)3)双通道超界(通道1的上限为4。

0)
四.总结
通本次课程设计我使用到了仿真芯片有:at89c51,adc0808,共阴极数码管,简单的rc复位电路和时钟电路,掌握了简单的单片机系统的设计,包括硬件和软件的开发流程。

本次的课程设计让我熟练的掌握了51单片机的定时器工作方式以及操作方法,并掌握了ad转换芯片adc0808的操作方法和原理,熟练掌握了数码管的动态和静态显示,学会了使用字库的方式,实现要为数码管的显示编写字库.
参考文献
1. 使用教材
[1] 楼然苗,李光飞。

单片机课程设计指导。

北京:北京航空航天大学。

2007. [2]何桥. 单片机原理及应用.北京:中国铁道出版社. 2008.
2。

教学参考资源
[1] 赵小安. MCS—51单片机原理及应用。

天津:天津大学出版社.2002。

[2]张迎新. 单片微型计算机原理。

北京:国防工业出版社。

2002.
[3]张淑清. 单片微型计算机接口技术及应用。

北京:国防工业出版社。

2001。

[4] 翟生辉. 单片计算机原理及应用. 西安:西安交通大学出版社。

2000.
[5]徐爱钧。

单片机高级语言C51程序设计. 北京:电子工业出版社。

2001。

课程设计成绩:
项目业务考核成绩(70%)
(百分制记分)
平时成绩(30%)
(百分制记分)
综合总成绩
(百分制记分)
注:教师按学生实际成绩(平时成绩和业务考核成绩)登记并录入教务MIS系统,由系统自动转化为“优秀(90~100分)、良好(80~89分)、中等(70~79分)、及格(60~69分)和不及格(60分以下)”五等。

指导教师评语:
指导教师(签名):
20 年月日。

相关文档
最新文档