接口芯片课程设计记录
更新2013-09-27
//
对很多人来说,这次课程设计是16位x86汇编+8255a芯片+8254芯片编程
实践,设备陈旧,内容也不新,但对新手来说,这是一次离硬件很近的
一次编程,作个记录。
1)第一次机箱编程
第一天接触计算机硬件编程,是对机箱编程,却无从下手。怎么连接硬件?
怎么将软件在指定的硬件上跑?幸好有同学在以前自学过单板机编程。使用
的是xp的window系统,调试软件是Tddebug,16位微机接口试验平台。由PIC
总线连接计算机,PIC扩展卡将PIC总线转换为微机系统总线。要做的就是
在软件环境中对指定端口地址进行读写编程,将机箱的微机系统总线接口和
芯片接口连接,最后运行程序实现功能。
第一步,了解在工具软件环境中,程序操作的硬件接口地址,也就
是x86汇编out指令和in指令所操作的端口地址。芯片对外和对cpu的交换信
息也就存放在这些端口中。这相当简单也很抽象,无法知道在out和in的操
作背后,硬件需要做什么操作。
第二步,硬件的接线。在计算机课本学的计算机硬件是实在简单,因为在
学习的时候,那些由cpu控制而不是由程序控制的数据线对我们来说,基本
透明,而在课本上根本无法感性认识到计算机在完成对一个硬件操作的过程中
要做进行什么操作,在这一步学习时,对一些连线,自己一开始总觉含糊。
8255a是我第一个接线学习的芯片。机箱上该芯片可视的接口引脚有:
8bit的数据线DX0~DX7,2bit的读控制RD,2bit的写控制WR,
2bit的片选控制CS,2bit的芯片端口地址接口A0A1,
8255a芯片对外设的3*8bit的数据口接PA0~PA7,PB0~PB7,PC0~PC7。
汇编程序中端口的操作也就是out指令和in指令,但一个芯片的引脚却有那么
多,如果你将芯片的每个接口的作用和端口操作指令联系弄清就好。
从哪个接口开始学呢?从我觉得最简单的接口开始说,WR接口和RD接口。
学过汇编或微机原理应该了解到,计算机要对一单元进行操作时,要先对单元
进行定位,然后发出读写命令,最后是单元的数据的读取或写入。RD接口就是
对芯片发出读信号,WR接口就是对芯片发出写信号。那单元的定位是怎么
做到的?看看A0A1接口和CS接口。对一个地址发出out指令或in指令后,如果
地址在芯片的端口地址范围内,那么cs接口就会接收到一个片选信号,芯片
开始和系统总线沟通,再根据A0A1接口的输入,就会知道对哪个单元进行定
位,a8255有三个可编程接口,A0A1的值00~11分别对应芯片的A端口,B端口,
C端口和控制字。这也是地址只需两位A0A1就好的原因。
下面说与芯片接口相连的机箱提供的微机总线接口。
机箱中相关的接口有:
数据接口XD0~XD7,地址接口XA0~XA15,内存读接口XMR,