基于单片机KL25的数字电压表Word文档格式.docx

上传人:b****5 文档编号:20372063 上传时间:2023-01-22 格式:DOCX 页数:14 大小:196.31KB
下载 相关 举报
基于单片机KL25的数字电压表Word文档格式.docx_第1页
第1页 / 共14页
基于单片机KL25的数字电压表Word文档格式.docx_第2页
第2页 / 共14页
基于单片机KL25的数字电压表Word文档格式.docx_第3页
第3页 / 共14页
基于单片机KL25的数字电压表Word文档格式.docx_第4页
第4页 / 共14页
基于单片机KL25的数字电压表Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于单片机KL25的数字电压表Word文档格式.docx

《基于单片机KL25的数字电压表Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机KL25的数字电压表Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

基于单片机KL25的数字电压表Word文档格式.docx

AbstractDigitalvoltagemeter(DigitalVoltmeter)referredtoasDVM,itistheuseofdigitalmeasuringtechnology,thecontinuousanalog(DCinputvoltage)intoanon-continuous,discretedigitalformandtodisplaytheinstrument.Analogvoltagemeterfeaturesatraditionalsingle,lowaccuracy,cannotmeetthedigitalage,usingthesinglechipdigitalvoltagemeter,fromthehighprecision,anti-interferenceability,scalability,JiChengconvenience,andPCcancommunicateinrealtime.Atpresent,byavarietyofsingleA/Dconverterconsistingofdigitalvoltagemeter,hasbeenwidelyusedinelectronicandelectricalmeasurement,industrialautomation,instrumentation,automatedtestsystems,intelligentmeasurement,showingstrongvitality.Atthesametime,theDVMextensiontothevariousgeneralandspecificdigitalinstruments,butalsothepowerandnon-powermeasurementuptoanewlevel.Thischapterfocusesonsingle-chipA/Dconverter,andtheyformbythemicrocontroller-baseddigitalvoltmeterworks.

KeywordsDigitalvoltmeterA/DconverterPCVoltagemeasurement

第一章系统概要

1.1课题研究背景

数字电压表(DigitalVoltmeter)简称DVM,它采用的是数字化测量技术,把连续的模拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后再通过显示器件显示,由于数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受青睐,数字式电压表就是基于这种需求而发展起来的.。

而采用单片机的数字电压表由于测量精度高、速度快,读数时也非常方便,抗干扰能力强,可扩展性强等优点已被广泛的应用于电子及电工的测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。

1.2数字电压表的分类

目前实现电压数字化测量的方法仍然模-数(A/D)转换的方法,而数字电压表种类繁多,型号新异,目前国际仍未有统一的分类方法。

而常用的分类方法有如下几种:

1.按用途来分:

有直流数字电压表,交、直流数字电压表,交直流万用表等。

2.按显示位数来分:

有4位,5位,6位,7位,8位等。

3.按测量速度来分:

有低准确度,中准确度,高准确度等。

4.按测量速度来分:

有低速,中速,高速,超高速等。

1.3系统功能

将被测电压信号,送入A/D转换器进行转换,然后送到单片机中进行数据处理,处理后得到的电压值再送到LED中显示。

第二章设计总方案

2.1设计题目

数字电压表

2.2设计内容及要求

利用单片机与A/D转换器件设计一个数字电压表,能够测量0~5V之间的直流电压值,并用4位数码管实时显示该电压值。

2.3设计原理及方案

第三章硬件设计

3.1A/D转换电路

No

Yes

3.2LED显示电路

此系统是在LED驱动电路的设计上,利用单片机P0口上外接的上拉电阻来实现,即将LED的A-G段显示引脚和DP小数点显示引脚并联到P0口与上拉电阻之间,这样,就可以加大P0口作为输出口的驱动能力,使得LED能按照正常的亮度显示出数字。

第四章系统软件设计

4.1主程序(main.c)

//说明见工程文件夹下的Doc文件夹内Readme.txt文件

//========================================================

#include"

includes.h"

//包含总头文件

intmain(void)

