单片机课程设计报告

时间:2024.3.15

单片机课程设计报告

单片机原理及应用 课程设计报告书

题 目:简易数字电压表的设计 姓 名: 汪 剑

专 业:电气工程及其自动化 设计时间:2012 年 11 月

电子与信息工程学院

目 录

1. 引 言 ................................................. 1

1.1. 设计意义 ........................................ 1

1.2. 系统功能要求 .................................... 1

2. 方案设计 .............................................. 2

2.1. 功能要求及设计目标 ................................. 1

2.2. 系统设计方案 .................................... 1

3. 硬件设计 .............................................. 5

4. 软件设计 .............................................. 6

5. 系统调试 .............................................. 7

6. 设计总结 .............................................. 8

7. 附 录A;源程序 ....................................... 9

8. 附 录B;作品实物图片 ................................. 12

9. 主要参考文献 ......................................... 13

简易数字电压表的设计 单片机原理及应用课程设计

简易数字电压表的设计

1. 引 言

1.1. 设计意义 目前,单片机已经在测控领域中获得了广泛的应用,它除了可以测量电信以外,还可以用于温度、电压的测量,能独立工作的单片机电压测量、控制系统已经广泛应用很多领域。

单片机是一种特殊的计算机,它是在一块半导体的芯片上集成了CPU,存储器,

RAM,ROM,及输入与输出接口电路,这种芯片称为:单片机。由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便的优点,使它迅速的得到了推广应用,目前已成为测量控制系统中的优选机种和新电子产品中的关键部件。单片机已不仅仅局限于小系统的概念,现已广泛应用于家用电器,机电产品,办公自动化用品,机器人,儿童玩具,航天器等领域。 本次课程设计,就是用单片机实现电压测量,传统的电压测量工具读取数据误差大,本次采用ADC0809A/D模数转换系统来实现基于52单片机的数字电压表的设计。

传统的数字电压表读数麻烦、测量精度不高、误差大等缺点而下面利用集成A/D数模转换设计并制作了一款基于STC89C52的4位数码管显示的数字电压表,其电路简单,软硬件结构模块化,易于实现。

1.2. 功能要求

简易数字电压表可以测量0~5V范围内的8路输入电压值,并在4位LED数码管上轮流显示或者单路选择显示。 测量最小分辨率为 0.02V。

1

简易数字电压表的设计 单片机原理及应用课程设计

2. 方案设计 2.1功能要求及设计目标

采用STC89C52作MCU,ADC0809(或其他芯片)进行AD转换,测量电压

的范围为直流0-5V电压,四位数码管显示。

2.2系统设计方案

(1)STC89C52主要具有如下特点:

1. 增强型 8051 单片机,6 时钟/机器周期和 12 时钟/机器周期可以任 意选择,

指令代码完全兼容传统 8051.

2. 工作频率范围:0~40MHz,相当于普通 8051 的 0~80MHz,实际工 作频

率可达 48MHz 3. 通用 I/O 口 (32 个) 复位后为: , P1/P2/P3/P4 是准双向口/弱上拉, P0

口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需

加上拉电阻。

4. ISP(在系统可编程)/IAP(在应用可编程) ,无需专用编程器,无 需专用仿

真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片

5. 外部中断 4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部

中断低电平触发中断方式唤醒

6. 通用异步串行口(UART) ,还可用定时器软件实现多个 UART

按系统功能实现要求,决定选择STC89C52单片机作为数字电压表设计的控制

系统。

2

简易数字电压表的设计 单片机原理及应用课程设计

STC89C52单片机引脚图

(2)数模转换芯片: ADC0809是采样分辨率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换,转换时间为100μs。采用ADC0809作为数模转换芯片。

单片机课程设计报告

3

简易数字电压表的设计单片机原理及应用课程设计ADC0809 引脚图(3)系统硬件设计 1 选择 STC89C52 作为控制芯片 2 选择 ADC0809 芯片来进行模数转换 3 选择 GEM5461GE 四位一体的共阳数码管来显示数字 4 用 9012 三极管来作为驱动电路,使 GEM5461GE 四位一体的共阳数码工作. 5 用 SW1 按键作为复位按键,实现复位电路的功能。 根据功能要求,设计出如下数字系统方案方框图。上电复位串口通信4位LED显示 电源电路数字电压表系统设计方案框图4

简易数字电压表的设计 单片机原理及应用课程设计

3. 硬件系统设计

硬件设计各模块电路图及原理描述;

