FORM:https://blog.csdn.net/broadview2006/article/details/3975094

C并口的寄存器

本文摘自王洪辉老师的《嵌入式系统Linux内核开发实战指南(ARM平台)》一书

PC上的程序通过访问并口的I/O端口寄存器来访问、控制并口的管脚信号,这些端口包括数据端口、状态端口和控制端口,其中每个端口都有自己的端口号,相当于它们的地址。程序通过端口号来访问端口寄存器。
PC并口1的数据端口号为3BCH,状态端口号为3BDH,控制端口号为3BEH;
PC并口2的数据端口号为378H,状态端口号为379H,控制端口号为37AH;
PC并口3的数据端口号为278H,状态端口号为279H,控制端口号为37AH;
1)数据寄存器
数据寄存器(D0~D7)也叫数据端口,它保存了写到数据端口管脚的一字节数据。数据端口可以写入数据(输出),也可以读出数据(输入)。写入的数据是从数据端口管脚输出的数据,读出来的数据是我们上次写入数据端口的数据或者原来保留在里面的数据,并不是从端口管脚输入PC的数据。数据端口对应的管脚是PIN2~PIN9,数据寄存器定义如表10-2所示。

2)状态寄存器
状态寄存器(S0~S7)又叫状态端口,它保存的是5个输入(S3~S7)管脚的逻辑状态,S0~S2位不与管脚对应。除了S0以外,状态寄存器是只读的,读出数据信息是状态端口管脚上的逻辑状态。S0是支持EPP传输并口的超时标志信息,可以用软件方法清零。在许多并口中,状态输入接有上拉电阻。状态端口对应的管脚是Pin10~Pin13、Pin15。状态寄存器定义如表10-3所示。

3)控制寄存器
控制寄存器(C0~C8)又叫控制端口,它保存了C0~C3的4位的控制信息,C4~C7不与管脚对应,这些位一般被用来输出;但在大多数SPP并口中,控制位为集电极开路/漏极开路模式,也就是说,它们同样可以用作输入。要从控制位上读取外部逻辑信号,首先将相应的输出写入“1”,然后读取控制寄存器的值即可。但是,为了提高交换速度,大多数支持EPP和ECP模式的并口,控制位工作在不能用作输入的推拉模式下。在一些多模式接口中,控制位采用的是改进型的推拉模式,可以用作输入。控制端口对应的管脚是Pin1、Pin14、Pin16和Pin17。控制寄存器定义如表10-4所示。

FROM:https://blog.csdn.net/impossible1224/article/details/80818241

一,管脚定义

管脚序号 管脚定义 方向
1,C0 /STROBE ,数据选通,低电平有效 Output
2~9,D0~7 DATA0~7,数据通道0~7 双向
10,S6 /ACK,确认,低电平有效 Input
11,S7 BUSY,表示打印机不能接收新的数据 Input
12,S5 Paper   End,表示没有打印纸 Input
13,S4 Select,高电平表示联机,低电平表示脱机 Input
14,C1 /AutoReed ,自动换行 Output
15,S3 /ERROR,表示打印机出错、缺纸或者脱机状态 Input
16,C2 /Initialize, 初始化,低电平有效 Output
17,C3 Select   In,低电平有效,表示数据可输入打印机 Output
18~25,G0~7 GND,地 Ground

二、基本的SPP 模式的时序

三、寄存器

寄存器地址 寄存器
0x378 SPP数据寄存器,DATA0~7的输入输出,依次对应管脚(9、8、7、6、5、4、3、2)
0x379 SPP状态寄存器,输入,依次对应管脚(11、10、12、13、15、x、x、x)
0x37A SPP控制寄存器,输出,依次对应管脚(x、x、x、并口中断允许位、17、16、14、1)
0x37B EPP地址寄存器(一般不用),可读可写
0x37C EPP扩展数据寄存器(一般不用),可读可写

也就是说PC的0x378可以用来做输入和输出,0x37A的低4位可以用来输出,0x379是输入。这样就可以用并口模拟很多接口时序,比如I2C、SMI、JTAG、SPI等,也可以用来当做开关控制其他设备。这个时候不用管第一节中的Centronics打印机标准接口的那些信号定义,只用处理输入输出D0~7,输出C0~3,输入S3~7即可。

注:现在市面上很多PC已经没有并口了,需要购买PCIe转并口的转接卡,这时并口的基地址不再是0x378,而可能是0xD050或者0xE050等,此时只需寄存器地址修改即可。

四、硬件接口

并行接口输出的是TTL标准的逻辑电平,输入信号也要符合TTL标准。这种特性可以使接口容易应用在电子设计中。大部分的PC并行接口能吸收和输出12mA左右的电流,如应用时小于或大于这个值,应使用缓冲电路。
为了保持与早期的Centronics 接口兼容,使用OC(open collector)驱动器,使用上拉电阻(pull-up resistor)标准电阻值为2.2k欧或4.7k欧。控制线与状态线仅要求上拉电阻Rp,数据线和Strobe线还要求串联电阻Rs来匹配线路阻抗,调整串联电阻值使其与驱动器的输出阻抗之和等于45欧到55欧的线路阻抗。比如驱动IC输出阻抗为15欧,则需要33欧的串联电阻。

