1.硬件接口电路

下图所示为AT89S51单片机扩展一片82C55的电路图。图中,74LS373是地址锁存器,P0.1、P0.0经74LS373与82C55的地址线A1、A0连接;P0.7经74LS373与片选端CS相连,其他地址线悬空;82C55的控制线RD(的反)、WR(的反)直接与AT89S51单片机的RD(的反)和WR(的反)端相连;AT89S51单片机的数据总线P0.0~P0.7与82C55的数据线D0~D7连接。

2.确定82C55端口地址

图中82C55只有3条线与AT89S51单片机的地址线相接,片选端CS、端口地址选择端Al、A0,分别接于P0.7、P0.1和P0.0,其他地址线全悬空。显然只要保证PO.7为低电平时,即可选中82C55;若P0.1、P0.0再为00,则选中82C55的PA口。同理P0.1、P0.0为01、10、11分别选中PB口、PC口及控制口。

若端口地址用16位表示,其他无用端全设为1(也可把无用端全设为0),则82C55的A、B、C及控制口地址分别为FF7CH、FF7DH、FF7EH、FF7FH。

如果没有用到的位取0,则4个端口地址分别为0000H、0001H、0002H、0003H,只要保证CS、A1、A0的状态,无用位设为0或l均可。

3.软件编程

在实际应用设计中,必须根据外部设备的类型选择82C55的操作方式,并在初始化程序中把相应控制字写入控制口。下面根据上图所示,介绍对82C55进行操作的编程。

例1:要求82C55工作在方式O,且PA口作为输入,PB口、PC口作为输出,则程序如下:

例2:对端口PC的置位/复位。

82C55的PC口8位中的任意一位,均可用指令来置位或复位。例如,如果想把PC口的PC5置1,相应的控制字为00001011B-0BH。程序如下:

如果想把PC口的PC5复位,相应的控制字00001010B-0AH,程序如下:

82C55接口芯片在AT89S51单片机应用系统中广泛用于与各种外部数字设备的连接,如打印机、键盘、显示器以及作为数字信息的输入、输出接口。

end

82c55单片机c语言,AT89S51单片机与82C55的接口设计编程相关推荐

  1. 单片机 c语言 d,单片机89C51与A/D转换器MAX - 控制/MCU - 电子发烧友网

    单片机89C51与A/D转换器MAX195的接口设计 MAX195是16位逐次逼近方式的ADC.它将高精度.高速度.低电源功耗(消耗电流仅10μA)的关闭方式等性能结合在一起.内部校准电路对线性度与偏 ...

  2. c51单片机的语言,51单片机,stm32,arduino都是用什么语言进行编程的?

    51单片机,STM32单片机用汇编或者C语言,现在基本都用C语言编程,Arduino有自己的编程环境,用户也是用C语言编程. 51单片机的编程 51单片机进入中国比较早,在早前用汇编编程比较多,我在上 ...

  3. 单片机c语言实验,单片机实验C语言编程.doc

    单片机实验C语言编程.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档所 ...

  4. 单片机c语言 u16,单片机C语言的误用

    单片机C语言的误用 导语:在学习单片机的时候才真正知道C语言是什么它是来干什么的,但是C语言用到嵌入式只是它小小的一部分他的应用还有很多地方呢,也经常出现误用,让我们了解一下吧! 我们是不是在写程序的 ...

  5. 好听的歌曲单片机c语言程序,单片机C语言程序举例(三)

    原标题:单片机C语言程序举例(三) 14.音乐播放 //此程序在硬件上调试通过 //本程序的晶振采用11.0592M #include sbit speaker=P1^2; unsigned char ...

  6. 适合自学单片机c语言教材,单片机编程入门看什么书 盘点单片机初学者适合看的书...

    本篇文章盘点:单片机编程入门看什么书.其实学习单片机重点就是C语言,其次实践重要,学习单片机不光要看书,建议初学者多多实践,自己做一些尝试性的开发.话不多说,下面就来盘点,初学者单片机编程入门适合看什 ...

  7. 单片机c51语言变量,单片机c语言教程:C51变量

    上课所提到变量就是一种在程序执行过程中其值能不断变化的量.要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间.定义一个变量的格式如下: ...

  8. 单片机c语言除法,单片机C语言知识点全攻略

    单片机C语言知识点全攻略 为了让有需要的朋友进一步了解单片机C语言知识,下面的文章将为大家讲解单片机C语言的知识内容,欢迎学习! C51运算符和表达式 运算符,双目运算符和三目运算符.单目就是指需要有 ...

  9. 单片机c语言常用语,单片机C语言常用语句详解

    <单片机C语言常用语句详解>由会员分享,可在线阅读,更多相关<单片机C语言常用语句详解(22页珍藏版)>请在人人文库网上搜索. 1.C51编程常用语句总结,一.C51定义SFR ...

最新文章

  1. GNU make manual 翻译(六十一)
  2. 数据结构1_java---单链表的操作,约瑟夫问题
  3. Reporting Service 钻取
  4. 那个学Python的同龄人,也许已经超越你了!
  5. R语言第九讲 验证集法
  6. 二、Get和Post的区别
  7. libevent备忘
  8. mysql ulimit_Ubuntu 16.04 装机后如何永久更改ulimit和修改MySQL的存储路径datadir
  9. URI和URL的区别与联系
  10. 正二十面体的各个面位置点
  11. 力扣 202 快乐数
  12. 绕过tp路由器管理密码_TP-Link路由器管理员密码多少 TP-Link路由器管理员密码介绍【详解】...
  13. 常见的图片格式及适用情况
  14. BUUCTF-[安洵杯 2019]easy_web1
  15. 大数据和云计算技术周报(第7期)
  16. 周志华 《机器学习初步》模型评估与选择
  17. ARM920T内存管理单元MMU
  18. 学会Zynq(11)RAW API的TCP和UDP编程
  19. 查询出学生表中年龄和分数相同的所有同学的名字
  20. ESP32串口通信 双机串口通信

热门文章

  1. linux nginx django,如何在Linux下使用Nginx部署Django项目
  2. 玩转 SpringBoot 2.x 之自定义Starter依赖
  3. 对fragment的学习
  4. 基于JAVA+SpringMVC+MYSQL的在线商品拍卖网站
  5. 基于springboot框架的java学生管理系统
  6. 字节跳动笔试题:1. 小于N的质数数量;2. 逆时针二维数组;3. 判断a+bc
  7. django分页的东西, 不详细, 但是也足够了。
  8. leetcode -- 36.有效的数独
  9. (转载)python调用shell命令之os 、commands、subprocess
  10. 整合Flask中的目录结构