单片机实习报告样板一.docx
- 文档编号:9647379
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:37
- 大小:418.08KB
单片机实习报告样板一.docx
《单片机实习报告样板一.docx》由会员分享,可在线阅读,更多相关《单片机实习报告样板一.docx(37页珍藏版)》请在冰点文库上搜索。
单片机实习报告样板一
序号(学号):
0121018730125
学生实习报告书
实习类别
单片机应用实习
实习地址
武汉理工大学信息工程学院
学院
信息工程
专业
通信工程
班级
姓名
指导教师
黄铮
2012
年
12
月
25
日
摘要
51系列单片机是国内目前应用最广泛的一种8位单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用。
51系列及其衍生单片机还会在继后很长一段时间占据嵌入式系统产品的低端市场,因此,作为新世纪的大学生,在信息产业高速发展的今天,掌握单片机的基本结构、原理和使用是非常重要的。
本作品采用STC89C52单片机为控制MCU,具有数据输入、数据通信、温度计的功能,三种功能可以根据按键切换,执行其中的某一任务,任务执行效率高。
数据输入可以通过按键设置当前按键值;温度计可以将此时环境中的温度显示在数码管上;数据通信还能使两个单片机最小系统连接起来,其中一个作为主系统,另一个作为辅系统。
当通过功能选择键选择数据通信后,当在主系统上进行数据输入和温度计功能操作时,辅系统的LED上显示与主系统同样的内容。
关键字:
STC89C52数据输入温度计数据通信
Abstract
51seriesmicrocontrollerisdomesticcurrentlyoneofthemostwidelyappliedaeightoneofsinglechip,withembeddedsystem,thesystemofconceptofandgenerallyacceptedandapplication.51seriesanditsderivativesinglechipwillbeinthefollowingafteralongtimeofembeddedsystemproductsoccupythelowendofthemarket,therefore,asanewcenturyofcollegestudents,inthehigh-speeddevelopmentoftheinformationindustrytoday,andmasterthebasicstructureofsinglechipmicrocomputer,principleandtheuseisveryimportant.
ThisworkusingSTC89C52single-chipmicrocomputertocontroltheMCU,havingadatainput,datacommunication,thethermometerfunction,threekindsoffunctionaccordingtothekeyswitch,performonetask,taskexecutionefficiency.Datainputthroughthekeystosetthecurrentkeyvalue;thethermometercanbewhentheenvironmenttemperaturedisplayinthedigitalpipe;datacommunicationcanmakethetwosmallestsingle-chipsystemstolinkup,oneofthemainsystem,anotherastheauxiliarysystem.Whenthefunctionselectionkeysforselectingdatacommunication,whenthemainsystemfordatainputandthethermometerfunctionoperation,andauxiliarysystemofLEDdisplayandthemainsystemthesamecontent.
KeyWords:
STC89C52DatainputThermometerDatacommunication
1.方案设计与论证
1.1课设任务要求
1.1.1键盘、显示电路
利用单片机最小系统、6个7段LED数码管、4x4个矩阵按键,设计制作一个键盘、显示电路。
其中,10个按键是0~9数字键,另外6个是功能键,用于功能选择和控制。
可以使用8279键盘显示接口电路,也可以使用单片机的并行接口作为键盘显示接口。
通过功能选择键,使单片机处于不同的工作状态并通过LED显示相应的内容。
1.1.2数字温度计
在上题的硬基础上,制作一个数字温度计。
完成以下功能:
a.利用DS18B20可编程1-Wire数字温度传感器芯片,或利用AD590温度传感器芯片和A/D转换器芯片采集温度温度信号;
b.当按下键盘上的温度显示按键时将实时温度信息显示在LED显示器上;
c.通过串行通信的方式,将采集到的实时温度信息送至第二个单片机系统,并在二个单片机系统显示实时温度。
1.1.3数据输入
在以上硬件基础上,通过选择数据输入后,将通过键盘输入的0~9按键显示在LED上,其中,最后输入的显示在最左边,之前键入向右移动一位。
1.1.4数据通信
将两个单片机最小系统通过串口连接起来,其中一个作为主系统,另一个作为辅系统。
当通过功能选择键选择数据通信后,当在主系统上进行数据输入和温度计功能操作时,辅系统的LED上显示与主系统同样的内容。
1.2各模块实现方案
1.2.1数码管选择
方案一:
数码管有共阴、共阳数码管两种;若选用共阴数码管,51单片机I/O不能直接驱动数码管显示,因为电流太小,需要加74LS04/74HC04反相器,提供驱动电流,需要2片芯片控制6个数码管。
方案二:
若选用共阳数码管,51单片机I/O口不需要提供电流,只需一片74LS04/74HC04反相器就可以驱动六个数码管显示。
综合上述选择方案二。
1.2.2温度测量模块的选择
方案一:
利用AD590温度传感器芯片和A/D转换器芯片采集温度温度信号,可以满足设计要求。
方案二:
利用DS18B20可编程1-Wire数字温度传感器芯片,集成度高,单总线模式与方案一相比系统电路相对简单。
综合相比选择方案二。
1.2.3系统总体设计框图
图1系统框图
本系统以单片机STC89C52做控制MCU,由矩阵键盘模块、数码管显示模块、DS18B20测温模块,串口通信模块组成。
2.系统硬件设计与参数计算
2.1单片机最小系统
图2单片机最小系统
单片机最小系统由STC89C52、复位电路、晶振组成。
51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。
51单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。
其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。
计数值N乘以机器周期Tcy就是定时时间t。
设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。
在每个机器周期的S5P2期间采样T0、T1引脚电平。
当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。
由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。
当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2ms。
2.2矩阵键盘
图3矩阵键盘电路图
矩阵键盘由四行四列组成。
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
2.3数码管显示电路设计
图4数码管显示电路图
数码管显示电路由6个单独的7段数码管和74LS04组成,74LS04为数码管提供足够的电流。
发光二极管(LED是一种由磷化镓(GaP)等半导体材料制成的,能直接将电能转变成光能的发光显示器件。
当其内部有一一电流通过时,它就会发光。
7段数码管每段的驱动电流和其他单个LED发光二极管一样,一般为5~10mA;正向电压随发光材料不同表现为1.8~2.5V不等。
7段数码管的显示方法可分为静态显示与动态显示,下面分别介绍。
(1)静态显示
所谓静态显示,就是当显示某一字符时,相应段的发光二极管恒定地寻能可截止。
这种显示方法为每一们都需要有一个8位输出口控制。
对于51单片机,可以在并行口上扩展多片锁存74LS573作为静态显示器接口。
静态显示器的优点是显示稳定,在发光二极管导通电注一定的情况下显示器的亮度高,控制系统在运行过程中,仅仅在需要更新显示内容时,CPU才执行一次显示更新子程序,这样大大节省了CPU的时间,提高了CPU的工作效率;缺点是位数较多时,所需I/O口太多,硬件开销太大,因此常采用另外一种显示方式——动态显示。
(2)动态显示
所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。
虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。
显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。
调整电流和时间参烽,可实现亮度较高较稳定的显示。
若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据口或字形口)。
动态显示器的优点是节省硬件资源,成本较低,但在控制系统运行过程中,要保证显示器正常显示,CPU必须每隔一段时间执行一次显示子程序,这占用了CPU的大量时间,降低了CPU工作效率,同时显示亮度较静态显示器低。
2.4DS18B20模块电路设计
图5DS18B20模块电路
DS-18B20 数字温度传感器DS18B20的数字温度计提供9至12位的摄氏温度测量,并具有与非易失性用户可编程上限和下限报警功能。
信息单线接口送入DS18B20或从DS18B20送出,因此按照定义只需要一条数据线(和地线)与中央微处理器进行通信。
它的测温范围从-55°C到+125°C,其中从-10°C至+85°C可以精确到0.5°C。
此外,DS18B20可以从数据线直接供电(“寄生电源”),从而消除了供应需要一个外部电源。
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢。
封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
2.4串口通信模块
图6串口通信模块
串口通信串口按位发送和接收字节。
尽管比按字节的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成,分别是地线、发送、接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通信的端口,这些参数必须匹配。
波特率计算方式:
波特率=
(x为计数器装入初值)。
3.软件设计
图7软件系统框图
本系统软件系统框图如图所示,所有任务函数初始化,通过按键进行任务的切换,实时的更新数码管的显示。
若检测到数据输入功能键按下,则执行数据输入显示函数,依次按键0~9,将按键数显示在最左边,其他数字向右移。
按下退出键时退出该功能,进行其它功能的选择。
当选择温度检测功能时,调用温度检测和显示函数,将所测的温度显示在数码管上,按下退出键时退出该功能。
当选择数据通信功能时,再次检测按键,执行以上两个功能时,主机发出数据,从机接收后显示相同的内容,实现两个单片机之间的通信。
4.系统电路仿真
4.1数据输入仿真
图8数据输入仿真图
通过功能选择键后,分别按下0~9键时,最后输入的显示在最左边,之前键入向右移动一位。
按键10时,退出该功能。
4.2温度计仿真
图9温度计仿真图
如图所示,DS18B20此时的温度为32°,采集测量的温度为32°。
最后一位数码管显示功能指示符号。
5.实物照片
图10实物图片
图11实物图片(数据输入)
图12实物图片(测试温度)
图13实物图片(数据通信显示数据)
图14实物图片(数据通信显示温度)
图15单片机PCB图
6.设计心得
本次课程设计有较强的综合性,不仅要求设计者能灵活使用单片机的各种指令,熟练使用单片计计数器余定时器,熟练编写顺序结构程序,循环结构程序以及分支结构程序,还要求对单片机的电路连接结构,对数码管管理芯片有明确清晰的了解与认识,否则在设计的第一步就会遇到障碍。
经过几星期的查找资料,初步完成电路图的框架。
把整个板块分为几个小版块,一步一步的完成,最后完成整个课设作品。
通过本次的课设,加深了对单片机应用的理解。
同时锻炼了编写C语言程序的能力,熟悉了while,if,for等语句的应用,以及C语言的其他基础知识。
做课设过程中用到了画图软件Altium.Designer,还有仿真软件PROTEL。
在一步步的完成自己的课设时,更加熟悉了此类软件的应用,提高了使用软件的技巧。
同时也平时课本上学习的模电知识得以应用,还学到了课本没有介绍的应用,如三极管不仅仅有电流放大作用,还可以起到开关的作用。
除了知识应用,还锻炼了自己心里承受能力和冷静的分析能力,当遇到程序出错了,面对几百行的程序,要冷静下来,一步一步的分析,找出错误的原因。
静不下心,是很难发现错的,所以要冷静。
通过本次课设,最大的收获就是对于C语言程序的认识,思路很重要,写程序前要先对整体进行把握,再分别对每个部分思考画出软件执行流程图,遇到问题不要急躁,要静下心来,仔细排除错误。
同时学会和他人的合作,如设计分析电路时,互相的讲解,对电路的分析更加的清晰﹑明确。
7.参考文献
[1]谢自美.电子线路设计·实验·测试(第三版).武汉:
华中科技大学出版社
[2]康华光.电子技术基础模拟部分.高等教育出版社,2005
[3]康华光.电子技术基础数字部分.高等教育出版社,2005
[4]樊昌信.通信原理(第五版).北京:
国防工业出版社,2005
[5]张肃文.《高频电子线路(第三版)》:
高教出版社
附件:
图16硬件原理图
部分程序:
/*************************此部分为18B20的驱动程序
#include
#include
#include
unsignedcharcodeCrcTable[256]={
0,94,188,226,97,63,221,131,194,156,126,32,163,253,31,65,
157,195,33,127,252,162,64,30,95,1,227,189,62,96,130,220,
35,125,159,193,66,28,254,160,225,191,93,3,128,222,60,98,
190,224,2,92,223,129,99,61,124,34,192,158,29,67,161,255,
70,24,250,164,39,121,155,197,132,218,56,102,229,187,89,7,
219,133,103,57,186,228,6,88,25,71,165,251,120,38,196,154,
101,59,217,135,4,90,184,230,167,249,27,69,198,152,122,36,
248,166,68,26,153,199,37,123,58,100,134,216,91,5,231,185,
140,210,48,110,237,179,81,15,78,16,242,172,47,113,147,205,
17,79,173,243,112,46,204,146,211,141,111,49,178,236,14,80,
175,241,19,77,206,144,114,44,109,51,209,143,12,82,176,238,
50,108,142,208,83,13,239,177,240,174,76,18,145,207,45,115,
202,148,118,40,171,245,23,73,8,86,180,234,105,55,213,139,
87,9,235,181,54,104,138,212,149,203,41,119,244,170,72,22,
233,183,85,11,136,214,52,106,43,117,151,201,74,20,246,168,
116,42,200,150,21,75,169,247,182,232,10,84,215,137,107,53};
//***************初始化定时器进行每隔1000ms读取温度*****************
/************************************************************
*Function:
延时处理
*parameter:
*Return:
*Modify:
*************************************************************/
voidTempDelay(unsignedcharidataus)
{
while(us--);
}
/************************************************************
*Function:
18B20初始化
*parameter:
*Return:
*Modify:
*************************************************************/
voidInit18b20(void)
{
D18B20=1;
_nop_();
D18B20=0;
TempDelay(80);//delay530uS//80
_nop_();
D18B20=1;
TempDelay(14);//delay100uS//14
_nop_();
_nop_();
_nop_();
if(D18B20==0)
flag=1;//detect1820success!
else
flag=0;//detect1820fail!
TempDelay(20);//20
_nop_();
_nop_();
D18B20=1;
}
/************************************************************
*Function:
向18B20写入一个字节
*parameter:
*Return:
*Modify:
*************************************************************/
voidWriteByte(unsignedcharidatawr)//单字节写入
{
unsignedcharidatai;
for(i=0;i<8;i++)
{
D18B20=0;
_nop_();
D18B20=wr&0x01;
TempDelay(3);//delay45uS//5
_nop_();
_nop_();
D18B20=1;
wr>>=1;
}
}
/************************************************************
*Function:
读18B20的一个字节
*parameter:
*Return:
*Modify:
*************************************************************/
unsignedcharReadByte(void)//读取单字节
{
unsignedcharidatai,u=0;
for(i=0;i<8;i++)
{
D18B20=0;
u>>=1;
D18B20=1;
if(D18B20==1)
u|=0x80;
TempDelay
(2);
_nop_();
}
r
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实习 报告 样板