计算机如何将01转化为高低电平,文本6(二进制0000 0110)是显卡驱动LCD显示的ASC码;键盘6按下,则0000,0110被电路驱动存储单元8个位分别施加电平:低低低低,低高高低。写进存储单元

计算机如何将01转化为高低电平

 看到一个帖子,终于解释了困惑。“机器语言的1010这一堆数字怎么变成高低电平的?”一个比较老的问题,但是很多人的回答非常傲慢,说什么看看《数字电路》《计算机原理》就知道了,可是很多人根本就不知道楼主在问的是什么。庆幸在最后一帖看到了想要的答案。

问题:高级语言编译成机器语言后,将这些机器语言存于存储器中,然后按顺序输出高低电平,实现用户的要求。。。我的问题是机器语言是怎么存进存储器中的,也就是说机器语言怎么变成高低电平进入存储器的。 也就是说机器语言的1010这一堆数字必须要变成高低电平才能存进存储器,从而被cpu读取,我就是想知道机器语言的1010这一堆数字是怎么变成高低电平的。

胡乱回答 之一:1和0是人为规定,你可以用ABAB或者其它代码表示高低电平。 之二:楼主回去看看《数字电路》吧(虽然楼主一再表示看过好几遍了都没有这个问题的答案)

答案

在打孔机时代,这个问题可以这么看

你的01010代码,需要专职的程序录入员将0和1用打孔和不打孔的方法,转换为纸条上的一串孔洞。然后有孔的程序纸通过光照区,有孔无孔转换为光点和暗点,再通过光敏元件,转化为高低电平。以后机器中就再也不会出现0和1,只有高低电平了。

可以说,录入员之前是一个世界,高级语言也好,汇编语言也好,机器代码也好,都是0101的二进制数字世界;光敏传感器之后,都是高低电平的世界。录入员+光电检测完成了这种转换。

现在的计算机,和打孔机时代的区别,只不过是输入变成键盘了,按键接通和断开代替了光线的有和无,在每个键下面的识别电路以后,就完全是高低电平的时代了010已经不存在了啊。01在哪里?在我们的头脑中,在程序纸上,在键盘表面,在显示器上,就是不在键盘以下的空间中。
KEIL 等编程环境利用 ASCII码  数据类型 INT 字符 浮点对 01二进制数处理,将编译结果存储例如 .hex文件等,存储器位单元带电表示1,不带电表示0   .hex文件是抽象的,对应的物理实质就是存储单元。烧写单片机程序时再把存储位单元对应写到单片机里面。单片机按键按下为0,应将单片机和电脑结合起来理解电脑的软硬件结合01高低电平,按键键盘

ps. 几年前问过我的同学,他们也没有给出准确的解释。清楚地记得有个家伙说,计算机中的信息(101010)也是一种物质,物质自然就可以传输了。。。

想法1:打孔纸袋存储介质,靠人工驱动方式依据0101二进制打孔。后来磁带,软盘,硬盘有各自驱动自动代替人工烧录进介质

想法2:二进制的01在电脑磁盘上存储的高低电平信息,对应的驱动需要复制到的电脑外的存储介质中。显示0是有显卡驱动完成的,显卡驱动读取0存储单元位置的电平,去驱动外部存储介质,是烧录,复制程序的关键信息

上述想法:1和2一直找不到原始的6(二进制0000,0110)如何转化为电路高低电平,到了键盘编码驱动,显卡驱动这才分清了文本的0000 0110是显卡驱动LCD显示的ASC码,键盘6按下,则0000,0110被电路驱动存储单元的8个位分别施加电平:低低低低,低高高低。就写进存储单元。

文本中的数字例如6如何转化为电路的高低电平呢?编译后的二进制文件如何烧写到单片机中呢?

这涉及到显示显卡驱动,键盘输入驱动,存储器原理,寻址方式等。下面简单梳理下。

最原始的转换在键盘输入。例如键盘上的6(二进制0000,0110)在键盘表中有自己的编码,下图有键盘编码解释

 键盘上的6被按下,则,电脑就把6按照二进制数0000,0110,给存储单元的8个位分别施加电平:低低低低,低高高低。就写进存储单元。

而十六进制.hex或者.bin格式文本中的0000,0110则是显卡经过ASC码,驱动LCD显示出来的。

存储单元原理如下

 

读写存储单元可以参考上图。

而文件文本复制,.hex,.bin执行文件的烧写,可以看成是存储单元中数据高低电平的读写操作,读写操作又是以 寻址模式为基础加上指令系统,读写时序进行的存储器之间的转移传送

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值