最近想利用服务器的并口做一些东西,于是上网查了下并口定义及相关编程方法,如下:

一、接口定义说明

电脑的并口,通常是25针. 接口定义如下:

方向

2,3,4,5,6,7,8,9

双向

1,14,16,17

输出

10,11,12,13,15

输入

18,19,20,21,22,23,24,25

功能说明:

二、并口编程基础

这些引脚,其实就是I/O口。而且是可以控制的,以软件的方式,非常简单。

在计算机内部,对应的寄存器如下:

0x378是8bit数据寄存器的地址,对应并口针的顺序是9,8,7,6,5,4,3,2

0x379是状态寄存器,11,10,12,13,15 - - -

0x37A是控制寄存器,- - - 并口中断允许位,17,16,14,1

也就是说PC的0x378可以用来做输入和输出,0x37A的低4位可以用来输出,0x379是输入。这样就可以用并口模拟很多时许,比如IIC、JTAG、SPI等等。

注意:上述的寄存器地址是以0x378为基地址的。如果基地址为0x3F0,那么他们的数据、状态、控制寄存器地址分别为0x3F0、0x3F1、0x3F2。(基地址缺省的是0x378,也可在BIOS里重新设置)

输入函数:int inport(int address); address就是上面的寄存器地址

输出函数:int outport(int address,int value);

无论是DOS下编程、还是Windows下,都可用。

三、25针并口具体定义

Pin Name Dir Description  
  1 /STROBE -> Strobe  
  2 D0 -> Data   Bit   0  
  3 D1 -> Data   Bit   1  
  4 D2 -> Data   Bit   2  
  5 D3 -> Data   Bit   3  
  6 D4 -> Data   Bit   4  
  7 D5 -> Data   Bit   5  
  8 D6 -> Data   Bit   6  
  9 D7 -> Data   Bit   7  
  10 /ACK <- Acknowledge  
  11 BUSY <- Busy  
  12 PE <- Paper   End  
  13 SEL <- Select  
  14 /AUTOFD -> Autofeed  
  15 /ERROR <- Error  
  16 /INIT -> Initialize  
  17 /SELIN -> Select   In  
  18 GND -- Signal   Ground  
  19 GND -- Signal   Ground  
  20 GND -- Signal   Ground  
  21 GND -- Signal   Ground  
  22 GND -- Signal   Ground  
  23 GND -- Signal   Ground  
  24 GND -- Signal   Ground  
  25 GND -- Signal   Ground

针脚

功能

针脚

功能

1

选通端,低电平有效

10

确认,低电平有效

2

数据通道0

11

3

数据通道1

12

缺纸

4

数据通道2

13

选择

5

数据通道3

14

自动换行,低电平有效

6

数据通道4

15

错误,低电平有效

7

数据通道5

16

初始化,低电平有效

8

数据通道6

17

选择输入,低电平有效

9

数据通道7

18-25

另外 ,Linux例程如下:

<pre name="code" class="cpp">#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>int main()
{//open fileint fd;fd=open("/dev/port",O_RDWR);if(fd<0){perror("open file error:");return -1;}//operateunsigned char buf[2];while(1){lseek(fd,0x378,SEEK_SET);buf[0]=0xff;write(fd,buf,1);sleep(1);printf("LED ON \r\n");lseek(fd,0x378,SEEK_SET);buf[0]=0x00;write(fd,buf,1);sleep(1);}//closeclose(fd);return 0;
}

经亲自测试,可以控制连接在管脚上的LED闪烁。至于模拟其他的总线或者别的控制,也就很简单了,无非是时序的问题。

