单片机课程设计通信.docx
- 文档编号:2918528
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:12
- 大小:127.64KB
单片机课程设计通信.docx
《单片机课程设计通信.docx》由会员分享,可在线阅读,更多相关《单片机课程设计通信.docx(12页珍藏版)》请在冰豆网上搜索。
单片机课程设计通信
基于单片机的数码管温度实时显示
院(系):
计算机系
专业:
通信工程
班级:
学生姓名:
学号:
指导教师:
2012年6月21日
1.摘要………………………………………………………..2
2.设计背景……………………………………………………3
3.设计方案……………………………………………………3
3.1共阳极数码管的驱动设计……………………………………………....3
3.2共阳极数码管动态显示……………………………………………………3
4.方案实施……………………………………………………4
4.1硬件电路的实施…………………………………………………………..5
4.2复位及震荡电路……………………………………………………………6
4.3软件设计…………………………………………………………………..6
4.4实物制作……………………………………………………………………6
5.成果与结论…………………………………………………6
5.1结果………………………………………………………………………..6
5.2结论………………………………………………………………………..6
6.收获与致谢…………………………………………………6
7.参考文献…………………………………………………..7
8附录(代码)……………………………………………….8
摘要
该系统是基于STC89C52单片机的两位数码管显示系统,该系统包括复位电路模块,外部时钟电路模块、数码管显示模块构成。
通过STC80C52进行控制,C语言编写了两位数码管循环扫描动态显示温度的程序。
数码管通过共阳极的三极管进行驱动。
电源由USB提供5V的直流电源。
复位用电容与按键的并联来实现。
时钟用12M的晶振来控制。
通过单片机的片选信号控制数码管的灯管,使其依次点亮,由于人眼有视觉暂留的特性和数码管的余辉效应,而扫描频率足够高,因此人眼是感觉不出数码管的变化的
关键词:
stc89c52;动态扫描显示;共阳极数码管
2.设计背景
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
LED数码管是单片机控制系统中最常见的显示器件之一,一般用来显示处理结果或输入输出信号的状态。
3.设计方案
3.1共阳极数码管的驱动设计
将数码管每2个LED灯对应单片机的一个I/O口。
通过单片机的P2口来控制LED灯的亮和灭。
I/O口之间互相独立,需要用I/O口直接控制LED。
动态显示将数码管的每个引脚一对一连接在一起接单片机的数据,而将各个数码管的公共端单独送至单片机的I/O口进行片选。
此外,在此基础上,用单片机与三极管来驱动数码管,从而实现数码管的动态显示。
3.2共阳极数码管动态显示
此次设计,用到的就是动态显示。
其中P2.7和P2.6端口分别控制数码管的个位和十位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示数字。
数码管动态显示电路如图3—2所示:
3-2共阳极数码管动态显示电路
4.方案实施
4.1硬件电路的实施
1.硬件组成框图如图4-1:
该电路的工作原理:
STC89C52从稳压电路中获得稳定的+5V电压,接到VCC端,提供稳定的电压;P0口通过电阻接到显示电路的八段数码管的abcdegdp端口上,数码管的共阳极接到三极管的集电极上;P2.7、P2.6口作为位接复路,实现电路的复位;XTAL1、XTAL2接晶振电路;P2.0口接DS18B20,最后将现在在数码管上。
4-1硬件组成框图如图
4.2复位及震荡电路
复位用电容与按键的并联来实现,将它们并在一起,一端接高电平,另一端接地,从而实现高电平复位的功能。
时钟用12M的晶振来组成振荡电路,来控制单片机对数码管的动态扫描。
复位及振荡电路如图4—2所示:
图4—2复位及振荡电路
4.3软件设计
此程序采用C语言编写了两位数码管循环扫描动态显示温度的程序。
DS18B20是单总线器件.其硬件接口比较简单,这是以相对复杂的软件编程为代价的。
DS18B20与单片机的接口协议也是通过严格的时序来实现的。
虽然增加软件开销,但由于STC89C52运行速度快,可以满足系统要求。
另外,对DS18B20操作的程序必须按照初始化,ROM操作命令,存储器操作命令.执行数据的先后顺序进行。
如果总线上只挂1个DS18B20.初始化后可执行跳过ROM命令,再发送温度转制命令。
温度转换完成后,PO口根据相应的数码管编码表输入相应的二进制码,进而是数码管显示出相应的温度数值。
图4-3程序流程图
4.4实物制作
焊接由于粗心大意,又焊错了好几个地方,好在无伤大雅,修改后,总算是能正常工作了。
然后重点考虑了晶体和电容与单片机的位置关系。
为了减少寄生电容,更好的保证振荡器稳定可靠地工作,将晶体与电容尽可能的安装得与单片机芯片近些。
使元器件的布局好看了不少。
5.结果与结论
5.1结果
经过对不同方案的分析、比较、取舍,然后进行原理图的设计,再经过电路板的焊接,软件的调试等环节的操作,最终实现了让数码管在单片机的控制下循环显示温度。
过程是艰辛的,中间失败了好些次,经过数次的检测,修改,见到数码管正常工作时的喜悦之情是无以言表的。
5.2结论
此次课程设计,使用的是STC89C52的单片机,它是一种低功耗,高性能的CMOS8位微控制器,有40个引脚。
通过单片机的不同I/O端口与外设连接,能够控制外设的工作情况,从而实现不同的符合各种需求功能的电路板。
而且LED数码管是单片机控制系统中最常见的显示器件之一,一般用来显示处理结果或输入输出信号的状态。
不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
单片机的引脚与数码管引脚的连线是要一一对应的,不然,是达不到预期效果的。
所以,在制作实物时,这一点是需要特别注意的。
6.收获与致谢
这次两位数码管显示设计的实习,加深了我对单片机的原理和工作过程的了解,以及系统地、全面地掌握单片机应用系统的基本设计方法、设计步骤和电路参数的计算方法。
同时,这次实习增强了我的动手能力,也让我对以前所学的知识进行了复习,更加熟练掌握了原理图的设计与仿真方法,了解硬件电路的焊接及调试过程应注意的问题,能用C语言进行软件的编写与调试。
在这次课程设计过程中,非常感谢老师给予我的细心指导和帮助,才能以最快速度,成功的完成此次的课程设计。
7.参考文献
[1]张毅刚.单片机原理及应用(第二版).北京:
高等教育出版社,2010.5
[2]童诗白.模拟电子技术基础(第四版).北京:
高等教育出版社,2006.5
[3]林之琦.基于Proteus的单片机可视化软硬件仿真.北京:
北京航空航天大学出版社,2006
8.附录(代码):
#include
#include
#include
#defineucharunsignedchar
#defineuintunsignedint;
sbitDQ=P2^0;//ds18b20端口
sfrdataled=0x80;//显示数据端口
sbitduan1=P2^7;
sbitduan2=P2^6;
/**********************************************************************/
uchartemp;
ucharflag_get,count,num,minute,second;
ucharcodetab[]={0x41,0xE7,0x52,0x62,0xE4,0x68,0x48,0xe3,0x40,0x60,/*9*/};//数码管段码表共阳
uchara,b;
voiddelay1(ucharMS);
unsignedcharReadTemperature(void);
voidInit_DS18B20(void);
unsignedcharReadOneChar(void);
voidWriteOneChar(unsignedchardat);
voiddelay(unsignedinti);
/************************************************************************/
main()
{
TMOD|=0x01;//定时器设置
TH0=0xef;
TL0=0xf0;
IE=0x82;
TR0=1;//启动定时器
P2=0x00;
count=0;
while
(1)
{
a=tab[temp/10];//十位温度
switch(a)
{
case0x41:
P1=0xff;break;
case0xE7:
P1=0x7F;break;
case0x52:
P1=0x3f;break;
case0x62:
P1=0x1F;break;
case0xE4:
P1=0x0F;break;
case0x68:
P1=0x07;break;
case0x48:
P1=~P1;delay(190);P1=~P1;delay(190);P1=~P1;P1=~P1;
break;case0xE3:
P1=~P1;delay(190);
P1=~P1;delay(190);
P1=~P1;delay(190);P1=~P1;delay(190);
break;case0x40:
P1=0x00;
break;
}
b=tab[temp%10];//个位温度
if(flag_get==1)//定时读取当前温度
{
temp=ReadTemperature();/*********(括号后面的数字为温度校准,根据自己系统的误差,自己调节温度误差即可.现在默认-1)********/
flag_get=0;
}
}
}
voidtim(void)interrupt1using1//中断,用于数码管扫描和温度检测间隔
{
TH0=0xef;//定时器重装值
TL0=0xf0;
num++;
if(num==50)
{num=0;
flag_get=1;//标志位有效
second++;
if(second>=60)
{second=0;
minute++;
}
}
count++;
if(count==1)
{P2=0x80;
//duan1=0;
//duan2=1;
dataled=a;}//数码管扫描
if(count==2)
{P2=0x40;
dataled=b;count=0;}
/*if(count==3)
{P1=2;
dataled=str[2];
count=0;}*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 通信