(1)硬件设计原理:电阻R11上的电压经过ADC0809芯片进行模数转换后,STC89C52芯片的P1口连接到驱动电路,当驱动电路工作使数码管显示前面转换过来的数字。

(2)复位电路和晶振电路的设计:在接通电源后,当按下SW1后STC89C52不工作,使数码管全部变暗,当SW1一松开后STC89C52工作,数码管又变亮。晶振电路中的两个30pF的电容具有微调的作用。

(3)A/D转换由集成电路ADC0809完成。ADC0809具有8路模拟输入端口,地址线(第23~25脚)可决定对哪一路模拟输入作A/D转换。

(4)单片机的P1、p3.0~p3.3端口作为4位LED数码管显示控制。P3.5端口用作单路显示/循环显示转换按钮,p3.6端口用作单路选择显示的通道。P0端口用作A/D转换数据读入。P2端口用作ADC0809的A/D转换控制

5

简易数字电压表的设计 单片机原理及应用课程设计

4. 软件设计

4.1软件设计流程图

图一.主程序流程图

单片机课程设计报告

单片机课程设计报告

单片机课程设计报告

图二.A/D转换测量子程序流程图

6

简易数字电压表的设计 单片机原理及应用课程设计

4.2软件设计描述

4.2.1 初始化程序

系统上电时,初始化程序主要用来执行70H~77H内存单元清0和P2口置0等准备工作。

4.2.2 主程序

在刚上电时,系统默认为循环显示8个通道的电压值状态。当进行一次测量时,将显示每一通道的A/D转换值,每个通道的数据显示时间在1s左右。主程序在调用显示子程序与测量子程序之间循环。

主程序流程图如上图一所示。

4.2.3 显示子程序

显示子程序采用动态扫描法实现4位数码管的数值显示。测量所得的A/D转换数据放在70H~77H内存单元中,测量数据在显示时须经过转换为十进制BCD码放在78H~7BH单元中,其中7BH存放通道标志数。寄存器R3用作8路循环控制,R0用作显示数据地址指针。

4.2.4 A/D转换测量子程序

A/D转换测量子程序用来控制对ADC0809的8路模拟输入电压的A/D转换,并将对应的数值移入70H~77H内存单元。

A/D转换测量子程序程序流程图如上图二所示。

5. 系统调试

介绍所设计的系统调试过程、在调试中遇到的问题及解决的办法。

采用Wave或Keil C51编译器进行源程序编译及仿真调试,同时进行硬件电路板的设计制作,烧录好程序后进行软硬件联调,最后进行端口电压的对比测试。测试对比表如下所示。

简易数字电压表与“标准”电压表对比测试表

单片机课程设计报告

7

简易数字电压表的设计 单片机原理及应用课程设计

从上表中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均在0.02V以内,这与采用8位A/D转换器所能达到的理论误差精度相一致,在一般的应用场合可无、安全满足要求。

硬件调试比较简单,首先检查电路的焊接是否正确,然后用万用表测试。软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、从程序的编写和调试。

6. 设计总结 在这次对简易数字电压表设计中,让我了解和学习到了设计硬件电路的过程和软件程序的编写,也让我了解了关于电压表的原理与设计理念,。通过这次学习,让我对各种电路都有了大概的了解以及提高了我对单片机的学习,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解。除了学会了许多专业知识外,还教会了我如何学习。在硬件的连接和软件的编写中,遇到遇到困难时,首先是想了想,是在不懂的就积极地去请教我的指导老师,也得到了很多经验,当然,我也看现有的教材、去图书馆查阅资料、去网上搜索相关信息,以这些方式,来大大增强了自我的自学能力和独立能力。更重要的是,一次设计性实验,却大大我拓展了我的思路,开阔了我的视野,活跃了我的思想。

而且还让我认识到了 这次课程设计不仅使我们对相关专业知识有了更深的理解,

理论知识对工作实践的重大意义,学会理论联系实际是一种很好的学习方法。课程设计要求我们完全依靠自己的能力去学习和设计,而不是像以往课程那样一切由教材和老师安排。因此,它给了我更大的发挥空间,可以让我发挥主观能动性独立的查阅资料、寻找数据、设计实验方案,并将理论知识应用到实践中去。同时,让我懂得红外线在生活中的广泛应用。通过这次设计提高了我认识问题、分析问题、解决问题的能力。总之,这次设计既是对我课程知识的考核,又是对我思考问题、解决问题能力的考核,更是对我学儿而所用的一种考验,让我从中学到了许多东西 。

