鲁大单片机课程设计报告.docx

上传人:b****8 文档编号:9313709 上传时间:2023-02-04 格式:DOCX 页数:13 大小:111.57KB
下载 相关 举报
鲁大单片机课程设计报告.docx_第1页
第1页 / 共13页
鲁大单片机课程设计报告.docx_第2页
第2页 / 共13页
鲁大单片机课程设计报告.docx_第3页
第3页 / 共13页
鲁大单片机课程设计报告.docx_第4页
第4页 / 共13页
鲁大单片机课程设计报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

鲁大单片机课程设计报告.docx

《鲁大单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《鲁大单片机课程设计报告.docx(13页珍藏版)》请在冰豆网上搜索。

鲁大单片机课程设计报告.docx

鲁大单片机课程设计报告

单片机课程综合设计

设计题目:

环境温度采集和转换

 

学号:

姓名:

班级:

电子信息类1404

提交日期:

20160722

 

信息与电气工程学院

第一章系统介绍

1.基本要求:

利用NTC热敏电阻采集室内环境温度,并将温度(保留1位小数位)在数码管或者LCD屏上显示,要求精度达到1度(提示利用matlab模拟温度电阻与温度的关系曲线方程)。

同时将温度值转换为线性的周期方波输出,要求50摄氏度时输出一个下限(或上限)频率方波,20摄氏度时输出一个上限(或)频率方波,要求方波频率与温度成正比。

发挥部分:

温度精度达到0.5度,同时将温度值转换为4-20ma电流输出,50摄氏度输出20ma电流,0摄氏度输出4ma电流。

2.系统开发工具与开发环境:

电路图绘制工具-ProteusISIS单片机原理图

51源程序编译环境:

选用KeilC51集成开发环境;

Keil软件简介

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。

运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

硬件电路制作:

实验室提供基于STC12C5A60S2单片机的最小系统电路板及扩展用洞洞板,提供烙铁、焊丝等焊接工具等。

其他元器件、导线

第二章系统设计方案

2.1系统硬件设计

2.1.1.系统硬件框图

图1.系统硬件框架结构

2.1.2.主要硬件模块介绍(按照功能划分)

2.1.2.1测温电路

测温电路主要实现的是温度的采集。

用热敏电阻NTC10D—11与电阻搭建成桥式电路,通过P1.0口与单片机连接,作为A/D输入端口。

图2.测温电路

通过桥式电路采集温度。

热敏电阻随着温度的升高而阻值减小,采集热敏电阻随着温度变化的电压通过p1.0口输送到单片机内。

在单片机内部实现A/D转换,把模拟信号转化为数字信号。

附.输入电压公式:

Temperature=815-result*10+(result%10);

A/D转换后数字信号和温度转换公式:

Temperature=R*exp(K*(1/T1-1/T2));

2.1.2.2主控电路

主要由复位电路,晶振电路及滤除噪声电路组成。

最小系统——STC12C5A60S2

最小系统由STC12C5A60S2单片机,时钟电路和复位电路构成。

图3.最小系统

2.1.2.3显示电路

温度的输出,精确度为0.1度。

数码管显示模块:

LED数码管是由发光二极管构成的,亦称半导体数码管。

将条状发光二极管按照共阴极(负极)或共阳极(正极)的方法连接,组成“8”字,再把发光二极管另一电极作笔段电极,就构成了LED数码管。

若按规定使某些笔段上的发光二极管发光,就能显示从0~9的…系列数字。

同荧光数码管(VFD)、辉光数码管(NRT)相比,它具有:

体积小、功耗低、耐震动、寿命长、亮度高、单色性好、发光响应的时间短,能与TTL、CMOS电路兼容等的数显器件。

+、-分别表示公共阳极和公共阴极。

a~g是7个笔段电极,DP为小数点。

另有一种字高为7.6mm的超小型LED数码管,管脚从左右两排引出,小数点则是独立的。

本系统利用4位LED数码管静态显示温度阴极结构。

静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多。

LED数码管由7段发光二极管组成,当要显示某个数字时只要将数字所对应的引脚送入低电平。

图4.数码管显示

2.1.2.4频率转换

频率的输出,采用小灯泡的闪烁快慢来表示频率的高低。

频率输出模块。

图5.频率输出电路

频率通过P1.1口的输出,来控制LED灯闪烁的快慢。

2.2系统软件设计

(一)软件模块划分

图6.软件的模块划分

(二)各软件模块功能介绍

1.主程序

a)A/D转换程序。

把采集到的温度的变化的模拟量转变成数字信号。

b)频率的换算程序。

把数字信号转换成频率。

频率随着温度的增加而增大,设定的频率下限为1/16Hz,频率的上限为5Hz。

c)实现的是温度的换算程序。

把采集到的数字信号转换成温度(摄氏度)。

d)定时器/计数器T1的定时程序。

主要是运用到脉冲的输出。

2.显示温度

把温度P0口和P2口输出不同的段码,使共阴极的数码管显示其温度。

3.频率输出

