我们买了一个设备,比如摄像头或者其它的连在计算机上的设备,都首先要安装一个驱动程序。在我们的电脑上面,通过计算机管理程序界面,可以看到
图1
不管是网卡、显示器还是扬声器下面,都有一系列的程序名称,这些程序就是驱动程序。
我们可能感觉到,没有相应的驱动程序,那个设备就不能使用。
那么,驱动程序和相应的设备之间到底是一种什么样的关系呢?
下面以一个单片机的数码显示程序为例加以说明。
图2
图2表示的是一个单片机驱动数码管显示数字的电路。先看看数码管的原理:
图3
图4
图5
从图3到图5可以看出,一个数码管由8个发光二极管(包括小数点)组成。如果要显示0,则只有中间的g不发光。图4的编码是等于1的时候表示不发光,所以0的编码是11000000,即十六进制C0。再看图2,8个数码管是和CPU的P0端口(8位)连在一起的,所以如果要数码管显示0,则只需要执行
mov P0, C0H,即把0的编码送入P0端口就可以了。那么,这条指令就是一条设备驱动指令。图2里面还有一个数字键盘,那么,我们可以编写一个程序,当我们在键盘上按下0的时候显示0,按下1的时候显示1,等等,这个程序就是一个标准的设备驱动程序。
图4中0的编码是C0,那么,我们也可以倒过来,让等于1的时候表示发光,则0的编码就变成了00111111,即3FH。这就是当我们买了一个同样的设备,由于生产厂家不一样,也要重新安装驱动程序的原因所在。因为不同的厂家采用的技术标准(编码)不一样。
通过上面的解释,我们似乎可以这样来理解驱动程序:
当我们把一个外部设备连接上计算机以后,我们希望根据我们的指示(按键),有一个程序会驱使这个外部设备做出相应的反应(显示数字),来实现我们的意图。那么这个程序就叫做驱动程序。