单片机实习报告.docx
- 文档编号:30310970
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:34
- 大小:412.66KB
单片机实习报告.docx
《单片机实习报告.docx》由会员分享,可在线阅读,更多相关《单片机实习报告.docx(34页珍藏版)》请在冰豆网上搜索。
单片机实习报告
实习设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
题目:
键盘显示电路,数字钟,温度计,频率计的设计
初始条件:
1单片机的相关知识(中断,串行通信,数码管显示电路)。
2C语言的相关知识(包括C语言与单片机之间有关的相关知识)。
3相关软件的相关知识(包括电路设计软件protel、编程软件KeiluV2、仿真软件proteus、下载软件stc-isp)
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1完成单片机最小系统的设计、焊接、调试
2完成ISP下载电路的设计、焊接
3完成应用系统扩展电路的设计、焊接、调试,应用扩展电路的具体要求包括键盘、显示电路,数字时钟,数字温度计,数字频率计
时间安排:
6.25~7.1:
理论设计
7.2~7.6:
仿真及实物制作
7.7:
撰写报告
7.8:
答辩
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
单片机技术作为计算机技术的一个分支,广泛地应用于工业控制,智能仪器仪表,机电一体化产品,家用电器等各个领域。
单片机实习设计是针对模拟电子技术,数字逻辑电路,电路,单片机的原理及应用课程的要求,对我们进行综合性实践训练的实践学习环节,它包括选择课设任务、软件设计,硬件设计,调试和编写课设报告等实践内容。
此次实习主要包括单片机最小系统部分,键盘显示电路部分,数字时钟部分,数字频率计部分,数字温度计部分,还有电路扩展部分将采集到的实时温度信息送至第二个单片机系统,最后再利用stc-isp软件完成在系统编程、下载,并完成系统软件调试。
关键词:
单片机、proteus、数字时钟、数字温度计、数字频率计、串行通信
Abstract
Signal-chiptechnologyasabranchofcomputertechnology,widelyusedinindustrialcontrol,smartinstrumentation,mechatronicsproducts,householdappliancesandothervariousfields.
SCMpracticeisdesignedfortheprincipleoftheanalogelectronics,digitallogicscircuits,circuit,microcontrollerandcourserequirements,thecomprehensivepractical
Trainingishands-onlearninglink,whichincludesselectclass-basedtasks,softwaredesign,commissioningandthepreparationismainlycontentoftheclass-basedreports
Thepracticeismainlypartofthesmallestsingle-chipsystem,thekeyboardpartofthecircuit,digitalclockparts,digitalfrequencymetersection,digitalthermometerpart,aswellascircuitextendedpartofthecollectedreal-timetemperatureinformationsenttothesecondmicrocontrollersystem,andfinallystc-ispsoftwarein-systemprogramming,download,andcompletesystemsoftwaredebugging.
Keywords:
microcontroller,proteus,digitalclock,digitalthermometer,digitalfrequencymeter,serialcommunication.
1实习目的与任务要求
1.1实习目的
1、巩固《单片机原理与应用》理论课的理论知识;
2、熟悉单片机应用系统的硬件设计及软件设计的基本方法;
3、将《单片机原理与应用》理论课的理论知识应用于实际的应用系统中;
4、训练单片机应用技术,锻炼实际动手能力。
1.2实习任务
(1)完成单片机最小系统的设计、焊接、调试;
(2)完成ISP下载电路的设计、焊接;
(3)完成应用系统扩展电路部分的设计、焊接、调试,应用系统扩展电路的具体要求如下:
1)键盘、显示电路
利用单片机最小系统、6个7段LED数码管、12个按键,设计制作一个键盘、显示电路。
可以使用8279键盘显示接口电路,也可以使用单片机的并行接口作为键盘显示接口。
2)数字时钟
在键盘、显示电路的基础上完成一个数字时钟的设计,完成以下功能:
a.要求以24小时计时方式显示时、分、秒;
b.时、分、秒可以通过按键分别调整。
3)数字温度计
在上题的硬基础上,制作一个数字温度计。
完成以下功能:
a.利用DS18B20可编程1-Wire数字温度传感器芯片,或利用AD590温度传感器芯片和A/D转换器芯片采集温度温度信号;
b.当按下键盘上的温度显示按键时将实时温度信息显示在LED显示器上,当按下键盘上的时钟显示按键时,恢复时钟的正常显示;
c.通过串行通信的方式,将采集到的实时温度信息送至第二个单片机系统,并在二个单片机系统显示实时温度。
4)数字频率计
在上题的硬基础上,制作一个数字频率计。
完成以下功能:
a.利用MCU设计一个数字频率计,用于检测0~500kHz周期信号的频率,输入信号幅度范围:
0.1~10V;
b.当按下键盘上的频率显示按键时将测量的频率信息显示在LED显示器上,当按下键盘上的时钟显示按键时,恢复时钟的正常显示;
(4)利用仿真软件完成系统仿真工作;
(5)完成系统软件的设计,包括程序结构设计、流程图绘制、程序设计。
1.3实习要求
1)利用PROTEL等软件进行硬件设计;
2)利用KeiluV2软件完成应用系统软件设计;
3)利用PROTEUS软件进行仿真设计;
4)完成单片机最小系统和应用系统电路板的焊接;
5)对电路进行调试;
6)利用stc-isp软件完成在系统编程、下载,并完成系统软件调试;
7)题目由指导教师提供;
8)要求每个学生单独完成硬件软件设计、仿真、焊接、调试任务;
9)写出实习报告,实习报告主要包括以下内容:
目录、摘要、关键词、基本原理、方案论证、硬件设计、软件设计(带流程图、程序清单)、仿真结果、实物运行结果照片、结论、参考文献等;
10)实习完成后通过答辩;
11)答辩时交实习报告电子文档,通过答辩后根据修改意见修改并打印、装订成册。
2设计方案
2.1键盘显示电路
方案一:
使用8279键盘显示接口电路
8279是可编程的键盘、显示接口芯片。
它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用广泛。
8279内部有键盘FIFO(先进先出对站)/传感器双重功能的64BRAM,键盘控制部分可控制8×8=64个按键或控制8×8阵列方式传感器。
该芯片能自动消除键抖动并具有双键锁定保护功能。
显示器RAM容量为16×8,即显示器最大配置可达l6位LED数码显示。
8279与8031单片机及键盘/显示器接口电路已有实用电路,且有资料介绍,但它们均为一片8279及键盘/显示器接口电路,只能满足一般情况下工作需要,而不能满足某些情况下的工作需求。
方案二:
使用单片机的并行接口作为键盘显示接口
采用单片机的并行口作为键盘显示接口,即将键盘矩阵、显示数码管等直接接到单片机的并行接口P0-P3,通过对键盘的操作对单片机进行输入,通过单片机的输出控制数码显示管。
这种方案简单方便,且便于编程与操作,且不需要用到接口芯片及译码芯片等,为实物的焊接带来便利。
综上所述,本次设计键盘、显示电路采用方案二完成键盘、显示电路。
2.2数字时钟电路
方案一:
采用数码管及键盘实现时钟显示
采用LED显示,分静态显示和动态显示。
对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,且可靠性也较低。
而对于动态显示方式,可以避免静态显示的问题。
在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。
该方案具有硬件电路简单的特点。
方案二:
采用时钟芯片DS1302实现时钟显示
Dallas公司的专用时钟芯片DS1302内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。
为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。
当电网电压不足或突然掉电时,可使系统自动转换到内部锂电池供电系统。
而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。
由于单片机之前键盘显示电路采用数码管,故本次设计采用方案一实现数字时钟。
2.3数字温度计
方案一:
采用热电偶温差电路测温
采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。
通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。
数据采集部分则使用带有A/D通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。
热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D转换电路,感温电路比较麻烦。
系统主要包括对A/D0809的数据采集,自动手动工作方式检测,温度的显示等,这几项功能的信号通过输入输出电路经单片机处理。
此外还有复位电路,晶振电路,启动电路等。
故现场输入硬件有手动复位键、A/D转换芯片,处理芯片为51芯片,执行机构有4位数码管、报警器等。
方案二:
采用数字温度芯片DS18B20测量温度
采用数字温度芯片DS18B20测量温度,输出信号全数字化。
便于单片机处理及控制,省去传统的测温方法的很多外围电路。
且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。
在0—100摄氏度时,最大线形偏差小于1摄氏度。
DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89S51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。
这样,测温系统的结构就比较简单,体积也不大。
采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。
既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据。
该系统利用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。
该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。
从以上两种方案,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。
方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案二实现温度计的设计。
2.4数字频率计
方案一:
采用专用频率计模块实现频率测量
由频率计专用模块(如ICM7216)构成,它的特点是结构简单,量程可以自动切换。
ICM7216内部带有放大整形电路,可以直接输入模拟信号。
外部振荡部分选用一块高精度晶振体和两个低温系数电容构成10MHz并联振荡电路。
用转换开关选择10ms、0.1s、1s和10s四种闸门时间,同时量程自动切换。
缓冲电路是为了让频率计采用记忆方式,即计数过程中不显示数据,待计数过程结束后,显示测频结果,并将此显示结果保持到下一次计数结果,显示时间不小于1s,小数点位置随量程自动移动。
方案二:
用单片机数字式测量完成频率测量
系统采用单片机作为控制核心,应用单片机的定时计数、中断等控制运算功能,采用数字式测量方法完成频率、脉宽、占空比的测量,单片机的使用让整个系统具有极为灵活的可编程性,能方便地对系统进行功能扩展与改进。
综上所述,本次审计由于是在单片机最小系统板上扩展而来的,故选用方案二来实现数字频率计的设计。
3硬件电路设计
3.1单片机最小系统
单片机最小系统由单片机STC89C51、复位电路、时钟电路组成如图3.1所示
图3.1单片机最小系统
3.2键盘显示电路
3.2.1键盘电路
利用单片机最小系统、6个7段LED数码管、12个按键,设计制作一个键盘、显示电路。
可以使用8279键盘显示接口电路,也可以使用单片机的并行接口作为键盘显示接口。
在这个实习中我选着使用单片机的并行接口作为键盘显示接口,这里用到的是3ⅹ4的矩阵键盘接到单片机的P2口。
如图3.2所示:
图3.2键盘电路
3.2.2显示电路
用到六个数码管,只需要控制段选和位选就可以控制那个数码显示什么数字。
因为段选由P0口提供的数据控制,位选由P2口提供的数据控制。
数码管显示电路如图3.3所示:
图3.3数码管显示电路
3.3温度采集电路
利用DS18B20可编程1-Wire数字温度传感器芯片来完成温度传感部分,如图3.4所示:
图3.4温度采集电路
3.4下载电路
下载电路部分由MAX232和RS-232C串口电缆组成。
主要用于与实际电路相连将程序下载到电路中如图3.5所示
图3.5下载电路
4软件程序设计
4.1数字时钟的设计
图4.1数字时钟的程序流程图
4.2数字温度计的设计
图4.2数字温度计的程序流程图
4.3数字频率计的设计
图4.3数字频率计的程序流程图
4.4串口通信的设计
图4.4发送数据的程序流程图图4.5接收数据的程序流程图
5利用proteus仿真的结果
5.1数字时钟的仿真结果
5.1.1对时钟的调节
当K1按下3的整数倍次数是时,对时进行调节。
调节之前的如图5.1所示:
图5.1原来的时钟
时钟加1之后的的示数如图5.2所示:
图5.2时钟加1之后的示数
时钟减1之后的示数如图5.3所示:
图5.3时钟减1之后的示数
5.1.2对分钟的调节
当K1按下3的整数倍余1次数是时,对分钟进行调节
分钟加1之后示数如图5.4所示:
图5.4分钟加1的示数
分钟减1之后示数如图5.5所示:
图5.5分钟减1的示数
5.1.3对秒钟的调节
当K1按下3的整数倍余2次数是时,对秒钟进行调节
秒钟加1之后示数如图5.6所示:
图5.6秒钟加1的示数
秒钟减1之后示数如图5.7所示:
图5.7秒钟减1的示数
5.2数字温度计的仿真结果
数字温度计按下k5键时显示温度,按下k7键时恢复时钟
按下k5键时数码管的显示如图5.8所示:
图5.8显示温度
按下k7键时数码管的显示如图5.9所示:
图5.9恢复时钟
5.3数字频率计的仿真结果
数字温度计按下k6键时显示方波的频率,按下k7键时恢复时钟
按下k6键时当频率为4.8HZ时,数码管如图5.10所示:
图5.104.8HZ频率的显示
按下k6键时当频率为498kHZ时,数码管如图5.11所示:
图5.11498KHZ频率的显示
按下k7键时数码管的显示如图5.12所示:
图5.12恢复时钟
5.4串行通信的仿真结果
通过串行通信的方式,将采集到的实时温度信息送至第二个单片机系统,并在第二个单片机系统显示实时温度。
两个数码管的显示如图5.13所示:
图5.13串行通信数码管的显示
6实习总电路图
图6.1实习总电路图
7实习小结
在这次实习中我学习了PROTEL、PROTUES、KEIL、STC-SIP等软件的使用以及C语言、单片机编程等已经在课本上学到的知识。
用PROTEL完成硬件设计,它可以完成硬件电路板PCB设计,对于指导电路图的焊接有直接显著的作用。
而用PROTUES仿真原理图这可以帮助我们测试调试程序,在PROTUES中仿真可以直接将KEIL中汇编好生成的HEX文件直接载入单片机中,来仿真看结果是否与预期的结果相符从而知道所编写的程序是否正确。
KEIL能支持C语言汇编使得写程序变得容易,使我们对C语言的运用有了更深的认识和理解以及它的重要应用
要实现数字时钟要求以24小时计时方式显示时、分、秒;时、分、秒可以通过按键分别调整。
要用到数码管动态显示,矩阵键盘扫描,这两个子函数模块。
在矩阵键盘扫描程序提供了按键调整时间的功能,动态数码管程序用于显示时间。
数字温度计利用DS18B20可编程1-Wire数字温度传感器芯片,先启用温度转换函数,然后获取温度并显示,再进行温度处理,将浮点型温度格式化为字符型,再显示温度;加入键盘扫描程序后,当按下键盘上的温度显示按键时将实时温度信息显示在LED显示器上,当按下键盘上的时钟显示按键时,恢复时钟的正常显示;通过串行通信的方式,将采集到的实时温度信息送至第二个单片机系统,并在二个单片机系统显示实时温度。
利用MCU设计一个数字频率计,利用内部的定时器中断计算外部脉冲的个数,同时通过外部中断输出频率的值。
8参考文献
【1】.谢自美电子线路设计-实验-设计华中科技大学出版社(第三版)2006
【2】.郭天祥51单片机C语言教程电子工业出版社2009年12月
【3】.姚燕南、姚向华、乔瑞萍微型计算机原理西安电子科技大学出版社2008
【4】.李群芳、张士军、黄健单片微型计算机电子工业出版社2009
【5】.秦业Protel99SE实战详解与技巧机械工业出版社2009
【6】.刘文涛单片机语言C51典型应用设计人民邮电出版社2006
附录一
1主机程序
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitdula=P2^6;
sbitwela=P2^7;
sbitkey1=P3^4;
sbitkey2=P3^5;
sbitkey3=P3^6;
sbitkey4=P3^7;
sbitds=P2^2;
uinttemp;
floatf_temp;
ucharbuf[3];
uchari,num,hour,min,sec,num1,num2,num3,num4;
unsignedlongintfre;
unsignedlongintfre1;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,//带小数点的0~9编码
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//不带小数点的0~9的编码
voiddelayms(uintxms)
{
uinti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
voiddisplay(ucharnum1,uchardat)//数据显示程序
{//num是第几个数码管,dat是要显示的//数字
uchari;
i=0xff;
i=i&(~((0x01)<<(num1)));//用I来存储位选数据,只有一位为0
P0=0xff;
wela=1;P0=i;wela=0;
P0=0x00;
dula=1;P0=table[dat];//编码赋给P0口
dula=0;
delayms
(2);
}
voiddis_time(ucharhour,ucharmin,ucharsec)//显示时间函数
{
display(0,hour/10);display(1,hour%10+10);
display(2,min/10);display(3,min%10+10);
display(4,sec/10);display(5,sec%10);
}
voidkeyscan()
{
if(key1==0)
{
delayms(10);
if(key1==0)
{num=4;
TR0=0;num--;while(!
key1);delayms(10);while(!
key1);
while(num)
{
dis_time(hour,min,sec);
if(key1==0){delayms(10);if(key1==0)num--;}while(!
key1);
if(key4==0){delayms(10);if(key4==0)num=0;}while(!
key4);
switch(num)
{
case3:
if(key2==0){delayms(10);if(key2==0){sec++;if(sec==60)sec=0;while(!
key2)dis_time(hour,min,sec);display(5,sec%10);}}
if(key3==0){delayms(10);if(key3==0){sec--;if(sec==255)sec=59;while(!
key3)dis_time(hour,min,sec);display(5,sec%10);}}
break;
case2:
if(key2==0){delayms(10);if(key2==0){min++;if(min==60)min=0;while(!
key2)dis_time(hour,min,sec);display(3,min%10+10);}}
if(key3==0){delayms(10);if(key3==0){min--;if(min==255)min=59;while(!
key3)dis_time(hour,min,sec);display(3,min%10+10);}}
break;
case1:
if(key2==0){delayms(10);if(ke
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实习 报告