A. 软件为什么能控制硬件
问题一,举个最简单的例子,就是在“软件空间”,也就是所谓的地址空间中的一些特殊区域,是通过“一根导线”,连接到某个外部引脚上面的,这样,这个“地址空间”里面的数据发生改变,这个引脚对应就有软件上面的“0”、“1”两个值,比如高电平和低电平。
这只是一个非常形象的例子,实际硬件运作过程比较复杂,但是核心差不多就是这样,一般是通过特定的地址实现对硬件的控制——比如软件的存在是依赖存储器的,那么存储器硬件上的一种是电容,只要在这个电容上连接除了起存储作用的“引线”,还连接别的东东,就可以起到相应的作用了,比如点亮一个发光的东东。
疑问二:你说的赋予相应的脉冲,应该是给控制信号吧。大概过程可以描述下:首先软件写入特定的特殊地址,硬件检测到这种写入后反馈给硬件固化的“软件”(也可以叫固件,芯片们工作往往不只有硬件电路的参与,还有硬件本身带有的软件的参与),这种“软件”再“写回”给软件,这就完成了一次通信的过程。
实际硬件软件协同工作的过程非常复杂,《单片机原理》里面有比较细致的描述。所有回答中使用引号的词句表示这只是真实情况的一种近似或形容,不代表其真实工作过程。
B. 软件到底是怎样控制硬件的
首先,硬件是由各种“门”组成,“门”是个术语,不懂没关系,可以把一个“门”看成是一个多米诺骨牌,它被推倒后能把下一张骨牌推倒。
看过多米诺骨牌视频的都知道,骨牌的巧妙摆放再配合各种机关的话,在推倒后是可以实现许多种功能的,比如演奏音乐,控制灯光甚至开动汽车啦等等。
假设在一个大房间里,已经摆放了这样一堆堆的多米诺骨牌,每一堆骨牌被推倒后,都能实现出特定的功能,但人是不能进来这个房间的,这些骨牌只能靠房间里的一个机械手来推倒。
然后,在房间外面,摆放着有限的几块骨牌,人可以按照不同的排列组合推倒这些骨牌,然后房间里面就会有个机械手按照人的想法来推倒不同的骨牌,实现各种功能。
但是,有时候,人想实现的功能太复杂了,光靠控制机械手推倒骨牌的话,要推倒成千上万块骨牌,太累,那么一种思路是:在房间里事先摆放更多,更复杂的骨牌,这叫增加硬件,但这样很不灵活,只能解决部分问题。
另一种思路是:人每次都临时控制机械手在房间里摆放新的骨牌,然后这些骨牌被推倒后,就可以一次性触发更多的骨牌被推倒。
但实际上房间里并没有新的骨牌,房间里已经摆放了一大堆专用的骨牌,然后机械手只是重新修改了这些骨牌摆放的位置而已。
这个房间,就是一台电脑,那些已经摆放好的骨牌,就是硬件,按照你的意愿推倒一张骨牌,造成连锁反应,实现你想要的功能,叫做控制,通过机械手重新摆放的骨牌,就是软件。那一堆控制机械手的多米诺骨牌,就是你的鼠标键盘。
控制原理解析:
程序本身就是高低电平的组合;它通过在CPU上执行来模拟各种决策过程;同时,计算机就是一堆开关;那么,通过指令向某些地址写出数据(访问特定地址是通过各种寻址机制/指令完成的,归根结底也可以说是通过开关切换,改变了电路拓扑),就等于开启/关闭了对应地址上的某个开关;这个开关可以是类似CPU内部那样的一组三极管,也可以是通向另外一个继电器的信号线——这个信号就促使继电器闭合,于是电机导通。
就好象人开汽车一样,神经发出的微不足道的电脉冲经过肌肉放大,影响了涉及数百甚至数千马力的能量洪流的发动机/变速箱的运转,然后汽车就开走了。
计算机也一样:它通过向控制特定地址上的开关输出0/1(高低电平),就可以通过事先准备的物理设施驱动诸如航模电机、舵机等等机构,这就完成了航模控制。
完整的控制回路甚至可以是:
航模上的传感器采集飞行姿态、地形、位置等等数据(最终转换成高低电平构成的信号)----信号通过某些端口送到CPU-----CPU执行程序,程序读取传感器发来的信号,决定下一步的行动-----经过程序的智能判断后,通过控制特定地址上的开关(前面提过,向这个地址发一组高低电平构成的数据就行了),驱动诸如航模电机、舵机等等机构,完成航模控制。
C. 操作系统是如何控制硬件的
操作系统大部分是用C语言编写的,只有其中一小部分(核心部分)是用汇编语言编写的,用汇编可能是有更高的执行效率。在操作系统加载进内存中运行的时候其实那些用C语言啊汇编语言编写的代码都是要转换成二进制代码的,也就是机器语言,其实任何软件都要转换成机器语言才能让计算机运行。二进制代码在机器里面其实使用电压的高低来表示的电压高代表1电压低代表0。
有了这些知识后你再来看你提问的问题,你说在操作系统执行关机命令的时候,软件是怎么控制硬件断电的,其实在你点击关机按钮的时候,就是给操作系统发了一个命令,在计算机内部的表示形式也就是在你的点击下,里面产生了一组高低电压(也可能是全高的电压,或者是全是低的电压,总之是一组电压),这一组电压会控制主机的运行状态,让主机知道了你给它发出的命令,然后它就会执行这个命令,而你就看到计算机关机了!
总之一句话,计算机里面运行的是高低电压,你所有的操作,还有计算机操作系统及应用软件的操作都是通过电压的高低来对硬件进行控制的。有关这方面的具体细节你可以参考一下计算机原理方面的书籍!
D. 软件是怎么控制硬件的
这个问题我回答过很多个人了,我很久以前也对这个问题很感兴趣,查阅了很多资料之后,我得出一个结论:程序是一堆逻辑的代码,而硬件是实实在在存在的需要用电平控制的电路,程序在控制硬件之前,必须要有一个中间的媒介来沟通两个,这个媒介可能就是磁头或者光头,你所写的代码如果是在软盘或者硬盘中,那么就是磁头通过扫描硬盘或软盘将每个代码转化成电信号,如果是光盘里的代码,那就用光头扫描转化。其实当你写这些代码时代码便以磁排列的方式保存在软硬磁盘上,因为在键盘上你每按下一个键,这便是一个电信号,每一个电信号都会在磁盘上产生一个磁排列,然后磁头再将这些磁排列反变换为电信号,电磁互相转化,这样便可以控制硬件电路了,不知道这么说你能否理解
E. 软件程序怎么让硬件工作的
软件和硬件的关系,不是简单的谁控制谁的问题,而是相互依存的关系。
如果把软件和硬件作为一个整体的话,用人来做一个对比,可以说清这种关系。
软件基本上就是一些人为定义好的逻辑,它是一种思想,就像人的思想一样,所以CPU是人的大脑,而CPU里写的软件就是人脑中的思想。
我们这里说的硬件是一些CPU以外的各种电路,这些电路连接到CPU。有些电路是用来采集外界的信息,比如温度、湿度、电压、电流、光线、图像、声音、气味等等,将这些信息传递给CPU。而有些电路是接收CPU发出的指令,按不同的电路实现不同的功能。
比如,发出一个关灯的指令,相应电路接收到该指令后实施关灯的动作。
下面用开灯的过程分别用人和软件硬件来作一个对比:
人: 我在家里看书,太阳落山了,天渐渐变黑,我发现看不清字了,这时我想到要去把灯打开,所以我走到开关边上,伸出手按下开关,这时灯亮了,我又可以继续快乐的看书。
软件硬件:我家里有一套电灯控制系统,工作原理是,光线检测电路检测到光线变暗了,它发出一个信号告诉CPU光线已经较暗了,CUP收到该信息后,其软件逻辑为需要把灯打开,所以CPU输出开灯的指令,电灯控制电路接到指令后接通电灯的开关,这时灯亮了。
(5)软件如何控制硬件扩展阅读:
软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。
1相关系统分析员和用户初步了解需求,然后列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。
2系统分析员深入了解和分析需求,根据自己的经验和需求做出一份文档系统的功能需求文档。这次的文档会清楚例用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还例出相关的界面和界面功能。
3系统分析员和用户再次确认需求。
4系统分析员根据确认的需求文档所例用的界面和功能需求,用迭代的方式对每个界面或功能做系统的概要设计。
5系统分析员把写好的概要设计文档给程序员,程序员根据所例出的功能一个一个的编写。
6测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能,然后验收。
F. 软件怎么操控硬件的
计算机软件在计算机内部无非也就是一堆01代码,作用于硬件也是因为这些01代码,这相对比较复杂的
举个例子说:打印机,它有自己的端口地址,当你点击打印的时候,系统会把这个指令传到它的端口,给它加上一组高低电压。
安装软件的过程除了把软件拷到电脑上之外,剩下的还有给操作系统作个标记(在注册表内注册)
系统为每个硬件设备留下了端口地址,软件作用于硬件首先是把指令传送到他的端口地址。而硬件的工作 也无非是几个指令而已,对它而言就是几个高低电压组成的,用软件控制就是发给它几个特殊的01组合代码。软件的工作就是给这样的硬件编程。规定,什么样的操作用什么样的代码而已。
G. 软件是如何控制硬件的
楼上得回答很专业啊,我就打个比方吧,硬件就像武器,人就像软件。虽然很多人都可以使用武器,但武器的效果却是不一样的。
H. 软件是怎样控制硬件的
软件通过修改存储器电位的高低然后驱动硬件电路开关工作。存储位高电位硬件电路就可以开通。存储器低电位。硬件电路就关闭。
I. 程序是如何控制硬件的
我建议你看几本教科书:计算机组成原理、数字电路基础、8086汇编语言、c8051单片机实验教程
看完这几本书你就明白了。一般在cpu中高电平是3.7v~5v之间代表1,1.6v~0v之间代表0,低电平。软件是运行在硬件cpu上的,它通过输出控制引脚将高低电平以及各种方波、波信号输出到引脚,引脚上有放大设备来识别信号进行信号放大,或者识别信号来增强信号加速传输。
整个运行过程还是相当复杂的。这样可能你容易理解,如果你把灯开关理解为一台计算机,那么它只能被你输入开、关,两个状态,它就相当于一个最简单的计算单元,你输入开时,它输出电流,驱动灯泡。就是这样。
你的问题在我给你的书里有非常详细的解释。
J. 程序是如何控制硬件的
计算机的两个主要组成部分是它内部的存储器及处理器。
内部存储器被用来存储程序和数据,处理器则是一组电路,用来实现一系列的基本运算或机器指令,如进行算术运算和逻辑运算的指令。
在大多数计算机中,有一些指令通常被称为宏指令,实际上这些指令时通过定义更低层次的指令(称为微指令)来实现的。
因为微指令从来不在软件中显示,因此无法详尽的表达它的概念。