{

//1.声明主函数使用的局部变量

uint_32run_counter;

uint_16ADCResult;

uint_16d;

//ADCResult计算后的值

uint_16c;

//

uint_16LEDindex;

//

uint_16Dtable[4];

uint_16A;

uint_16B;

//2.关总中断

enter_critical();

//进入临界区

//3.初始化模块

LEDInit();

//LED初始化

light_init(LIGHT_PORT,LIGHT_PIN_RED,LIGHT_ON);

//指示灯初始化

light_init(LIGHT_PORT,LIGHT_PIN_BLUE,LIGHT_OFF);

uart_init(UART_TEST,BUSCLK,9600);

//串口1初始化,总线时钟24000Khz,波特率9600

adc_init(SingleEND,10,SAMPLE32);

//ADC0初始化单端输入,10位采样精度,32次硬件均值

//4.全局变量及主函数局部变量赋初值

run_counter=0;

ADCResult=0;

//5.使能模块中断及总中断

uart_enable_re_int(UART_TEST);

init_critical();

//开总中断

uart_send_string(UART_TEST,"

ThisisADCTest!

\r\n"

);

//进入主循环

//主循环开始=============================================================

for(;

;

{

run_counter++;

//循环计数到一定的值,使小灯的亮、暗状态切换

if(run_counter>

RUN_COUNTER_MAX)

{

run_counter=0;

//指示灯的亮、暗状态切换

light_change(LIGHT_PORT,LIGHT_PIN_RED);

light_change(LIGHT_PORT,LIGHT_PIN_BLUE);

//进行一次模块0通道14采样

ADCResult=adc_read(14);

//将采集的A/D值通过串口发送到PC

//uart_send1(UART_TEST,(uint_8)(ADCResult>

>

8));

//uart_send1(UART_TEST,ADCResult);

}//end_if

d=ADCResult*5/4096;

A=d*10/10;

B=d*10%10;

Dtable[0]=0;

Dtable[1]=A+10;

Dtable[2]=B;

Dtable[3]=21;

for(LEDindex=0;

LEDindex<

=3;

LEDindex++)

{

if(LEDindex>

=4)

LEDindex=0;

}

c=LEDchangeCode(Dtable[LEDindex]);

LEDshow1(LEDindex,c);

}//end_while

//主循环结束=============================================================

return0;

}

4.2中断子程序(Isr.c)

//=====================================================================

//文件名称:

isr.c

//功能概要:

中断底层驱动构件源文件

//版权所有:

苏州大学飞思卡尔嵌入式中心()

//更新记录:

2013-4-7

//========================测试===============================

//串口1接收中断服务例程

voidisr_uart1_re(void)

uint_8ch;

uint_8flag=1;

ch=uart_re1(UART_TEST,&

flag);

if(0==flag)

uart_send1(UART_TEST,ch);

exit_critical();

4.3LED子程序(LED.c)

//文件名称:

led.c

//功能概要:

led构件源文件

//版权所有:

苏州大学飞思卡尔嵌入式中心()

//版本更新:

2013-04-18V1.2

led.h"

//led位选端口

structGPIOled_cs[4]=

{LED_CS0_PORT,LED_CS0},

{LED_CS1_PORT,LED_CS1},

{LED_CS2_PORT,LED_CS2},

{LED_CS3_PORT,LED_CS3},

};

//led数据端口

structGPIOled_d[8]=

{LED_D1_PORT,LED_D1},

{LED_D2_PORT,LED_D2},

{LED_D3_PORT,LED_D3},

{LED_D4_PORT,LED_D4},

{LED_D5_PORT,LED_D5},

{LED_D6_PORT,LED_D6},

{LED_D7_PORT,LED_D7},

{LED_D8_PORT,LED_D8},

//函数名称:

LEDInit

//函数返回:

//参数说明:

LED初始化。

voidLEDInit()

