- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章单片机外部展资源的C51编程
第4章 单片机外部扩展资源的C51编程 在实际应用的51单片机系统中,很少是由以单块单片机独立构成的,经常需要对单片机的相关资源进行扩展,本章将介绍单片机的并行口、键盘、显示、A/D及D/A等扩展资源的C51编程。 4.1 并行口扩展的C51编程 并行口的扩展有简单I/O口的扩展、利用串行口扩展并行口、可编程并行口扩展等几种方法。 4.1.1 利用锁存器、三态门扩展简单并行口 1.使用锁存器扩展并行口 2.使用三态门扩展并行口 例4-3 电路如图4-3所示,用74LS373扩展一个输出口,分别接8个LED显示器L0~L7,用74LS244扩展一个输入口,分别接8个开关K0~K7,编程实现将开关K0~K7的状态通过LED显示出来。 。 4.1.2 利用串行口扩展并行口 1.利用串行口扩展并行的输入口 2.利用串行口扩展并行的输出口 4.1.3 利用8255A扩展可编程并行口 1.8255A的基本知识 2.8255A的C语言应用实例 例4-6 8255与AT89C52的连接如图4-10所示,试按下列要求完成对8255的初始化编程: 例4-8 在工业控制等实际应用中,经常需要检测某些开关量的状态。例如在某一系统中,有8个开关K7~K0,要求不断检测它们的通断状态,并随时在发光二极管LED7~LED0上显示出来。开关断开,相应的LED点亮;开关闭合,LED灯熄灭。我们选用8051单片机、8255A、74LS138译码器、74LS373锁存器,构成如图4-11所示的硬件电路,来实现上述功能。 4.2 键盘接口的C51编程 在单片机应用系统中通常需要进行人-机对话,包括人对应用系统状态的干预以及向系统输入数据等,所以通常应用系统中应设有键盘。键盘是由按键构成的,键盘从硬件结构上分并行接口的独立式键盘和行列式矩阵键盘。 4.2.1 独立式按键 4.2.2 矩阵键盘 例4-13 如图4-21所示,通过8255A芯片扩展的并行I/O口连接4×8的矩阵键盘。 4.3 LED显示器接口的C51编程 在单片机应用系统中,显示器是最常用的输出设备。特别是发光二极管显示器(LED)和液晶显示器(LCD),由于结构简单、价格便宜、接口容易,得到广泛的应用,尤其是在单片机系统中大量使用。下面主要介绍LED显示器的显示原理及与MCS-51单片机的接口方法和相应的程序设计。 4.3.1 基本问题 1.结构—共阴极与共阳极 2.显示的内容与显示的代码 4.3.2 LED静态显示接口 4.3.3 LED动态显示接口 例4-15 如图4-29所示为6位共阴极显示器通过8255A和8051的接口电路。从图中可看出8255A的PA、PB、PC及控制口的地址分别为:0BCFFH、0BDFFH、0BEFFH、0BFFFH。8255A的PB口位显示器的段口,PA口为显示器的位口。 4.3.4 串行口控制的LED显示接口 例4-17 如图4-31为采用串行口控制的8位LED显示器接口电路。因为采用共阳极LED,所以,相应的亮段必须送0,相应的暗段必须送1。 4.5 模拟量接口的C51编程 在单片机应用系统中,只要涉及到测量与控制,就必须需要D/A及A/D转换器。 A/D转换器是将模拟量转换成数字量。 D/A转换就是将数字量转换成相应的模拟量。 4.5.1 8位D/A-DAC0832 例4-19 DAC0832双缓冲接口。 DAC0832工作于双缓冲方式,输入寄存器的锁存信号和DAC寄存器的锁存信号分开控制。这种方式适用于几个模拟量需同时输出的系统。每一路模拟量输出需一个DAC0832,构成多个DAC0832同步输出系统。例如4-37位两路模拟量同步输出的8051系统。DAC0832的输出可分别界图形显示器的X,Y偏转放大器输入端。 4.5.2 12位A/D-AD574 本章小结 本章主要介绍了并行口、键盘、显示、A/D及D/A、串行E2PROM等外部资源的扩展及C语言编程。 (1)在并行口的扩展中主要是两类:可编程的I/O口扩展及不可编程的I/O口扩展。对于不可编程的I/O口,可以通过锁存器扩展输出口,通过三态门扩展输入口;可编程的I/O是通过常用的芯片8255为例来进行讲解的。(2)对于键盘接口,主要要掌握矩阵键盘的C语言编程。(3)对于显示要掌握LED8段数码显示的动态显示的C语言编程。(4)对于其他的外围器件要掌握基本的用法。 本章是单片机扩展资源的综合应用,在应用过程中重点要求掌握各种接口技术的C语言编程原理,做到在实际应用中能够灵活运用。
文档评论(0)