8255A应用C语言不用373,51单片机的c语言程序设计与应用 第4章

第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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值