通过P1.1口输出不用的频率,让小灯泡的闪烁快慢不同。

第三章系统实现

系统软件实现

初始化单片机:

ADC_CONTR|=0x80;P1ASF=0x01;ADC_CONTR=0xE0;

启动A/D转换:

ADC_CONTR|=0x08;

保存A/D转换结果:

result=ADC_RES;

频率转换,输出频率:

设置T1定时10ms,计数temp次中断,让result的值跟temp成正比,p1.1引脚的输出每隔temp次取反一次,以输出不同频率。

温度转换,输出温度:

根据公式Temperature=XXXXXXXX(亲测参数,无可奉告);

把数字信号转换成温度,再把温度拆开成个位,十位,百位,小数点后一位让数码管显示。

附C51程序,见附录2.

第四章设计小结

本文的环境温度采集和转换,只是单片机广泛应用于各行各业中的一例,通过本次设计,使我进一步熟悉了一个系统的设计过程,为毕业设计打下了坚实的基础。

STC单片机,体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,即使是非电子计算机专业人员,通过学习一些专业基础知识以后也能依靠自己的技术力量,来开发所希望的单片机应用系统。

单片机课程设计作为独立的教学环节,是自动化及相关专业集中实践性环节系列之一,是学习完《单片机原理及应用》课程后,并在进行相关课程设计基础上进行的一次综合练习。

单片机课程设计过程中,学生通过查阅资料,接口设计,程序设计,安装调试等环节,完成一个基于MCS-51系列单片机,涉及多种资源应用,并且有综合功能的小应用系统设计。

使我们不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路,电子元器件等方面的知识进一步加深认识,同时在软件编程,调试,相关仪器设备和相关软件的使用技能等方面得到较全面的锻炼和提高。

使我们增进对单片机的感性认识,加深对单片机理论方面的理解,加深单片机的内部功能模块的应用,如定时器/计数器,中断,片内外存储器,I/O接口,串行口等。

使我们了解和掌握单片机应用系统的软硬件设计过程,方法及实现,强化单片机应用电路的设计与分析能力。

提高我们在单片机应用方面的实践技能和科学作风,培育学生综合运用理论知识解决问题的能力。

由于时间紧迫,我们对针对每个细节的考虑不是太周到,但我们基本上是实现的温度实时采集与转换系统,对我们以后到企业提供了一定的基础,通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

在单片机设计这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。

这次环境温度采集和转换设计,使我受益匪浅。

通过对自己在上学期所学的知识的回顾,并发挥对所学知识的理解和思考及书面表达能力,自己亲手设计,最终完成目标了。

这为自己今后进一步学习,积累了一定的宝贵经验。

把知识转化为能力的实际训练,培养了我运用所学知识解决实际问题的能力。

第五章参考文献

[1]陈明荧,8051单片机课程设计实训教材   北京:

清华大学出版社,2004

[2]胡汉才,单片机原理及其接口技术   北京:

清华大学出版社,1995

[3]徐淑华,单片机微型机原理及应用哈尔滨工业大学出版社,1994

[4]刘复华,8098单片机及其应用系统设计清华大学出版社,1991

[5]陈键铎,8098单片机原理及应用技术.北京:

电子工业出版社,1995

第六章附录1

器件清单

热敏电阻   MF52-103/3435 10K ±1%精度 B值:

3435   15个

1K  20K 50K 100K   各50个

30欧 1/2W 电阻  50个 

轻触开关 6*6*5 直插式  10个

8050三极管   10个

附录2

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F

sbitLED1=P2^3;//位显示

sbitLED2=P2^2;

sbitLED3=P2^1;

sbitLED4=P2^0;

sbitDP=P0^7;//当DP=1时小数点亮

sbitPWM=P1^1;

uinttemp,temp1=400,result,RT=8888;

uchari,status,aa,qian,bai,shi,ge;

voidDelayMS(uintms)

{

ucharj;

while(ms--)for(j=0;j<40;j++);

}

//数码管显示模块,四位数码管,用个十百千代以表示。

voiddisplay(ucharqian,ucharbai,ucharshi,ucharge)

{

LED1=1;//显示第一位

P0=table[ge];

LED1=0;

DP=0;

DelayMS

(1);

LED1=1;

LED2=1;//显示第二位

P0=table[shi];

LED2=0;

DP=1;

DelayMS

(1);

LED2=1;

 

LED3=1;//显示第三位

P0=table[bai];

LED3=0;

DP=0;

DelayMS

(1);

LED3=1;

LED4=1;//显示第四位

P0=table[qian];

LED4=0;

DP=0;

DelayMS

(1);

LED4=1;

}

//Main函数

voidmain()

{

主函数无可奉告

}

//中断系统,通过中断计数,来得到脉冲宽度,进而得到外接小灯泡闪烁频率。

voidT1_INT()interrupt3

{

TH1=0xD8;

TL1=0xF0;

i++;

if(i==temp1)

{

PWM=!

PWM;//取反操作,得到周期脉冲。

i=0;

}

}

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

当前位置:首页 > 高等教育 > 医学

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

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