单片机课程设计IO口的扩展电路设计Word文档格式.docx
《单片机课程设计IO口的扩展电路设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计IO口的扩展电路设计Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
它有A、B、C三个端口,可以通过编程的方法来设定端口的各种I/O功能。
由于它功能强,又能方便地与各种微机系统相接,而且在连接外部设备时通常不需要再附加外部电路,所以得到了广泛的应用。
单片机由RAM、ROM、CPU构成,定时,计数和多种接口于一体的微型控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
而51系列单片机是个单片机中最为典型和最有代表的一种。
这次课程设计通过对它的学习、应用,从而达到学习、设计、开发软、硬件的能力。
本次设计主要设计了一个基于8051单片机来扩展外围芯片,实现相应的功能,通过编写相应程序来控制51单片机,进而实现按键采集和功能。
1.2课题设计目的:
(1)进一步熟悉和掌握单片机的结构及工作原理
(2)巩固和加深对单片机原理知识的理解,提高学生综合运用课程所学知识的能力及相应得自学能力,并初步建立起开发单片机应用系统的系统概念和整体设计的思想。
(3)通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解相关电路参数的计算方法。
(4)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
(5)通过完成一个包括电路设计和程序开发的完整过程,使自己了解开发单片机应用系统的全过程,为今后从事设计开发工作打下基础。
(6)掌握单片机的接口技术和常用扩展接口芯片如8255等的外特性、使用及控制方法,熟悉汇编程序设计方法,能够达到熟练调试程序的程度。
(7)根据个人的设计调试过程,按照课程设计报告的规范撰写设计要求。
1.3课题设计要求:
结合51单片机,8255,、74LS373等芯片完成单片机设计。
根据设计原理图、程序流程图、编写程序并调试,说明所设计电路的功能,以及各个功能模块的作用。
原理图设计要求:
该图设计要符合项目的工作原理,连线要正确。
图中所使用的元件要合理选用,器件参数要正确标明。
CPU、外围器件、扩展接口、输入输出装置要一应俱全。
程序设计要求:
写程序是要根据要求将总体功能分解成若干个子功能模块,每个功能模块完成一个特定的功能。
根据总体要求及分解的功能模块,确定各功能模块之间的关系,设计出完整的程序流程图。
编写程序,并执行该程序进行调试,检查该程序、是否达到设计要求,若未达到,修改程序,直到达到要求为止。
1.4课题设计内容:
在熟悉和掌握单片机的结构及工作原理的条件下,按扩展8255接口芯片的硬件要求,读取A口上8个按键的开关状态,B口输出数据并且驱动发光二极管显示按键状态。
C口经光电隔离驱动220V40W交流白灼灯(与发光二极管状态一致),设计出相应的电路原理图及程序图。
最后在仿真软件上调试并运行正确。
1.5课题设计思路:
在实验台上8255的三个通道PA0~PA7;
PB0~PB7;
PC0~PC7都有引出插孔可以与其它电路连接。
所设计的系统功能为:
读取A口上8个按键的开关状态,B口输出数据并且驱动发光二极管显示按键状态。
C口经光电隔离驱动220V40W交流白灼灯(与发光二极管状态一致)
课题设计步骤:
(1)选择符合要求的芯片,了解该芯片的内部结构及原理
(2)按要求设计出原理图所包含的模块,大致有控制模块、扩展模块等
(3)把设计好的各个模块用导线连接起来,使之成为一个能够控制的整体
(4)编写与原理图相对内应的程序,通过韦福软件检查程序的正确性
(5)在仿真软件中进行调试,调试正确后打印出原理图和程序
1.6设计方案论证:
根据设计内容要求,提出了如下三种方案:
方案一:
如图1-1所示。
8255A与单片机的连接系统结构框图
方案二:
在80C51单片机应用系统中,采用74HC系列的锁存器和触发器通过P0口也可以构成各种类型的输入/输出接口,这种I/O口具有电路简单、成本低、配置灵活方便等优点。
故在单片机应用系统中也被广泛采用。
方案三:
利用TTL芯片、COMS锁存器、三态门等接口芯片把P0接口扩展,常选用74LS273、74LS373、74LS244等芯片
在P2.0为0时,74LS244和74LS273都全被选通,二者的口地址都为FEFFH(这个地址不是唯一的,只要保证P2.0=0,其他地址位无关)。
由于分别受/RD和/WR控制,因而两个信号不可能同时为0(执行输入指令,如MOVXA,@DPTR或MOVXA,@Ri时,/RD有效;
执行输出指令,如MOVX@DPTR,A或MOVX@Ri时,/WR有效),所以逻辑上二者不会发生冲突。
1.7课题预期成果:
当一接口为高电平时,与之相对应的按键被按下,二极管导通发光,白炽灯被点亮。
例如当在仿真软件中设置A口的第三个按键状态为高电平时,相对应的有原理图中A口的第三个按键被按下,同时B口第三个发光二极管导通发光,C口的交流白炽灯点亮。
1.8课题设计价值:
(1)通过这个课程设计使自己进一步熟悉和掌握了单片机的结构与工作原理
(2)巩固和加深了对单片机知识的理解,提高了综合运用能力
(3)初步建立了单片机系统概念和整体模块的设计思想
(4)编写程序时要根据要求将总体功能分解成若干个子模块,设计出完整的程序流程图
(5)本次课程设计实现了8255芯片I/O的扩展与运用,掌握了I/O口的控制逻辑
(6)了解了查询方式与中断方式的比较,输入输出信号的可靠性及保护
2、分页说明——系统硬件设计
基于单片机对8255芯片I/O口的扩展与应用,设计的控制原理图如图2-1所示。
系统由电源控制模块、译码器模块、扩展模块、光电隔离驱动模块四个部分组成。
2.1电源控制模块
电源控制模块电路如图2-2所示,主控器采用AT89C51。
引脚如图2-3所示。
图2-2电源控制模块电路
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51主要特性:
(1)与MCS-51兼容
(2)4K字节可编程FLASH存储器(3)寿命:
1000写/擦循环(4)数据保留时间:
10年(5)全静态工作:
0Hz-24MHz(6)三级程序存储器锁定(7)128×
8位内部RAM(8)32可编程I/O线(9)两个16位定时器/计数器(10)5个中断源(11)可编程串行通道(12)低功耗的闲置和掉电模式(13)片内振荡器和时钟电路
AT89C51管脚说明:
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:
来自反向振荡器的输出。
AT89C51振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.2译码器模块
译码器模块电路如图2-4所示,采用74LS373元器件。
引脚如图2-5所示。
74LS373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74LS373芯片。
74LS373引脚:
(1)1脚是输出使能(OE),是低电平有效,当1脚是高电平时,不管输入3、4、7、8、13、14、17、18如何,也不管11脚(锁存控制端,G)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空)。
(2)当1脚是低电平时,只要11脚(锁存控制端,G)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚3、4、7、8、13、14、17、18的状态。
锁存端LE由高变低时,输出端8位信息被锁存,直到LE端再次有效。
当三态门使能信号OE为低电平时,三态门导通,允许Q0~Q7输出,OE为高电平时,输出悬空。
当74LS373用作地址锁存器时,应使OE为低电平,此时锁存使能端C为高电平时,输出Q0~Q7状态与输入端D1~D7状态相同;
当C发生负的跳变时,输入端D0~D7数据锁入Q0~Q7。
51单片机的ALE信号可以直接与74LS373的C连接。
74LS373的输出端O0~O7可直接与总线相连。
当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,O随数据D而变。
当LE为低电平时,O被锁存在已建立的数据电平。
当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。
引出端符号:
D0~D7数据输入端
OE三态允许控制端(低电平有效)
LE锁存允许端
O0~O7输出端
74LS373真值表如下:
Dn
LE
OE
On
H
L
X
Q0
高阻态
2.3扩展模块
扩展模块电路如图2-6所示,采用8255元器件。
引脚如图2-7所示。
8255概述:
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:
与CPU连接部分、与外设连接部分、控制部分。
8255引脚功能:
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;
CS=1时,8255无法与CPU做数据传输.
RD:
读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
'
A1,A0:
地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。
当A1=0,A0=0时,PA口被选择
当A1=0,A0=1时,PB口被选择
当A1=1,A0=0时,PC口被选择
当A1=1,A0=1时,控制寄存器被选择
图2-6扩展模块电路
8255A的编程控制字
2.4光电隔离驱动模块
光电隔离驱动模块电路如图2-7所示。
过程通道是系统输入、输出以及单片机之间进行信息传输的途径。
抑制过程通道的干扰主要是采用观点隔离技术。
光电耦合器(opticalcoupler,英文缩写为OC)亦称光耦合器,简称光耦。
光耦合器以光为媒介传输电信号。
它对输入、输出电信号有良好的隔离作用,所以,它在各种电路中得到广泛的应用。
目前它已成为种类最多、用途最广的光电器件之一。
光耦合器一般由三部分组成:
光的发射、光的接收及信号放大。
输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。
这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。
由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。
又由于光耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。
所以,它在长线传输信息中作为终端隔离元件可以大大提高信噪比。
在计算机数字通信及实时控制中作为信号隔离的接口器件,可以大大增加计算机工作的可靠性。
光耦合器的主要优点是:
信号单向传输,输入端与输出端完全实现了电气隔离,输出信号对输入端无影响,抗干扰能力强,工作稳定,无触点,使用寿命长,传输效率高。
光耦合器是70年代发展起来产新型器件,现已广泛用于电气绝缘、电平转换、级间耦合、驱动电路、开关电路、斩波器、多谐振荡器、信号隔离、级间隔离、脉冲放大电路、数字仪表、远距离信号传输、脉冲放大、固态继电器(SSR)、仪器仪表、通信设备及微机接口中。
在单片开关电源中,利用线性光耦合器可构成光耦反馈电路,通过调节控制端电流来改变占空比,达到精密。
光电隔离的实现:
1、ADC、DAC通常采用将ADC、DAC与单片机之间的电气联系切断。
(1)对A/D、D/A变换前后的模拟信号进行隔离,是常用的一种方法。
(2)在I/O与A/D、D/A之间进行数字隔离
图2-7光电隔离驱动模块电路
2、开关量隔离
常用的开关量隔离器件有继电器、光电隔离器、光电隔离固态继电器。
用继电器对开光量进行隔离时,要考虑到继电器线包的反电动势的影响,驱动电路的器件必须能耐高压。
为了吸收继电器线包的反电动势,通常在线包两端并联一个二极管。
对于开关量的输入,一般用电流传输的方法。
3、分页说明——系统软件说明
I/O口扩展与应用的控制系统主要分为主程序、8255初始化程序、二极管发光程序、灯泡发光程序等组成。
3.1主程序
主程序主要负责总体程序的管理功能,包括初始化部分与译码编码设定部分。
其流程图如下所示:
根据设计要求选择正确的芯片型号,设计出符合要求的电路原理图,用8255接口芯片,扩展硬件,读取A口上8个按键的开关状态,B口输出数据并且驱动发光二极管显示按键状态。
C口经光电隔离驱动220V40W交流白灼灯(与发光二极管状态一致)。
同时根据原理图中芯片结构及性质编程,画出仿真图并把程序导入仿真软件中进行调试,若程序无误且按要求操作能达到预期结果则说明调试成功;
3.28255初始化程序
用8255A的A,B,C端口均作为输入或输出端口,有1个开关8个发光二极管(用D表示)和8个白炽灯(用L表示),当开关S1接通时,D1和L1亮。
以此类推当PA口对应的开关闭合时,PB和PC口所对应的LED灯和白炽灯同时亮。
8255程序流程图如下:
4结束语
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近四星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
附录一I/O扩展控制程序清单
************************************************;
;
I/O扩展控制系统程序 ;
********************