并口定义及并口编程基础相关推荐

  1. oracle proc 定义宿主,oracle proc 编程基础及最小化案例

    oracle proc 编程是在我的概念中是非常陌生的,学习了一天下来发现这东西真的好古老,但是依然健壮.稳定,其中间是编辑一个 .pc 的文件使用 proc 进行预处理,预处理后生成一个真正的.c文 ...

  2. 51单片机c语言程序控制,51单片机C语言编程基础及实例.pdf

    基础知识: 51 单片机编程基础 第一节:单数码管按键显示 第二节:双数码管可调秒表 第三节:十字路口交通灯 第四节:数码管驱动 第五节:键盘驱动 第六节:低频频率计 第七节:电子表 第八节:串行口应 ...

  3. 品味树莓派:GPIO口定义、电气特性、启动状态等基础说明

    文章目录 目录 GPIO口定义 电气特性 启动状态 总结 目录 树莓派相比成品化的电脑来说有很多独立的GPIO口可供开发使用,可以方便的实现很多实物相关的功能.本文将对树莓派开放给用户的GPIO口的针 ...

  4. C语言对p1口取反,单片机c语言编程基础(5页)-原创力文档

    单片机的外部结构: 1. DIP40双列直插: 2. P0,P1,P2,P3四个8位准双向I/O引脚:(作为I/O输入时,要先输出高电平) 3. 电源VCC(PIN40)和地线GND(PIN20): ...

  5. 【嵌入式】非操作系统下GPIO口控制器及LED灯编程

    非操作系统下GPIO口控制器及LED灯编程 GPIO控制器 概述 内部架构 端口寄存器 GPIO控制寄存器 GPIO数据寄存器 GPIO上拉寄存器 非操作系统LED灯闪烁 开发步骤 开发板上二极管 读 ...

  6. java编程一般类抽象类的定义,Java编程基础抽象类

    本文主要是讲述Java编程基础-抽象类,更多Java技术知识,请登陆疯狂软件教育官网. 抽象类: 抽象:不具体,看不明白关键字abstract 抽象类的特点: 1.抽象方法只能定义在抽象类中,抽象类和 ...

  7. 1.2编程基础之变量定义、赋值及转换 10 Hello, World 的大小

    http://noi.openjudge.cn/ch0102/10/ #include <bits/stdc++.h> using namespace std; int main( voi ...

  8. Python编程基础:实验5——函数定义与调用

    Python编程基础:实验5--函数定义与调用 文章目录 Python编程基础:实验5--函数定义与调用 一.前言 二.我的环境 三.实验目的与要求 四.实验任务 1.程序填空 2.程序编程 五.最后 ...

  9. 6-3 定义并实现Book类及其__del__函数(高教社,《Python编程基础及应用》习题9-4)

    图书馆里有很多的书, 请定义一个名为Book的类.该类的属性包括书名(字符串),书号(字符串),单价(浮点数):该类的构造函数接受书名,书号及单价三个参数并参成对象初始化:该类的__del__()函数 ...

最新文章

  1. 用python画太阳系_用 Python 动态模拟太阳系运转
  2. python charm下载安装教程-Python及Pycharm安装方法图文教程
  3. Python程序执行原理
  4. 学java好还是web前端好_到底是学习Java好,还是Web前端好?
  5. 荣耀x10max能不能升级为鸿蒙,荣耀终于放出大招!4部荣耀旗舰可升级鸿蒙,网友:终于等到了...
  6. Android 学习 笔记_03. SQLite的使用
  7. WCF(一) ---- 简单调用
  8. mongoDB之find()
  9. 蓝牙学习笔记(四)——AC692x程序烧录
  10. python_内置字符串
  11. HTTP协议-HTTP权威指南
  12. 台式计算机鼠标应该插哪里,鼠标插在电脑哪里 鼠标的usb接口没反应如何解决...
  13. Oracle项目管理系统之供应商筛选及资格预审
  14. 【原创】从文华财经下载数据并且分析每个期货品种的贝塔值-云金杞
  15. 和平精英小程序服务器开小差,1个BUG存在了4年 光子通过小提示说出了无法修复的原因...
  16. 公司股权等比稀释是什么意思
  17. Apifox实战——微信的第三方小程序提审发布
  18. 安徽工贸职业技术学院计算机比赛,放飞青春,不负韶华!《追梦》——安徽工贸职业技术学院2019年宣传片...
  19. 网络系统(Java web)开发与设计项目实战——实现用户登录与注册
  20. VS2019下添加include和lib

热门文章

  1. html中outline属性,CSS outline 属性
  2. android10手机众筹,世界上最小的Android 10手机海外众筹,竟是来自中国?
  3. 一个游戏是如何被设计和开发出来的(怎样开发一款游戏)
  4. 电力监控系统在变电站供配电的监测与管理的应用于功能
  5. 如何提高你的记忆力之二
  6. 河北大学暑假训练营 第一周 平方数
  7. 【编程规范】编程中常见中英文词汇对照
  8. php 后缀文件怎么打开,php是什么文件格式,php扩展名文件如何打开?
  9. 拜托周杰伦,请不要强奸霍元甲!
  10. 两个div水平并排的方式