致谢:

这次能顺利按时而且可以很好的完成课程设计,非常感谢我的指导老师和我的搭档,是他们的耐心指导和讲解,使我能够顺利的完成课程设计。在我的设计工作中无不倾注着你们辛勤的汗水和心血。老师的严谨治学态度、渊博的知识、无私的奉献精神使我深受启迪。从尊敬的老师身上,我不仅学到了扎实、宽广的专业知识,也学到了做人的道理。在此我要向我的导师说声“老师您辛苦了!”最后我致以最衷心的感谢和深深的敬意.

8

简易数字电压表的设计 单片机原理及应用课程设计

7. 附 录A:源程序

源程序代码(主要语句要有注释)。

/*使用AT89C52单片机,12MHZ晶振,P0口读入AD值,P2口作AD控制,用共阳LED数码管

P1口输出段码,P3口扫描,最高位指示通道(0-7)。*/

#include "reg52.h" //52系列单片机定义文件

#include "intrins.h" //调用_nop_();延时函数用

#define ad_con P2 //AD控制口

#define addata P0 //AD数据计入读入口

#define Disdata P1 //显示数据段码输出口

#define uchar unsigned char//无符号字符(8位)

#define uint unsigned int //无符号整数(16位)

sbit ALE=P2^3; //锁存地址控制位

sbit START=P2^4; //启动一次转换位

sbit OE=P2^5; //0809输出数据控制位

sbit EOC=P3^7; //转换结束标志位

sbit DISX=Disdata^7; //LED小数点

//

//

uchar code dis_7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};

/* 共阳七段LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" */ uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; //四位列扫描

控制字

