单片机实习课设报告.docx
《单片机实习课设报告.docx》由会员分享,可在线阅读,更多相关《单片机实习课设报告.docx(45页珍藏版)》请在冰豆网上搜索。
单片机实习课设报告
实习执行大纲
一、实习目的
1、巩固《单片机原理与应用》理论课的理论知识;
2、熟悉单片机应用系统的硬件设计及软件设计的基本方法;
3、将《单片机原理与应用》理论课的理论知识应用于实际的应用系统中;
4、训练单片机应用技术,锻炼实际动手能力。
二、实习纪律与要求
1、实习纪律
1)参加实习的学生必须按照实习大纲的要求,在指导教师的指导下,全面完成实习任务;
2)听从指导教师安排,严格遵守实习纪律;
3)因故在实习期间缺勤累计超过规定时间的三分之一,不得参加本次实习考核,但可在补足所缺天数后再给予考核并评定实习成绩。
2、基本要求
1)利用PROTEL等软件进行硬件设计;
2)利用KeiluV2软件完成应用系统软件设计;
3)利用PROTEUS软件进行仿真设计;
4)完成单片机最小系统和应用系统电路板的焊接;
5)对电路进行调试;
6)利用stc-isp软件完成在系统编程、下载,并完成系统软件调试;
7)题目由指导教师提供;
8)要求每个学生单独完成硬件软件设计、仿真、焊接、调试任务;
9)写出实习报告,实习报告主要包括以下内容:
目录、摘要、关键词、基本原理、方案论证、硬件设计、软件设计(带流程图、程序清单)、仿真
结果、实物运行结果照片、结论、参考文献等;
10)实习完成后通过答辩;
11)答辩时交实习报告电子文档,通过答辩后根据修改意见修改并打印、装订成册。
三、实习地点
四、实习时间
19-20周
五、实习内容
1、实习所需主要材料(供参考)
(1)单片机最小系统部分
序
号
名称
数量
1
万能实验电路板
1块
2
单片机STC89C52
1只
3
晶振12MHz
1只
4
30PF瓷片电容
2只
5
10k/0.25W电阻
1只
6
10uF/16V电解电容
1只
7
2k/0.25W电阻
1只
8
10k/9脚排阻
1只
9
5V/500mA直流电源
1个
10
排针、按钮、LED、导线等
若干
(2)下载电路部分
序
号
名称
数量
1
万能实验电路板
1块
2
MAX232
1片
3
0.1uF瓷片电容
4只
4
DB9插座
1只
5
RS-232C串口电缆(9针)
1根
(3)扩展电路部分
扩展电路部分材料根据设计方案确定。
(4)软件部分
序
号
名称
数量
1
电路设计软件PROTEL
1套
2
编程软件KeiluV2
1套
3
仿真软件PROTEUS
1套
4
下载软件stc-isp
1套
(5)工具
序
号
名称
数量
1
PC(带RS-232C口)
1台
2
万用表
1块
3
电烙铁
1只
4
焊锡、松香等
若干
2、任务
1)利用上述材料完成包含如下系统功能组件的单片机最小系统的设计、焊接、调试
(1)键盘
一个4X4的矩阵键盘,其中,10个按键是0~9数字键;另外6个是功能键,用于功能选择和控制。
(2)显示电路
由6个7段LED数码管组成的显示电路。
(3)温度检测
利用DS18B20可编程1-Wire数字温度传感器芯片,或利用AD590温度传感器芯片和A/D转换器芯片采集温度温度信号。
(4)串口串行通信
利用51的串口实现串行通信接口电路。
2)完成ISP下载电路的设计、焊接
3)完成系统软件的设计,包括程序结构设计、流程图绘制、程序设计,实现如下功能
(1)功能选择
通过功能选择键,使得单片机处于不同的工作状态并通过LED显示相应的内容。
(2)温度显示
通过功能选择键选择温度检测、显示后,LED显示温度值。
(3)数据输入
通过功能选择键选择数据输入后,将通过键盘键入的0~9按键值显示在LED上,其中,最后输入的显示在最左边,之前键入向右移动一位。
(4)数据通信
将两个单片机最小系统通过串口连接起来,其中一个作为主系统,另一个作为辅系统。
当通过功能选择键选择数据通信后,当在主系统上进行功能
(2)、功能(3)的操作时,辅系统的LED上显示与主系统同样的内容。
4)利用仿真软件完成系统仿真工作
5)在单片机最小系统硬件上实现任务3中规定的功能
实习报告
单片机应用实习
MicrocomputerApplicationPractice
摘要
本次设计是以单片机STC89C52为核心,在最小系统的基础上完成扩展部分的设计。
扩展电路包括4个部分,分别是矩阵键盘、显示电路、数字温度计、串口通信。
其中硬件部分由最小系统、矩阵键盘、温度传感器和数码管显示电路组成,所有的算法都在软件程序实现。
整个设计可以完成键盘的扫描、通信、温度和的显示的功能,温度和键盘数据还可以通过串口送至另一个单片机显示。
本设计的目的是通过在对单片机原理及应用的学习,以及查阅资料,培养自学与动手能力,把学到的知识应用到日常生活当中。
在设计的过程中,不断的补充不知道的内容、巩固所学,和队友的分工合作、相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。
关键字:
单片机、键盘、温度传感器、显示
Abstract
ThisdesignisbasedonmicrocontrollerSTC89C52asthecore,onthebasisoftheminimumsystemtocompletethedesignoftheextension.Extensioncircuitconsistsoffourparts,respectivelyismatrixkeyboard,displaycircuit,digitalthermometer,aserialportcommunication.Thehardwarepartbyminimumsystem,matrixkeyboard,temperaturesensorandthedigitaltubedisplaycircuit,allthealgorithmsarerealizedinsoftwareprograms.Cancompletethewholedesignofthekeyboardscanning,communications,temperature,andthedisplayofthefunction,thetemperatureandthekeyboardcanalsobeviaaserialporttosenddatatoanothersinglechipmicrocomputer.
Thepurposeofthisdesignisbythesinglechipmicrocomputerprincipleandapplicationoflearning,andaccesstoinformation,cultivatingself-studyandpracticalability,theapplicationofknowledgetothedailylife.Intheprocessofdesign,andcontinuouslysupplementsdon'tknowthecontentandconsolidatewhattheyhavelearned,andteammate'sdivisionoflaborcooperation,mutualdiscussion,usescientificmethodstoanalyzetheproblemsolvedifficulties,masterthesingle-chipmicrocomputersystemdevelopmentprocess,tolearntheprocessingmethodofcommonproblems,systemofexperienceaccumulation,andgivefullplaytothecombinationofteachingandpractice.
Keyword:
singlechipmicrocomputer,keyboard,temperaturesensors,display
1设计任务及要求
1.1设计任务
1)利用上述材料完成包含如下系统功能组件的单片机最小系统的设计、焊接、调试
(1)键盘
一个4X4的矩阵键盘,其中,10个按键是0~9数字键;另外6个是功能键,用于功能选择和控制。
(2)显示电路
由6个7段LED数码管组成的显示电路。
(3)温度检测
利用DS18B20可编程1-Wire数字温度传感器芯片,或利用AD590温度传感器芯片和A/D转换器芯片采集温度温度信号。
(4)串口串行通信
利用51的串口实现串行通信接口电路。
2)完成ISP下载电路的设计、焊接
3)完成系统软件的设计,包括程序结构设计、流程图绘制、程序设计,实现如下功能
(1)功能选择
通过功能选择键,使得单片机处于不同的工作状态并通过LED显示相应的内容。
(2)温度显示
通过功能选择键选择温度检测、显示后,LED显示温度值。
(3)数据输入
通过功能选择键选择数据输入后,将通过键盘键入的0~9按键值显示在LED上,其中,最后输入的显示在最左边,之前键入向右移动一位。
(4)数据通信
将两个单片机最小系统通过串口连接起来,其中一个作为主系统,另一个作为辅系统。
当通过功能选择键选择数据通信后,当在主系统上进行功能
(2)、功能(3)的操作时,辅系统的LED上显示与主系统同样的内容。
4)利用仿真软件完成系统仿真工作
5)在单片机最小系统硬件上实现任务3中规定的功能
1.2任务分析
键盘电路是4X4矩阵键盘,共12个按键组成,通过与单片机I/O口相连来完成键盘扫描,扫描时按照逐行扫描方式来进行的。
数字温度计主要使用了温度传感器芯片DS18B20,将传感器的温度送至单片机,通过单片机控制在数码管上显示出来。
还可以通过串行通信的方式,在第二个单片机上显示出来。
串行通信是指数据按位顺序传送的通信。
串行数据传送的特点是:
通信线路简单,最多只需一对传输线即可实现通信,成本低但速度慢,其通信线路既能传送数据信息,又能传送控制信息。
它对信息的传送格式有固定要求,具体分为异步和同步两种信息格式.与此相应有异步通信和同步通信两种方式.
2基本原理
2.1AT89C51简介
2.1.1AT89C51概述
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图所示。
图2-1
2.1.2管脚功能
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(计时器0外部输入)
P3.5T1(计时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.2DS18B20介绍及原理
2.2.1DS18B20概述
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢
封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
2.2.3DS18B20工作原理及应用
DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。
其一个工作周期可分为两个部分,即温度检测和数据处理。
在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。
18B20共有三种形态的存储器资源,它们分别是:
ROM只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。
数据在出产时设置不由用户更改。
DS18B20共64位ROM。
RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。
第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。
在上电复位时其值将被刷新。
第5个字节则是用户第3个EEPROM的镜像。
第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。
第9个字节为前8个字节的CRC码。
EEPROM非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。
3方案论证
3.1总体系统框图
系统原理方框图如图所示:
图3-1
3.2显示方案的选择
方案一:
通过软件把所要的数据转化为七段显示的数据,直接通过单片机接口来显示.
方案二:
通过液晶1602显示。
该液晶是工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)
通过比较,决定使用数码管来进行显示。
数码管成像效果好,硬件电路简单。
3.3按键状态读取方案的选择
方案1:
把按键接到单片机的中断口,若有按键按下,单片机接收到中断信号,再通过软件编写的中断服务程序来执行中断,优点是接线简单,简化了电路,但软件编写较为复杂,不易掌握。
方案2:
不使用中断,直接把开关分别接在单片机的接口上,通过查询端口信号来动作。
其优点是程序得到简化,可读性加强。
通过对方案的比较,选择方案2通过查询方式来读取端口信号,相对来说编程和硬件电路都比较简单。
3.4方案说明
本设计是以AT89C52单片机为主要的控制核心,通过外接16个键盘作为控制源输入端,通过不同的按键来观看和调节各种数据,七段数码管作为显示器件,DS18B20温度传感器用于感应外界温度,传送给单片机进行处理。
4硬件电路的设计
4.1矩阵键盘单元
4.1.1矩阵键盘的原理与检测方式
原理说明:
列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
键盘的工作方式一般有循环扫描和中断扫描两种。
循环扫描方式利用CPU在完成其他工作的空余,调用键盘扫描子程序来响应键输入要求。
在执行键功能程序时,CPU不再响应键输入要求。
键盘扫描程序通常具备4项功能:
第一,判断键盘上有无键按下。
第二,去除键抖动影响。
在判断有键按下,软件延时一段时间后,再判断键盘状态。
如果仍为有键按下状态,则确定;否则按键抖动处理。
第三,扫描键盘,得到按键的键号。
第四,判别闭合的键是否释放。
在系统初始化后,CPU必须反复轮流调用扫描式显示子程序和键盘输入程序。
在识别有键闭合后,执行规定的操作,然后再重新进人上述循环。
循环工作方式采用扫描键盘的工作方式,虽然能响应键输人的命令或数据,但是这种方式不管键盘上有无键按下,CPU总要定时扫描键盘;而应用系统在工作时,并不经常需要按键输入,因此,CPU常处于空扫描状态。
为了提高CPU的工作效率,可采用中断扫描工作方式,即只在键盘有键按下时发中断请求,CPU响应中断请求后,转中断服务程序,进行键盘扫描,识别键码。
中断扫描工作方式的一种简易键盘接口电路。
其直接由P1口中高、低字节构成4x4行列式键盘。
键盘的列线与P1口的低4位相接,键盘的行线接到Pl口的高4位。
图5中“与”门的4输入端分别与各列线相连,而输出端接单片机外部中断输入INT0。
初始化时,键盘行输出口全部置0。
当有键按下时,1NT0端为低电平,向CPU发出中断请求,若CPU开放外部中断,则响应该中断请求,进人中断服务程序。
此外还须注意保护与恢复现场。
4.1.2矩阵键盘电路部分及其说明
图4-1
说明:
本次设计采用循环扫描的方法,每次检测有按键按下,由于行列电平的变化,便开始查询此时行列电平值所对应的键盘编码,再由键盘编码输出到液晶显示编码并显示键值,由此按下一个按键,便可以得到相应的显示部分。
本设计可实现要求。
4.2数字温度计电路
数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如32.3摄氏度,然后通过显示单元,如LED显示出来给人观察。
这样就完成了数字温度计的基本测温功能。
还可以通过串行通信的方式在第二个单片机上显示出来。
硬件电路如下:
图4-2
4.3单片机最小系统电路
TC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,2个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
图4-3
5软件设计
5.1发送方程序设计
在设计出了三个分支程序:
串口通信函数,按键识别函数,温度计函数,现在要设计一个main()函数,将它们的功能整合到一起,在一个完整的大程序里实现所有功能。
为了使得程序显得简洁,可读性强,我使用了程序嵌套的方法,从而实现了三个程序之间的相互切换,在一个大程序中,实现了三个子函数的功能。
需要注意的是,在不同的程序中,其相应的寄存器工作状态是不相同的,所以在转入下一个循环时,必须先进行初始化。
总程序设计的程序流程图如图所示:
图14总程序设计