软件是如何控制硬件的?
姓名:刘亚宁 学号:17101223434
转载自:http://baijiahao.baidu.com/s?id=1586637894764546859&wfr=spider&for=pc,有删减。
【嵌牛导读】:软件在计算机的存储设备中,当发送读取命令后存储设备中的信息就以电流和电流的变化来表示,电流的有和无或者电压的高低可以理解为软件里的1和0,而不同的01组合就相当于新的指令,达到控制硬件的目的,简单的电路甚至只需要简单的几个电流信号就可以达到控制硬件的功能,而软件的就是复杂的可以理解为复杂的电流信号。
【嵌牛鼻子】:软件控制硬件 、助记符、逻辑电路、信号转换
【嵌牛提问】:电路如何接受众多复杂的电流变化?
【嵌牛正文】:
可以简单看作软件就是硬件电路中的电压和电流,是它们不变化来改变硬件的通断,从控制硬件的工作的.软件在工作的时候也是实体,软件的实质就是电流信号,用电压的高低代表不同是信息,用这些电流信号去控制逻辑电路的通断,靠逻辑电路的通断来控制硬件的工作。
其实从本质上来说并没有软件去控制硬件,而是硬件自己的循环控制。简单来说就是你在键盘上按一下按键,产生高低电压(简单的就是这么说了,当然还有一堆的编码什么的),然后这个电压被存储在ROM(只读寄存器)。然后处理器加载存储的这个高低电压,执行工作。想象一下,如果cpu只是一个n-mosfet,当g极读取到高电压时,产生一个大于阈值电压的vgs,那么ds导通,就可以控制一个灯亮,当读取到低电压灯就灭。当然处理器的处理能力远远不止于此,所以就产生了软件这个概念,让我们可以输入更复杂的控制内容。请记住你看到的在电脑屏幕上密密麻麻的字母并不是软件,而是一段助记符,真正的软件是你在按下键盘的时候产生的高低电压。计算机软件说到底,不过就是一些指导电子元件工作的指令序列,那么你一定又会问电子元件为什么会按这些序列工作呢?指令序列的在电路中的实质就是一些有规律且有一定意义的电脉冲,电脉冲控制电子元件的各种状态。工作过程非常复杂。最简单最基本的就是几个逻辑门电路的实现:比如“或”电路,“与”电路等等。通过将这些逻辑门电路的组合和协同,就能实现电脑整体上的运算和处理能力。因为这是十几个数量级的基础电路的有机集合的对外的体现,如奔腾系列CPU集成了上亿个半导体元件,要想把各个元件的功能彻底认知,是非常困难的。可以把它们比作每个人的活动合在一起就构成了社会.计算机是数字电路,数字电路是靠1,0来控制电路的.起到电流还有脉冲作用.像你键盘上敲个周字一样.同是由一大一串的0001111111111100.来产生脉冲电流对硬件发出指令的.CPU就是运算这些数据.然后发出机器语言指挥其它硬件工作的。
好了因为指令集是软件和硬件的接口,软件的编程就必须按照这个接口规范来编写了。当然现在的高级语言编程并不用知道这些,你只要关心编程的语法和你的逻辑就可以,因为编译器已经帮你做好了这个工作,一系列的编译,汇编,链接之后,你就获得了一个包含01的可执行文件,在存储里面就是表现为高低电压。然后这段高低电压送入处理器,经过处理器后就输出你想要的结果,达到软件控制硬件的目的。
软件所有的执行命令最终都会被翻译成由0和1组成机器能够识别的代码。0代表低电位,1代表高电位,当然,还有频率和周期。所有这些都是通过二极管的单向通电、三极管、场效应管和电容的充放电的特性来实现的,通过二极管三极管场效应管以及电容的充放电性能可以组成放大电路,可以放大电压,也可以放大电流,还可以改变频率,通过电流和电压和频率的改变,就可控制硬件。
请记住,本质并没有软件控制硬件,你是不能用意念控制一个东西一个道理,而是硬件控制硬件。软件是为了高效的输入你的控制指令而发展起来的一套系统化的东西。
下面推荐一款优秀的国产软件——云表,一个免代码的开发平台。会画表格就可以开发软件!无需编程。
再和大家分享用云表设计的数据管理系统,相互之间可以借鉴;
公司OA
难能可贵的是,云表开发软件是不需要编程的,只需要画画表格,作一些中文配置,就能把软件做成了。可以实现企业数据共享、协同办公、用户权限控制、工作流、添加附件、表单填写规范等功能,可以开发PC端应用也可以生成手机端应用,功能可谓强大,现在很多企业都在使用这款软件开发平台。
云表除了可以像excel一样进行普通数据处理,更像是一个神奇的魔方,完全可以设计像ERP这样的真正的管理系统,当然,不管用云表做什么操作都像画excel表格一样简单,普通excel用户都能轻松应对,比如说你想做一个进销存、WMS仓库管理软件、OA、薪资核算系统、设备管理系统、生产管理系统、物料需求管理系统、销售管理系统、CRM、BOM管理、MES、办公用品管理软件、PLM……