uchar data ad_data[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//定义8个数据内

存单元

uint data dis[5]={0x00,0x00,0x00,0x00,0x00}; //定义4个显示数据单元、1个数据

暂存单元

//

//

/********1毫秒延时子函数**********/

delay1ms(uint t)

{

uint i,j;

for(i=0;i<t;i++)

for(j=0;j<120;j++)

;

}

9

简易数字电压表的设计 单片机原理及应用课程设计

//

//

/***********显示扫描子函数**********/

scan()

{

uchar k,n;

int h;

dis[3]=0x00; //通道初值为0

for(n=0;n<8;n++) //每次显示8个数据

{

dis[2]=ad_data[n]/51; //测得值转换为三位BCD码,最大为5.00V

dis[4]=ad_data[n]%51; // 余数暂存

dis[4]=dis[4]*10; //计算小数第一位

dis[1]=dis[4]/51; //

dis[4]=dis[4]%51; //

dis[4]=dis[4]*10; //计算小数第二位

dis[0]=dis[4]/51; //

for(h=0;h<500;h++) //每个通道值显示时间控制(约1秒)

{

for(k=0;k<4;k++) //四位LED扫描控制

{

Disdata=dis_7[dis[k]];

if(k==2){DISX=0;}

P3=scan_con[k];delay1ms(1);P3=0xff;

}

}

dis[3]++; //通道值加1

}

}

//

//

/*******0809AD转换子函数***********/

test()

{

uchar m;

uchar s=0x00;

ad_con=s;

for(m=0;m<8;m++)

{

ALE=1;_nop_();_nop_();ALE=0; //转换通道地址锁存

START=1;_nop_();_nop_();START=0; //开始转换命令

_nop_();_nop_();_nop_();_nop_(); //延时4微秒

while(EOC==0); //等待转换结束

OE=1;ad_data[m]=addata;OE=0;s++;ad_con=s;//取AD值,地址加1

10

简易数字电压表的设计 单片机原理及应用课程设计

}

ad_con=0x00; //控制复位

}

//

//

/**************主函数****************/

main()

{

P0=0xff; //初始化端口

P2=0x00;

P1=0xff;

P3=0xff;

while(1)

{

scan(); //依次显示8个通道值一次

test(); //测量转换一次

}

}

//

//

//*********************结束**************************//

11

简易数字电压表的设计 单片机原理及应用课程设计

8. 附 录B:作品实物图片

单片机课程设计报告

图一 简易数字电压表不通电时的情况

12

简易数字电压表的设计 单片机原理及应用课程设计

图二 简易数字电压表通电时的情况

9. 附 录C:电子元器件清单

单片机课程设计报告

单片机课程设计报告

13

简易数字电压表的设计 单片机原理及应用课程设计

10. 参考文献

[1] 刘欣铭,张广斌.LED显示屏技术综述[J].黑龙江电力,2003, 25(4):294-296.

[2] 阳进.基于单片机的LED显示屏的汉字显示[J].中国科技信息,2005,(12):112.

[3] Mark Nelson著.潇湘工作室译.串行通信开发指南[M].中国水利水电出版社,2002.

[4] 王宜怀.单片机原理及其嵌入式应用教程[M].北京希望电子出版社,2002.

[5] 韩润萍,陈小萍.点阵LED显示屏控制系统[J].微计算机信息,2003,19(10):50-51.

[6] 康华光.电子技术基础 模拟部分(第五版)高等教育出版社,2006.1

[7] 康华光.电子技术基础 数字部分(第五版)高等教育出版社,2006.1

14

单片机课程设计报告

更多相关推荐:
《单片机课程设计》报告

机械与车辆学院单片机课程设计报告20xx20xx学年第一学期课程设计题目水塔水位控制系统姓名学号班级指导老师职称时间成绩单片机课程设计考查评分表2目录一课程设计性质和目的4二课程设计的内容及要求41硬件设计42...

单片机课程设计报告

物理与机电学院课程设计报告课程名称:单片机课程设计系部:物理与机电工程学院专业班级:07级电子信息工程(1)班完成时间:20XX年5月24日~28日报告成绩:【摘要】单片机自1976年由Intel公司推出MCS…

51单片机课程设计报告。

成绩单片机原理及应用课程设计课程名ltlt单片机原理及应用gtgt学部专业学号姓名指导教师日期20xx年06月一设计任务与要求1任务制作并调试51单片机学习板2要求1了解并能识别学习板上的各种元器件会读元器件标...

流水灯单片机课程设计报告

井冈山大学机电工程学院单片机课程设计报告课程名称单片机设计题目流水灯姓名覃家应陈东阳专业生物医学工程班级10级医工本一班学号100615062指导教师王佑湖20xx年11月10日目录1引言211设计任务212设...

单片机课程设计报告范例

单片机课程设计示例交通灯控制系统设计一总体设计1设计要求交通灯的任务要求为模拟十字路口的交通灯的亮灭及闪烁基本工作原理根据交通灯的亮灭情况可以分为四种状态利用定时计数器每20秒产生一次中断每产生一次中断后由是否...

51单片机电子时钟课程设计报告

JINGCHUUNIVERSITYOFTECHNOLOGY单片机原理及应用课程设计报告题目电子时钟专业电气工程及其自动化班级20xx级电工2班学号20xx401020xx2姓名王贞指导教师邹云峰提交日期20xx...

基于51单片机课程设计报告

课题:基于51单片机的数字温度计设计专业:电气工程及其自动化班级:4学号:***设计日期:20XX/6/3成绩:重庆大学城市科技学院电气学院基于51单片机数字温度计设计报告一、设计目的作用本设计是一款简单实用的…

基于单片机的电子密码锁设计_单片机课程设计报告

单片机密码锁课程设计报告湖南师大本科生课程设计目录1引言12设计要求23硬件电路设计331设计方案的选择332主要元器件简介433硬件系统结构84程序设计135总结15参考文献16附件一电路原理图及作品实物图1...

单片机课程设计数字钟实验报告

单片机课程设计电子钟一实现功能1能够实现准确计时以数字形式显示时分秒的时间2小时以24小时计时形式分秒计时为60进位能够调节时钟时间3闹钟功能一旦走时到该时间能以声或光的形式告警提示4能够实现按键启动与停止功能...

单片机课程设计数字钟报告

单片机课程设计报告基于单片机的数字钟班级姓名学号设计时间单片机课程设计正文一引言现代社会科技飞速发展人们生活节奏加快时间就是金钱时间就是生命时间对人们来说总是那么宝贵工作的忙碌性和繁杂性容易使人忘记当前的时间忘...

单片机课程设计报告

文华学院单片机原理及应用课程设计报告设计题目姓名学号班级指导教师20xx年月日目录一标题二设计内容设计要求三设计思路四工作原理五硬件设计六软件设计含流程图七调试遇到的问题和解决方法八改进意见九收获及体会十源程序...

单片机电子时钟课程设计报告

基于单片机电子时钟的设计绪论单片机自20世纪70年代问世以来以其极高的性能价格比受到人们的重视和关注应用很广发展很快单片机体积小重量轻抗干扰能力强环境要求不高价格低廉可靠性高灵活性好开发较为容易由于具有上述优点...

单片机课程设计报告(45篇)