单片机原理及应用.docx
- 文档编号:12767710
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:35
- 大小:418.79KB
单片机原理及应用.docx
《单片机原理及应用.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用.docx(35页珍藏版)》请在冰豆网上搜索。
单片机原理及应用
实习任务书
学生姓名:
专业班级:
通信1201班
指导教师:
工作单位:
信息工程学院
题目:
单片机应用实习报告
初始条件:
单片机最小系统、下载电路、扩展电路、软件(PROTEUS等)、万用表、电烙铁等工具
要求完成的主要任务:
1)完成单片机最小系统的设计、焊接、调试
2)完成ISP下载电路的设计、焊接
3)完成系统软件的设计,包括程序结构设计、流程图绘制、程序设计
4)利用仿真软件完成系统仿真工作
5)在单片机最小系统硬件上实现任务3中规定的功能
时间安排:
序
号
阶段内容
所需时间
1
方案设计
2天
2
硬件设计
2天
3
软件设计
3天
4
系统仿真
1天
5
电路板焊接
2天
6
系统调试
3天
7
答辩
1天
合计
14天
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
目录
摘要I
AbstractII
1项目要求与说明1
2硬件电路原理与设计5
2.189C52最小系统模块5
2.2复位电路5
2.3振荡电路6
2.4矩阵键盘电路7
2.5数码管显示电路7
2.6串行通信电路8
2.7电源电路9
3软件设计10
3.1软件介绍10
3.2各模块程序设计11
4仿真测试14
4.1整体电路仿真图14
4.1数据输入仿真14
4.2数据显示仿真15
4.3串行通信仿真15
5实物图17
6心得体会19
7参考文献20
附录:
21
摘要
单片微型计算机,是集CPU、RAM、ROM,定时/计数器和多种接口于一体的微控制器。
随着电子技术的发展,大规模、超大规模集成电路和制造工艺的进一步提高,单片机以其高可靠性、高性能比、低电压、低功耗等一系列优点,广泛应用于智能产业和工业自动化上。
而51系列单片机是各单片机中最为典型和最有代表性的一种。
本次课程设计包括STC89S52单片机最小系统,包含复位、时钟电路及供电系统、4×4矩阵键盘、6位8段LED数码管显示电路以及DS18B20温度传感器,可以实现电路复位,移位输入,串口通信功能。
利用相关设计软件进行原理图设计,使用Keil软件编程并使用Proteus软件仿真,借此巩固单片机应用、模拟电路、数字电路课程及学会各种工程软件的使用,从而达到学习、了解单片机相关指令在各方面的应用。
关键字:
单片机最小系统4*4矩阵键盘LED数码管显示软件仿真
Abstract
Singlechipmicrocomputer,issettoCPU,RAM,ROM,timer/counterandmultipleinterfacesinonemicrocontroller.Withthedevelopmentofelectronictechnology,largescale,largescaleintegratedcircuitandmanufacturingprocesstofurtherimprove,chipforitshighreliability,highperformance,lowvoltage,lowpowerandaseriesofadvantages,widelyusedinsmartindustries,andindustrialautomation.And51SeriesSCMisthemosttypicalandthemostrepresentativeone.Thecurriculumdesign,includingSTC89S52MCUminimumsystem,comprisingareset,clockcircuitandpowersupplysystem,a4x4matrixkeyboard,6ofthe8LEDdigitaltubedisplaycircuit,canrealizetheresetcircuit,shiftinput,real-timetemperaturedisplay,serialcommunicationfunction.Usingtherelateddesignsoftwareschematicdesign,theuseofKeilsoftwareprogrammingandtheuseofProteussoftwaresimulation,toconsolidatetheSCMapplication,analogcircuit,digitalcircuitcourseandlearnallkindsofengineeringsoftware,soastoachievethelearning,understandingofrelatedinstructioninallaspectsoftheapplication.
Keywords:
smallestsingle-chipsystem,4*4matrixkeyboard,LEDdigitaldisplay,softwaresimulation
1项目要求与说明
一、实习目的
1、巩固《单片机原理与应用》理论课的理论知识;
2、熟悉单片机应用系统的硬件设计及软件设计的基本方法;
3、将《单片机原理与应用》理论课的理论知识应用于实际的应用系统中;
4、训练单片机应用技术,锻炼实际动手能力。
二、实习纪律与要求
1、实习纪律
1)参加实习的学生必须按照实习大纲的要求,在指导教师的指导下,全面完成实习任务;
2)听从指导教师安排,严格遵守实习纪律;
3)因故在实习期间缺勤累计超过规定时间的三分之一,不得参加本次实习考核,但可在补足所缺天数后再给予考核并评定实习成绩。
2、基本要求
1)利用PROTEL等软件进行硬件设计;
2)利用KeiluV2软件完成应用系统软件设计;
3)利用stc-isp软件完成在系统编程、下载,并完成系统软件调试;
4)题目由指导教师提供;
5)要求每个学生单独完成硬件软件设计、仿真、焊接、调试任务;
6)写出实习报告,实习报告主要包括以下内容:
目录、摘要、关键词、基本原理、方案论证、硬件设计、软件设计(带流程图、程序清单)、仿真结果、实物运行结果照片、结论、参考文献等;
7)实习完成后通过答辩;
8)答辩时交实习报告电子文档,通过答辩后根据修改意见修改并打印、装订成册。
三、实习地点
武汉理工大学信息工程学院通信实验室。
四、实习时间
2014年5月10日---2014年6月10日。
五、实习内容
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)串口串行通信
利用51的串口实现串行通信接口电路。
2)完成ISP下载电路的设计、焊接
3)完成系统软件的设计,包括程序结构设计、流程图绘制、程序设计,实现如下功能
(1)功能选择
通过功能选择键,使得单片机处于不同的工作状态并通过LED显示相应的内容;可选择的功能包括:
数据输入;数据显示;串口通信
(2)数据输入
通过功能选择键选择“数据输入”后,可分次输入10个4位十进制数据,并将输入的数据保存在内部RAM中。
数据输入要求:
第一步输入序号0~9,表明输入的是第几个4位十进制数据;
第二步按下回车键,完成序号输入;
第三步输入最多4位的十进制数据;
第四步按下回车键,完成数据输入;
重复第一步,开始新数据的输入;
输入数据的显示格式是:
最左边是序号,然后是空格,之后是从右到左的最多4位十进制数;
若在输入过程中(第一步或第三步)出现错误,按“清除”键,重新从第一步开始输入数据。
或者,自己设计10个十进制数的输入及显示方式。
(3)数据显示
通过功能选择键选择“数据显示”后,可显示之前输入的10个4位十进制数据中的任一个,要求:
第一步输入序号0~9,表明显示的是第几个4位十进制数据;
第二步显示相应的数据;
重复第一步、第二步,显示其他的数据;
数据的显示格式是:
最左边是序号,然后是空格,之后是要显示的数据,从右到左最多4位十进制数。
或者,自己设计数据的显示方式。
(4)数据通信
将两个单片机最小系统通过串口连接起来,其中一个作为主系统,另一个作为辅系统。
当通过功能选择键选择“串行通信”后,当在主系统上按下数字键后主系统的LED按从左向右移东的方式显示按键输入的数字,同时辅系统的LED上显示与主系统同样的内容。
4)利用仿真软件完成系统仿真工作
5)在单片机最小系统硬件上实现任务3中规定的功能
2硬件电路原理与设计
2.189C52最小系统模块
AT89C52是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器。
外接晶振、复位电路、电源即可组成单片机最小系统,如图所示。
图1
2.2复位电路
上电复位:
STC89系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10uF。
按键复位:
按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
电路图如下图。
图2
2.3振荡电路
51单片机有两种振荡方式,为内部振荡和外部振荡,内部振荡方式所得到时钟信号比较稳定,在实际电路中,一般是选用内部振荡方式。
单片机的XTAL1脚和XTAL2脚之间并接一个晶体振荡器就构成了内部振荡方式。
AT89S52单片机内部有一个高增益的反相放大器,XTAL1为内部反相放大器的输入端,XTAL2为内部反相放大器的输出端,在其两端接上晶振后,就构成了自激振荡电路,并产生振荡脉冲,振荡电路输出的脉冲信号的频率就是晶振的固有频率。
在实际应用中通常还需要在晶振的两端和地之间各并上一个小电容。
实际的内部振荡方式的电路如下图所示。
图3
2.4矩阵键盘电路
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
确定矩阵式键盘上何键被按下用“行扫描法”。
行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,第一步:
判断键盘中有无键按下,将全部行线置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。
若所有列线均为高电平,则键盘中无键按下。
第二步:
判断闭合键所在的位置,在确认有键按下后,依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
对矩阵键盘还要消除按键在闭合和断开时的抖动。
可采用延时方式软件消除抖动。
其连接电路如图所示。
图4
2.5数码管显示电路
LED数码管显示是利用半导体发光制成条形的发光二极管,封装在一起组成数字或其他符号形状。
数码管根据公共端不同,分为共阴极和共阳极两种形式。
根据设计需要,本次选用共阴极数码管。
由于一个数码管不能实现多位数显示,同时从节省I/O端口考虑,结合数电知识,利用两片74HC573扩展单片机的IO口,两片74HC573的输出分别接6位7段共阴数码管的段选端和公共端。
74HC573是8数据锁存器。
主要用于数码管、按键等等的控制,其输出受输出允许端OE和锁存允许端LE的控制,当LE为高时锁存器输出为高阻态,当OE为低,LE也为低时,输入端的信号输出到输出端。
在这里,使用两片74HC573的目的是为了扩展IO,达到时分复用单片机P0口的目的。
输出端与6位7段阴数码管相连,共同组成数码管显示电路。
电路图如图所示。
图5
2.6串行通信电路
串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。
串行通信的特点:
传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。
51单片机内部有一个全双工串行接口。
一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。
要实现利用串口与单片机进行通信,就要进行电平转换,把标准转化成单片机可以识别的。
MAX220–MAX249都是电平转换芯片,在单片机最小系统中,使用MAX232。
其电路原理图如图所示。
图6
2.7电源电路
系统电源电路如下图。
图7
3软件设计
3.1软件介绍
3.1.1程序编写软件Keil
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
本次设计编程主要使用Keil软件进行编程。
3.1.2仿真软件Proteus
Protues软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,在编译方面,它也支持IAR、Keil和MPLAB等多种编译。
本次设计采用的是Proteus进行仿真。
3.1.3下载程序软件STC-ISP
STC-ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。
本实验采用该软件进行下载。
3.2各模块程序设计
3.2.1数码管显示设计
该程序分为键盘扫描和数码管显示两部分,其程序流程图如下:
图8
图9
3.2.2串行通信设计
发送端流程图:
图10
由于要实现两个单片机之间的通信,在接收单片机上要写与发送程序相对应的接收程序,两者应设定相同的波特率。
对应的接收程序流程图如图所示。
图11
图12
3.2.3总程序设计
将键盘扫描、串口通行分别设计成子函数的形式,在总程序的main函数中调用这些子函数,将这些功能全部整合到一起,完成本次设计中的所有功能。
在总程序中为了实现各功能键按下后转移到相对应的子程序,使用了一个标志flage来实现跳转。
程序开始时,首先在大循环对键盘进行不断的扫描,检测相应的功能按键是否被按下,当相应的功能键被按下时,使标志flage置相应的数值,然后使用break跳出循环,转去执行相应的子程序。
4仿真测试
在Proteus中画好相应的原理图,检查无误后在单片机中加载相应的hex文件,点击仿真按钮开始仿真,观察仿真结果并记录相关数据。
4.1整体电路仿真图
电路用proteus进行仿真,整体电路仿真图如图所示。
图13
4.1数据输入仿真
按照要求依次输入序号和数据,输入1,9999,2,8888,3,411,如下图所示。
图14
图15
图16
4.2数据显示仿真
按下数据显示按键,输入序号,就会显示对应输入的值。
如下图所示。
图17
图18
图19
4.3串行通信仿真
按下串行通信按键,当在主系统上按下数字键后主系统的LED按从左向右移东的方式显示按键输入的数字,同时辅系统的LED上显示与主系统同样的内容。
如图所示。
图20
5实物图
图21
图22
图23
6心得体会
本次实习是对所学的单片机知识的一次综合运用,本次设计要求完成数据输入,数据显示,串口通信等内容。
在焊接实物的过程中遇到了很多问题,我明白了每一步都要细心仔细,关于元件和线路的布局,要多思考,进行设计一下,这样才会做出比较好的板子。
本次设计涉及到软件设计,而这些自己又很不熟悉,在同学的帮助下,才学会使用Protues软件,虽然过程很艰辛,但自己收获了很多。
通过硬件设计和软件设计,锻炼了自己的思考能力和动手能力,发现自己真的有好多不足,理论和经验上都有,在以后的学习中,我们要更多地去思考和学习,不断的锻炼自己。
在这次设计过程中,在电路的设计仿真整个过程中,我深刻地认识到了耐心与细心的重要性,我们必须严格要求自己,养成一丝不苟的学习和生活态度,为以后走向社会打基础。
我还认识到自己知识的不充实,以后要多学习,只有不断的为自己充电,才可以在课程设计中做的出色。
7参考文献
[1]霍孟友等,单片机原理与应用,机械工业出版社
[2]李广弟等 单片机基础北京航空航天出版社
[3]楼然苗等51系列单片机设计实例北京航空航天出版社
[4]马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社
[5]张毅刚等,MCS-51单片机应用设计,哈工大出版社,2004年第2版
[6]李全利,迟荣强编著 单片机原理及接口技术高等教育出版社
附录:
主系统程序:
#include
#include
bitFlag;
unsignedintReData,SenData;
chartable[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x84};//数码管代码
chardis_buf;
chari=0,j=0,k=0,inp1=0,inp2=0,inp3=0,on_off=0,disp=0;//初始化控制变量
chartemp,key,num,m,n;
chara[11][5];
voidkeydown(void);
voidkeyscan(void);
voiddisplay(void);
voidinit(void);
voiddelay(intz)
{
intx,y;
for(x=0;x for(y=0;y<110;y++); } voidmain() { P0=0xff; P2=0xff; dis_buf=0xbf; while (1) { for(m=0;m<10;m++) for(n=0;n<5;n++) a[m][n]=0; display(); } } voidkeydown(void) { P1=0xf0; if(P1! =0xf0) { keyscan();//扫描函数 while(P1! =0xF0); } } voidkeyscan(void) {intm,n; //**********为每个按钮设置一个编号key********************************** P1=0x0f;//低四位输入 delay (1); temp=P1; temp=(~temp)&0x0f; if(temp==1)key=0; elseif(temp==2)key=4; elseif(temp==4)key=8; elseif(temp==8)key=12; P1=0xf0; delay (1); temp=P1; temp=(temp>>4); temp=(~temp)&0x0f; if(temp==1)key=key+0; elseif(temp==2)key=key+1; elseif(temp==4)key=key+2; elseif(temp==8)key=key+3; if(key==3||key==7||key==11||key==12||key>13){//控制按钮输入 if(key==3)//数据输入按钮 { on_off=1;//开数据输入开关 } elseif(key==7)//数据显示按钮 { disp=1; num=0; } elseif(key==11)/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用