{

uint_8i=0;

//定义8根数据线为输出,初始输出0

for(i=0;

i<

8;

i++)

gpio_init(led_d[i].gpio_port,led_d[i].gpio_pin,1,0);

//定义4位选线定义为输出,初始输出0

4;

gpio_init(led_cs[i].gpio_port,led_cs[i].gpio_pin,1,0);

LEDshow1

i:

指定LED哪一位显示,c:

显示的内容

指定LED的第i位显示c。

voidLEDshow1(uint_8i,uint_8c)

uint_8temp;

uint_8j;

//位选全部置0

for(j=0;

j<

j++)

gpio_set(led_cs[j].gpio_port,led_cs[j].gpio_pin,0);

//数据上线

=7;

temp=(c>

j)&

0x01;

gpio_set(led_d[j].gpio_port,led_d[j].gpio_pin,temp);

//选择的位选置1

gpio_set(led_cs[i].gpio_port,led_cs[i].gpio_pin,1);

//显示码表

constuint_8Dtable[24]=

//0123456789

{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,

//10111213141516171819

//0.1.2.3.4.5.6.7.8.9.

0xBF,0x86,0xDB,0x4F,0x66,0x6D,0x7D,0x07,0xFF,0x6F,

//202122(全亮)23(全灭)

//EF

0x79,0x3E,0xFF,0x00};

LEDchangeCode

返回数据num对应的显示码

num:

需要转换成显示码的数字

数字转成显示码

//=====================================================================

uint_8LEDchangeCode(uint_8num)

returnDtable[num];

第五章系统测试

5.1运行界面调试

图一

图二

5.2运行结果图

第六章总结

6.1结论

经过一个多星期的努力,简易数字电压表基本完成。

但设计中的不足之处仍然存在。

通过这次设计我学会了CodeWarriorDevelopmentStudio软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计等内容,积累了不少经验。

数字电压表使用性强、结构简单、成本低、外接元件少。

通过本次设计,我对单片机这门课有了进一步的了解。

,在调试过程中遇到很多问题,发现自己在硬件上的理论知识学得不够扎实。

在以后的实践中,我将继续努力学习这方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。

6.2展望

一个多星期的课程设计,让我知道了什么是理论与实践相结合。

这次课程设计,使我对单片机这门课更加感兴趣。

做好这个课程设计,首先要提高自己的能力。

不打好专业基础是很难完成实验的,所以日常的学习不能马虎,不能随便敷衍。

其次是团队合作。

世界上没有相同的叶子,当然也没有两个不存在差异的人。

在一起的时候多多少少有矛盾,所以,与人交流很重要,这样可以使团队作用发挥到极致。

也便于认清自己和他人的性格,这样可以更好的找到友好并且高效的合作方法,合理分配任务,合力达成目标。

6.3致谢

实习期间,我收获很多书本上学不到的知识。

首先感谢老师给我们这次课程设计的机会,让我们对书本知识有了更熟练的掌握。

在此,非常感谢指导老师袁老师,感谢您在课程设计上给予我们的指导、提供给我们的帮助。

袁老师您严谨细致、一丝不苟的作风一直是我学习的榜样。

您循循善诱的教导和不拘一格的思路给予我无尽的启迪,课设的成功离不开您的悉心指导。

在此,向老师您致以诚挚的谢意和崇高的敬意。

同时从您身上我也学到了许多做人的道理,所有这些都将使我在今后的生活和工作中得到很多帮助。

其次还要感谢我的同学。

刚开始调试不出我们想要的结果,后来经过你们的指点,我尝试着去找错误,最终才得以完成。

所以说这个过程累并快乐着。

谢谢你们给予的帮助,让我能够顺利完成每一阶段的任务。

因为你们,我们才能组成电子班这个大家庭。

6.4参考文献

[1]王宜怀、郭芸等.嵌入式技术基础与实践(第三版).北京:

清华大学出版社.2013

[2]张越等.温度传感器的数字温度计[J].微电子学.2007

[3]李朝青.单片机原理及接口技术(简明修订版).杭州:

北京航空航天大学出版社.1998

[4]李广弟.单片机基础[M].北京:

北京航空航天大学出版社.1994

[5]田泽.嵌入式系统开发与应用.北京:

北京航天航空大学出版社.2006

[6]田泽.嵌入式系统开发与应用教程.北京:

[7]王粉花、王志良.嵌入式系统与单片机实践教程.北京:

清华大学出版社.2010

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1