五、并口编程

一般利用现成的inpout32.dll或者WinIo.dll动态链接库来做。

FROM:重庆邮电学报 程方

PC机并口和并口打印机相关推荐

  1. 通过路由器的IP映射来解决,两个不同IP地址的PC机之间的从LAN口到WAN口的单向通讯问题

    通过路由器的IP映射来解决,两个不同IP地址的PC机之间的从LAN口到WAN口的单向通讯问题 参考文章: (1)通过路由器的IP映射来解决,两个不同IP地址的PC机之间的从LAN口到WAN口的单向通讯 ...

  2. 计算机控制电机启动接线图,用PC机并口控制一个简单电路

    所谓PC机并口控制,就是要用打印机接口来控制一些外部设备,达到自动化的目的.如学校早操及课间操音乐的自动播放.公共场所照明的自动控制.小型的彩灯的控制.按照课程表进行自动打铃.简易机械加工设备的自动控 ...

  3. 单片机实验汇编案例---单片机串行口与PC机通讯实验

    一.实验要求 利用8031单片机串行口,实现与PC机通讯. 本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上. 二.实验 ...

  4. 俩个PC机通过串行口互联,实现件的无差错传输。程序必须用中断方式来完成任务

      课程设计(论文)任务书 一.设计题目:1.题目名称      PC机通过串行口互联 2.题目来源               二.目的和意义 俩个PC机通过串行口互联,实现件的无差错传输.程序必须 ...

  5. PC机如何使用trunk口类型连接

    特殊环境下有客户要求pc机需要用trunk口类型连接 方法如下 1.创建vlan2 [H3C]vlan 2 [H3C-vlan2]q 2.配置trunk接口模式 [H3C]int g1/0/1 [H3 ...

  6. 三菱PLC和PC机通过编程口串行通信实现

    1 系统硬件构成 三菱FX系列PLC自带的编程口是RS-422接口,而PC机的串行通信口则是RS-232C接口,两者之间需要通过SC-09适配电缆才能通信.不同设备上相同类型的通信接口的引脚定义可能存 ...

  7. 串行口实验 编写程序利用PC机控制单片机实验板上的数码管设备工作

    编写程序利用PC机控制单片机实验板上的数码管设备工作 在pc上输入fe,第一个数码管显示1. 在pc上输入fa第五个数码管显示5 程序: #include<reg51.h> #define ...

  8. PC机上的COM1口和COM2口

    现在PC机一般有两个串行口COM1和COM2. 串口叫串行接口 串口与并口不同之处:数据和控制信息时一位接一位地传送出去的,虽然速度慢,但传送距离较并口会更长,因此若要进行较长距离的通行时,应该使用串 ...

  9. C#并口热敏小票打印机打印位图

    C#并口热敏小票打印机打印位图 原文:C#并口热敏小票打印机打印位图 最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了. 这是DEMO的窗体: 下面是打印所需要 ...

  10. 计算机组成原理中的主机,计算机组成原理-pc机的主机

    五. PC机的主机 (一) 主板 1. 又称母板,通常安装有CPU插座.CPU调压器.芯片组.第2级高速缓存(有的已做在CPU中).存储器插座(SIMM 或DIMM).总线插槽(如PCI.AGP.ID ...

最新文章

  1. 在codeblocks中使用C++11标准,安装及配置方法
  2. mitmproxy https抓包的原理是什么?
  3. python do while语句_python控制语句执行流程(while)
  4. phpstorm 全项目替换_会信息交互还带5G基站的路灯来了!白云新城智慧灯杆项目动工...
  5. Lync Server 2010企业版系列PART7:部署前端
  6. AndroidStudio遇到的问题
  7. python股票交易模型_利用python建立股票量化交易系统(一)——小市值选股票模型...
  8. 马尔科夫随机场:定义、性质,最大后验概率问题,能量最小化问题
  9. EPS电动转向系统分析
  10. 网页音乐播放器 音乐播放器 html+css+js
  11. SQLAlchemy 字段、要点
  12. css实现简单几何图形
  13. word提示“Word上次启动失败,安全模式可以帮助您解决问题”的解决办法
  14. 马云:中国企业不缺创新缺管理思想
  15. execute immediate 用法详解
  16. TB6560 驱动板资料
  17. Oracle递归死循环怎么办?
  18. 软件工程实践2018第六次作业——现场UML作图
  19. 自动驾驶专题介绍 ———— 转向系统
  20. TensorFlow Mobilenet SSD模型压缩并移植安卓上以达到实时检测效果

热门文章

  1. “I am a student”反转成“student a am I”
  2. 【深入思考】卷积网络(CNN)的平移不变性
  3. Python中的文件读写
  4. com.netflix.client.ClientException: Load balancer does not have available server for client: applica
  5. 查看Linux补丁程序 版本,查看Linux内核的版本方法
  6. 二分查找(python实现)
  7. 非线性降维算法Isomap与C-Isomap的研究
  8. 施密特触发器原理图解
  9. mysql用了utf8还是乱码_MySQL乱码的原因和设置UTF8数据格式
  10. vmware 共享文件夹失效