软件为什么可以控制硬件?
就比如键盘上的数字按下代表相应的脉冲施加在特定位置,之后可以控制相应的显示和动作,这个我懂。但软件是通过大量代码实现十分复杂的动作,且它的核心是软件。我的疑问1,代码通过...
就比如键盘上的数字按下代表相应的脉冲施加在特定位置,之后可以控制相应的显示和动作,这个我懂。但软件是通过大量代码实现十分复杂的动作,且它的核心是软件。我的疑问1,代码通过什么途径控制硬件(比如成像系统,数控系统),且如何给代码赋予相应的脉冲。简单说游戏软件,实现了大量复杂的显示和操作,它通过什么途径控制的。有人能解释一下吗?
疑问2.如何给代码赋予相应的脉冲
无论解释疑问1.或2均可得分 展开
疑问2.如何给代码赋予相应的脉冲
无论解释疑问1.或2均可得分 展开
2个回答
展开全部
问题一,举个最简单的例子,就是在“软件空间”,也就是所谓的地址空间中的一些特殊区域,是通过“一根导线”,连接到某个外部引脚上面的,这样,这个“地址空间”里面的数据发生改变,这个引脚对应就有软件上面的“0”、“1”两个值,比如高电平和低电平。
这只是一个非常形象的例子,实际硬件运作过程比较复杂,但是核心差不多就是这样,一般是通过特定的地址实现对硬件的控制——比如软件的存在是依赖存储器的,那么存储器硬件上的一种是电容,只要在这个电容上连接除了起存储作用的“引线”,还连接别的东东,就可以起到相应的作用了,比如点亮一个发光的东东。
疑问二:你说的赋予相应的脉冲,应该是给控制信号吧。大概过程可以描述下:首先软件写入特定的特殊地址,硬件检测到这种写入后反馈给硬件固化的“软件”(也可以叫固件,芯片们工作往往不只有硬件电路的参与,还有硬件本身带有的软件的参与),这种“软件”再“写回”给软件,这就完成了一次通信的过程。
实际硬件软件协同工作的过程非常复杂,《单片机原理》里面有比较细致的描述。所有回答中使用引号的词句表示这只是真实情况的一种近似或形容,不代表其真实工作过程。
这只是一个非常形象的例子,实际硬件运作过程比较复杂,但是核心差不多就是这样,一般是通过特定的地址实现对硬件的控制——比如软件的存在是依赖存储器的,那么存储器硬件上的一种是电容,只要在这个电容上连接除了起存储作用的“引线”,还连接别的东东,就可以起到相应的作用了,比如点亮一个发光的东东。
疑问二:你说的赋予相应的脉冲,应该是给控制信号吧。大概过程可以描述下:首先软件写入特定的特殊地址,硬件检测到这种写入后反馈给硬件固化的“软件”(也可以叫固件,芯片们工作往往不只有硬件电路的参与,还有硬件本身带有的软件的参与),这种“软件”再“写回”给软件,这就完成了一次通信的过程。
实际硬件软件协同工作的过程非常复杂,《单片机原理》里面有比较细致的描述。所有回答中使用引号的词句表示这只是真实情况的一种近似或形容,不代表其真实工作过程。
更多追问追答
追问
原理看着很模糊,能加点专业术语和例子吗
追答
假设现在有一个8位单片机,有一个地址0x11,可以控制一组IO接口P0.0~P0.7共8个引脚。
我试着从近似的角度阐释为什么会有控制动作:
1、写入过程:地址0x11(IO控制寄存器)存储着1Byte,8Bit的信息,对应着这8个引脚(可以简单理解为一个存储着信息0、1的电容外面又连接了一个导线到一个引脚),那么当软件对这个地址“写入”值时,相应的引脚电压就要随着这个电容器(这个电容器本质上是触发器)里面存储的电压高低(电平翻转)发生变化。
2、读取过程:由于这个存储电荷的电容与外部的引脚有“导线”连接,因此当外部“人为”(其他设备、芯片或开关什么的)地改变这个引脚的电压(引脚拉高或拉低)时,“电容”会充放电(建立和保持),改变电压(寄存器位变化)。当程序读取了这个地址0x11时,就会得到改变的值。
3、这种软件能够控制硬件进行变化和检测变化的能力,就是数字世界的基础,也是构成现代设备设施的最基本原理。
上文所引用的大部分内容,是真实世界的一种及其不精确的近似,仅可帮助理解,与相关设备的本质工作原理表面相同,但本质有根本性的不同。如想继续加深这方面的理解,建议参考阅读《数字电路基础》。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以看看单片机原理,这个比较详细
追问
太泛了,单片机我学了,至于太详细的原理我在书上没有见到
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询