虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!
目录
第1部分接口/端口定义
第2部分端口访问指令
第3部分接口/端口地址设计
第4部分数据传输方式
第1节接口/端口定义接口:任何两个电路或设备之间的连接电路。 CPU和内存、CPU和外围设备之间的一组特殊控制电路。
各种外围设备必须通过接口连接到CPU (或总线)。
寻址:确定设备的地址以区分不同的设备
缓冲
工作速度:适用于外围设备和CPU的信息转换
格式、类型、幅度外围设备和CPU的时序
接口电路的构成:由多种/多个寄存器构成。
端口:寄存器的另一个名称。
微机端口:
16条I/O线:地址空间2^16=64K
IBM:A0~9线有效,地址空间2^10=1k:000h~3ffh(1023 ) ) ) ) ) ) ) ) )。
PC系统I/o侧分配
前256个端口: 000h-0FFh,占用系统外围设备
后768个端口: 100h-3FFh,由常规外围设备占用
第2部分端口访问指令
第三节接口/端口地址设计概念:为一个端口(接口/设备)设计特定的地址。
即,设计端口解码电路:
输入: http://www.Sina.com/((合并io/m、WR、RD等信号) ) )。
输出: AB (地
址总线)上出现端口地址时,输出低电平
设计地址译码电路三个前提
①有效I/O地址线10位:A9~0
②端口读写属性(只读/只写/可读可写)
③考虑DMA操作:地址允许信号AEN(DMAC信号)
3.1 AEN=0,即非DMA操作时,端口可以访问;
3.2 AEN=1,即是DMA操作时,端口不能访问;
例子:使用门电路设计端口地址2F8H的只读地址译码电路
分析:仅当AB(地址总线)输入2F8H时输出低电平,其它都输入高电平
地址线
0 0 A9 A8
A7 A6 A5 A4
A3 A2 A1 A0
十六进制
2
F
8
二进制
0 0 1 0
1 1 1 1
1 0 0 0
通过程序分析端口2F8H(760)的访问
MOV DX,2F8H ;把数据2F8H输入到DX寄存器
IN AL, DX ;F=0,对应端口被选中。用寄存器DX读数据到AL中。
通过跳线或变成改变端口的地址(2F8H/3F8H)
含有多个端口的接口地址译码电路
例子:某接口有4个端口:384H ~ 387H。画出地址译码电路
步骤:
①选中接口(接口译码)
384H 11 1000 0100
385H 11 1000 0101
386H 11 1000 0110
387H 11 1000 0111
仅当A9-0=11 1000 01XX时译码电路输出低电平
②选中特定电路
用74LS138实现第2级译码:注意AB与A1、A0的对应关系
接口地址的构成形式和实现方法总结:
①单端口:门电路直接译码
②多端口:两级译码,门电路和译码器
③地址可变:通过跳线或编程改变端口的地址
第4节 数据传输方式
所有有疑问的人,可以推荐一个老师给你们:
搜索“慕课”,然后去主页搜索“专注的白昼”,这个老师真的真的优秀!讲课从不拖泥带水,精简干练,而且条理清晰,层次分明,超级严谨的!(我不是夸张,你可以当做我是个脑残粉)他目前还没有开设“微机原理”这门课,但是他开了一门《操作原理系统》。你点进去就可以加入学习了,然后去讨论区里去问他!!!