基于51单片机最小实验系统 1.docx
《基于51单片机最小实验系统 1.docx》由会员分享,可在线阅读,更多相关《基于51单片机最小实验系统 1.docx(29页珍藏版)》请在冰豆网上搜索。
![基于51单片机最小实验系统 1.docx](https://file1.bdocx.com/fileroot1/2023-1/26/6c28f8d8-97f6-4b74-b2de-b8f767b5f41f/6c28f8d8-97f6-4b74-b2de-b8f767b5f41f1.gif)
基于51单片机最小实验系统1
xxxx大学
本科生毕业论文
题目:
基于单片机最小实验系统的设计
专业班级:
电子信息科学与技术2010级02班
学号:
xxxxxxxxxxxx
学生姓名:
xx
指导教师:
xx
论文完成日期:
2014年5月
郑重声明
本人的毕业论文是在指导老师xx的指导下独立撰写并完成的。
毕业论文没有剽窃、抄袭、造假等违反学术道德、学术规范和侵权行为,如果有此现象发生,本人愿意承担由此产生的各种后果,直至法律责任;并可通过网络接受公众的查询。
特此郑重声明。
毕业论文作者(签名):
年月 日
目录
1绪论3
1.1单片机概述3
1.2单片机最小系统研究现状及发展趋势3
1.3设计课题的意义3
2系统方案设计4
2.1系统硬件方案4
2.2系统软件方案5
3芯片简介5
3.1AT89S51芯片简介5
3.2LED点阵显示屏6
3.31602液晶显示器7
3.4译码器74LS1388
3.5锁存器74LS3739
4系统硬件设计9
4.1硬件整体设计概述及功能分析9
4.2各电路模块10
4.2.1控制系统设计10
4.2.2时钟电路设计11
4.2.3复位电路11
4.2.4译码电路设计11
4.2.5锁存电路设计12
4.2.6液晶显示电路12
5系统软件设计13
5.1程序设计13
5.2显示器的显示方式14
5.3程序流程设计14
6系统仿真15
6.1KEIL编程15
6.2Proteus仿真15
6.3功能实现15
6.4遇到的问题及解决方案19
结束语20
附录21
附录一系统硬件图21
附录二程序清单21
参考文献27
致谢28
基于单片机最小实验系统设计
专业:
电子信息科学与技术班级:
201002作者:
xx指导老师:
xx
摘要
单片微型计算机也称为单片计算机,不但集CPU,RAM,ROM,而且定时,计数和多种接口于一体的微型控制器。
单片机成本低,功能强,非常好的应用于智能产品和工业自动化生产之中。
本文介绍了一款以单片机AT89S51为控制器,控制LED点阵显示屏,LCD液晶显示器,数码管,LED流水灯的最小实验系统。
该系统通过按键控制一块8×8点阵模块的LED点阵屏,可实现英文字符的显示,一块LCD液晶显示器的显示以及数码管,流水灯的显示。
选定AT89S51单片机为核心控制器件,锁存器为驱动电路器件,74LS138为译码电路器件。
AT89S51单片机处理控制命令将显示内容通过I/O口串行输出给LCD液晶显示器,数码管,流水灯器件,通过74LS138译码扩展输出,最后由显示驱动电路模块驱动LED点阵显示屏的显示。
整个设计采用AT89S51做核心控制器,74LSl38组成译码电路;通过按键的切换,控制液晶显示器,点阵,LED流水灯,数码管的显示。
关键字:
AT89S51;LED点阵显示屏;独立按键;LED灯
BasedonSingleChipMicrocomputerMinimumSystemDesign
Speciality:
Electronic&InformationScienceandTechnologyClass:
1002
Author:
xxTutor:
xx
Abstract
Singlechipmicrocomputer,alsoknownassingle-chipcomputer,notonlysetingCPU,RAMandROM,Butalsocountingandavarietyofinterfaceintegratedmicrocontroller.Singlechiplowcost,strongfunction,verygoodapplicationinintelligentproductsandindustrialautomation.
ThispaperintroducesasinglechipAT89S51controller,controlingLEDmatrixdisplay,LCDliquidcrystaldisplay,anddigitaltube,theminimumsystemLEDwaterlamp.LEDdotmatrixdisplaythecontrolsystemisa8*8dotmatrixmodulethroughthekeys,canrealizetheEnglishcharacterdisplay,aLCDdisplayanddigitaltubedisplay,lightwater.TheAT89S51microcontrollerwasselectedasthecorecontroldevice,latchdrivecircuit,74LS138decodingcircuitdevice.AT89S51MCUcontrolcommandwilldisplaythecontentsthroughI/OserialoutputtotheLCDdisplay,digitaltube,waterlampdevice,throughthe74LS138decodingoutput,displaythedisplaydrivingcircuitmoduledriverLEDdotmatrixdisplayscreen.ThedesignusesAT89S51asthecorecontroller,74LSl38decodingcircuit;throughthebuttonswitch,controlofliquidcrystaldisplay,LEDdotmatrix,waterlights,digitaltubedisplay.
Keywords:
AT89S51;LEDdotmatrix;independentkey;LEDlamp
1绪论
1.1单片机概述
单片采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱微型计算机简称单片机(MCU),是典型的嵌入式微控制器,是一种集成电路芯片,动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。
最早是被用在工业控制领域,由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中[1-2]。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作,单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
1.2单片机最小系统研究现状及发展趋势
单片机最小系统是构成各种不同功能单片机应用系统的核心模块,在综合电子技术实验、大学生电子设计竞赛、毕业设计等等教学环节中有广泛的应用。
现有的单片机最小系统种类繁多,各有特色,单片机具有体积小,功耗低,控制功能强,扩展灵活以及使用方便等优点,已经成为实现各种工业测控系统和智能仪器仪表的重要手段,在现代社会的生产和生活中正发挥着越来越重要的作用,对于电子通信和控制专业的本科生来说,能够熟练掌握并灵活应用单片机是一项必备技能"目前在各大高校中已经开设了有关单片机的基础课程,收到了一定成效,教学实践也表明,实验室根据学生实际情况开发专门的教学实验板,可以取得更好的教学效果[3].
1.3设计课题的意义
该设计课题使我们能够熟悉单片机各个引脚功能,掌握单片机控制的LED显示屏,LCD液晶显示器的基本显示原理和设计方法,对单片机这个行业有了较为深刻的了解和认识。
并且对大学期间所学习的一些理论进行了实践,使我们对所学过的理论知识有了新的认识。
并且通过该设计课题掌握了51单片机的的软硬件开发工具的使用方法,为以后从事相关行业的工作积累了实际工作经验。
单片机最小系统不仅具有控制方便,组太简单和灵活性大的优点,而且可以提高产品的质量和数量,在工业中是必不可少的器件,尤其是在日常生活中的发挥也越来越大,本课题主要是在单片机上显示接口,适合于我们学生用于单片机的学习和科研立项,因此此课题对自己的就业还是对单片的掌握,都有非常现实与积极的意义[4]。
2系统方案设计
2.1系统硬件方案
为方便检修和维护硬件电路设计,常常采用模块化的设计方法。
硬件的设计采用模块化设计,既要满足模块本身功能又要能够和整个系统兼容。
如图2-1所示,根据显示系统的功能特点确定系统硬件由显示屏部分,控制部分,通信系统三部分组成。
单片机通过通信部分发送控制指令和显示内容代码,执行显示指令并将显示代码处理后控制显示部分的显示内容和显示方式。
图2-1系统硬件组成框图
以单片机作为核心控制器件存储和处理显示内容,用串行通信的方式将显示内口容和控制指令传输到单片机系统,如图2-2所示,单片机根据传输来的内容和指令通过端口译码扩展后驱动1块8×8LED点阵显示屏以及驱动单片机的P0口(LCD液晶显示器),led流水灯,数码管。
题目将以此方案为指导思想展开具体的硬件电路设计。
数码显示
1602液晶显示器
LED流水灯
图2-2硬件设计方案
2.2系统软件方案
软件的设计除了满足设计功能外还必须要满足易读写,方便下载和编译。
设计目标和硬件总体结构确定的情况下,软件可以分为主程序,各种显示子程序,通信程序三个主要部分组成。
具体结构如图2-3所示。
图2-3软件功能结构框图
软件的编写需要借助软件编辑器和编译软件,编译完成后还需要下载到单片机中执行。
编写软件之前得首先选择一种合适的语言以及配套的编辑器和编译软件。
最后还要选择一款与所选单片机的下载器或下载软件来把编写的程序下载到单片机中执行。
C语言编写的程序并不能被单片机直接执行还需要编译为单片机可执行的机器语言。
因此在系统软件设计中,编译器必不可少。
支持MCS-51用C语言编程的编译器主要有两种:
FranklinC51编译器和KEILC51编译器。
目前在单片机开发中普遍都是使用KEILC51来进行编译[5]。
3芯片简介
3.1AT89S51芯片简介
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域[6]。
AT989S51具有以下特点:
·与MCS-51产品指令系统完全兼容
·4k字节在系统编程(ISP)Flash闪速存储器
·1000次擦写周期
·4.0-5.5V的工作电压范围
·全静态工作模式:
0Hz-33MHz
·三级程序加密锁
·128×8字节内部RAM
·32个可编程I/O口线
·2个16位定时/计数器
·6个中断源
·全双工串行UART通道
·低功耗空闲和掉电模式
·中断可从空闲模唤醒系统
·看门狗(WDT)及双数据指针
·掉电标识和快速编程特性
·灵活的在系统编程(ISP字节或页写模式)
AT89S51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位[7]。
3.2LED点阵显示屏
显示部分包括了一块至少可以显示一个字母的显示屏,以及驱动该显示屏的驱动电路。
由于单片机的I/O口有限不能直接用I/O口来驱动LED显示屏,所以需要对单片机I/O口进行扩展增加单片机并行输出的能力。
LED显示屏是由一个一个的发光二极管点阵构成的,要构成大屏幕的LED显示屏就需要多个发光二极管。
因此选用一些由单个发光二极管构成的LED点阵子模块构成大的LED点阵模块。
目前市场上普遍采用的点阵模块有8×8、16×16;这两种屏幕构成方法各有有缺点,单个发光二极管构成显示屏优点在于当单个的发光二极管出现问题时只需更换一个二极管即可,检修的成本较低,缺点在于连接线路复杂;而点阵模块构成的方法却正好与之相反,模块构成省约了大量的连线,不过当一个LED出现问题时同在一个模块的所有LED都必须被更换。
这就加大了维修的成本[8]。
两种方法相比较,决定采取模块构成的方法来制作一个LED点阵显示屏。
为了避免模块的缺点,选择点阵数较小的模块来减小出现这一问题的风险。
所以选用一个8×8点阵模块,如图3-1所示。
图3-1LED内部点阵图
一个8×8的LED显示屏行和列各有8支引脚,单靠51单片机的端口驱动,再加上led,数码管和液晶显示器所需要的端口,单片机的I/O口不够用,所以必须要对单片机的端口个数进行扩展。
经常采用的端口扩展方法是用串并转换芯片进行译码。
常用的串并转换芯片有74LS154(4线-16线译码器)、74LS138(38译码器)、74HC595等等。
51系列单片机端口低电平时,吸入电流可达20mA,具有一定的驱动能力;而为高电平时,输出电流仅数十μA甚至更小(电流实际上是由脚的上拉电流形成的),基本上没有驱动能力,所以单片机不能直接驱动LED显示屏显示。
在单片机和显示屏之间还需要增加功能放大的驱动电路[9]。
3.31602液晶显示器
1602LCD
主要技术参数:
显示容量:
16×2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×4.35(W×H)mm
引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口。
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号。
当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极[10]。
3.4译码器74LS138
1.工作原理:
①当一个选通端(E1)为高电平,另两个选通端((/E2))和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。
比如:
A2A1A0=110时,则Y6输出端输出低电平信号。
②利用E1、E2和E3可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。
③若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
④可用在8086的译码电路中,扩展内存。
3.5锁存器74LS373
74LS373为八D锁存器(3S,锁存允许输入有回环特性)。
373为三态输出的八D透明锁存器,共有54/74S373和54/74LS373两种线路结构形式当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,O随数据D而变。
当LE为低电平时,O被锁存在已建立的数据电平[11]。
表3-174LS373工作参数表
参数
最小值
额定值
最大值
单位
电源电压
4.75
5
5.25
V
输入高电平电压
2
—
—
V
输入低电平电压
—
—
0.8
V
输出高电平电压
—
—
-2.6
mA
输出低电平电压
—
—
24
mA
由表3-1可以看出,74LS164的输出条件与的输入单片机输入条件相匹配,理论上可以实现锁存器与单片机条件相匹配。
4系统硬件设计
4.1硬件整体设计概述及功能分析
显示系统具体设计主要由通信系统,单片机系统,按键,译码电路,显示驱动电路和8×8的点阵屏,1602LCD液晶显示器,数码管,LED灯组成。
具体工作流程为:
单片机通过通信系统发送控制指令和显示代码内容,执行控制指令处理显示代码将显示内容通过I/O口输出并且控制译码电路完成3线-8线译码并行输出,最后由显示驱动电路进行电压和电流的处理以达到LED显示屏的显示电流,电压要求进而使显示屏显示内容,通过独立按键k4控制LCD和数码管显示,上电后,数码管显示数字0,液晶显示Iamluojun。
当第一次按下按键时,数码管显示数字1,液晶显示器显示shumaguan1,当第二次按下按键时,LCD显示shumaguan2,数码管显示数字2,当第三次按下按键时,LCD显示shumaguan3,数码管同时显示数字3,第四次按下时,LCD显示dianzheni,数码管显示数字4,同时点阵显示屏显示字母I,第五次按下时,LCD显示dianzheno,数码管显示数字5,同时点阵显示屏显示字母O,第六次按下时,LCD显示dianzhenh,数码管显示数字6,同时点阵显示屏显示字母H,第七次按下时,LCD显示paomadeng,数码管显示数字7,同时点阵显示屏停止显示,LED流水灯开始工作,从左到右依次点亮[12]。
根据硬件的功能结构图选取合适器件,器件不但要求能实现所要求的功能还要能兼容至整个系统之中。
通过查阅资料和对比最终的硬件原理图如图4-1所示。
晶振电路
复位电路
电源
74LS138
AT89C51
点阵
8X8
74LS373
数码显示
LED灯
1602显示器
图4-1总体硬件电路图
4.2各电路模块
4.2.1控制系统设计
控制电路设计中采用的是单片机系统,该系统必须要是工作在一个最小系统(指单片机的可以的最小配置系统)。
AT89S51的最小系统包括了外界时钟电路和复位电路,选定一定数量的I\O口作为控制口控制外部的各种器件和数据的输出[13]。
根据功能选择一定的单片机端口添加外围的器件,具体电路见附录二。
在该系统中,P1各口主要用于点阵显示数据的控制输出。
由于端口的驱动能力有限所以该端口外接了74LS373来提高驱动能力。
P1口具体接法为:
P1.0到P1.7分别接74LS373的Q0到Q7,OE接地,LE接电源;P2.0,P2.1,P2.2接74LS138的A,B,C端,译码输出并行数据Y0到Y7;P2.3和P3.7接LED灯,主要用于LED灯的控制,P3.0到P3.6依次接数码管的阴极端口;P0口主要用作LCD显示数据的控制输出,由于端口的驱动能力有限所以该端口外接了5K的上拉电阻来提高驱动能力[13]。
4.2.2时钟电路设计
单片机工作的时间基准是由时钟电路提供的,系统采用12MHz的晶振作时钟电路,在XTALI和XTAL2两端跨接石英晶体及两个微调电容。
C1和C2一般取30pF左右。
本设计中振荡器时钟电路如图4-2所示,其中C2=C3=22pf。
图4-2时钟电路
4.2.3复位电路
单片机的RST引脚为主机提供一个外部复位信号输入端口。
复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。
复位以后,单片机内各部件恢复到初始状态,单片机从ROM的0000H开始执行程序。
图4-3是MCS-51单片机采用的上电复位电路。
阻容器件的参考值如图4-3所示,即R1=1KΩ,C3=22μF。
图4-3复位电路
4.2.4译码电路设计
译码电路的功能是为了解决单片机I/O端口不足。
行译码所用器件为译码器74LS138。
具体电路如图4-4所示。
图4-4译码电路图
4.2.5锁存电路设计
如图4-5所示
图4-5锁存电路图
4.2.6液晶显示电路
在液晶电路中,端口1为接地端口,端口2为电源正极,端口3为液晶显示对比度调节端,端口4接P2.5口,为读写选择端,端口6接使能信号,端口6到14接P0口,控制信号输出[14],具体电路如图4-6所示。
,
图4-6液晶显示电路图
5系统软件设计
5.1程序设计
系统软件采用C语言编写,按照模块化的设计思路设计。
首先分析程序所要实现的功能,程序要实现静态显示的功能,其功能结构如图5-1所示。
图5-1主程序流程图
程序开始时首先必须对单片机进行初始化,设定LED点阵显示屏,led流水灯灯,液晶显示器,数码管所要显示的内容和显示的方式,执行的是各种显示程序。
按照设定的方式和内容显示出所需要的内容。
5.2显示器的显示方式
该系统采用静态显示方式,对点阵显示屏,1602液晶显示器,数码管来说,每一帧画面输入以后便可一劳永逸地显示,当我们改变了显示内容,需要重新输出新的显示数据.这种方式系统原理比较简单。
5.3程序流程设计
程序的流程设计首先对系统和外接芯片进行初始化,然后是LCD显示程序和点阵显示程序,数码显示程序,LED流水灯显示程序,再通过按键程序控制,进行切换,程序流程图如图5-2所示。
图5-2程序流程图
6系统仿真
6.1KEIL编程
随着单片机开发环境的不断发展,单片机的开发软件也在不断发展。
Keil是目前流行的用于开发51系列单片机的软件。
该软件提供了包括C编译器、宏汇编、链连接、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境可以对C语言源程序进行编译,对汇编语言源程序进行汇编,对目标模块和库模块进行链接以产生一个目标文件,生成HEX文件,对程序进行调试等。
软件调试主要是对所编写的程序的各个部分,