打印

机器语言的1010这一堆数字怎么变成高低电平的

[复制链接]
楼主: qcmc
手机看帖
扫描二维码
随时随地手机跟帖
81
caichunchao| | 2010-10-7 13:55 | 只看该作者 回帖奖励 |倒序浏览
个人觉得楼主是搞不明白数据形式的信息(01)怎么可以和能量形式的信息(高低电平)等同吧!
一是信息组成的问题,机器语言0101是人为了更加好的描述电路中两种状态而创造的数学描述,你可以用ABAB来描述也行,你可以看作是二进制,也可以看作是状态描述,其本质是没有变的。而将状态的排列组合定义成一种信息,这就成了机器语言。就好像汉字里的笔画构成语言,英文中的字母构成语言。
二“机器语言的1010这一堆数字”这一堆数字如果是在你脑海里的话就是你脑细胞储存的状态的体现,敲进键盘时就是转化为键盘电路中的高低电平状态,进入储存器就是前面高手说的开关状态,这时你也可以理解成是机器语言0101的一堆数字。信息在这个其中都没有发生变化,变化的只是表达的形式。

使用特权

评论回复
82
Andylue| | 2010-10-7 20:54 | 只看该作者
LZ问机器语言的1010这一堆数字是怎么变成高低电平的?
1.0和1就是表示高低电平,0和1只是只是一个符号而已,当然你可以选择其他的符号来表示。0和1是规定的表示法了!
2.我们称之为0和1的机器语言,在机器内部就是电压和电流。比如:一般可以将0~2V左右的的相对低一点的电压规定为0,将3~5V的相对高一点的电压规定为1.若越接近0v,这个0越明显;越接近5v,这个1越明显了~
3.存储器里面就是存储就是这些电气性质不等的电压,我们称之为0和1的东西,读取的时候,按照一定的算法读取,是接近高电压的是1,接近低电压的是0.
  以上就是我个人的理解,不知道对不对,欢迎大家批评指正!

使用特权

评论回复
83
xiuluo_hw7| | 2012-4-13 11:30 | 只看该作者
看了你的帖子,我也是带着这个问题才找到这里论坛的,也认真看完了所有的回复,很多人都说,这是规定,您当您会大预言术,您说,光,就有了光?中国式的教育真可笑。也只有computer这位朋友解答到路上来了,但是也只是解释了一半问题,1010是一堆虚拟信号,如何把虚拟信号转化成实质的高低电平,所谓高低电平,你可以把它换种说法,导通和不导通,也可以说成打开闭合。很多人说到烧录,烧录只能改变一种状态,但是一条电路,我们通过编程,是可以在烧录后给多种状态的,P0^0=0;P0^0=1;一个LED灯会亮灭,说明电路状态是在发生改变的这个问题的源头在ispGDS上,也就是可编程通用数字开关,但是我是新手没搞明白这个数字开关的原理。也是卡在这里了。

使用特权

评论回复
84
xiuluo_hw7| | 2012-4-13 11:30 | 只看该作者
看了你的帖子,我也是带着这个问题才找到这里论坛的,也认真看完了所有的回复,很多人都说,这是规定,您当您会大预言术,您说,光,就有了光?中国式的教育真可笑。也只有computer这位朋友解答到路上来了,但是也只是解释了一半问题,1010是一堆虚拟信号,如何把虚拟信号转化成实质的高低电平,所谓高低电平,你可以把它换种说法,导通和不导通,也可以说成打开闭合。很多人说到烧录,烧录只能改变一种状态,但是一条电路,我们通过编程,是可以在烧录后给多种状态的,P0^0=0;P0^0=1;一个LED灯会亮灭,说明电路状态是在发生改变的这个问题的源头在ispGDS上,也就是可编程通用数字开关,但是我是新手没搞明白这个数字开关的原理。也是卡在这里了。

使用特权

评论回复
85
ailipingkl| | 2012-6-13 15:06 | 只看该作者
高低电平是人为规定的,只要电压进行比较就行,至于二进制和电压换算自然是模数转换

使用特权

评论回复
86
52099zx| | 2012-6-13 16:01 | 只看该作者
同20L

使用特权

评论回复
87
阮天宇00| | 2012-6-13 16:34 | 只看该作者
你去看看一下数字电路里面D锁存器那一部分的东西吧!!你就想象存储器中的每一位都是一个D锁存器。
new1988 发表于 2010-8-5 14:09


我也是这样理解的。
我把存储器就当做D锁存器或者触发器!
这样就明白了。

使用特权

评论回复
88
jinyitong| | 2012-6-13 17:35 | 只看该作者
单片机内部有N多个D触发器和N多个D锁存器,还有很多其它的数字门,程序的语言编译成1010等机器码后,按顺序一个一个的写“写”入“D触发器或D锁存器”里,当需要执行时,D触发器(D锁存器)一起在晶振“时钟”的作用下,向各引脚或其它“存储等”区域做输出动作。这就是  程序语言--机器码--执行 的执行过程。

使用特权

评论回复
89
tlxy11711| | 2012-12-16 13:02 | 只看该作者
楼主,你已经很牛了!你知道吗,至少你已经只需要从机器语言开始问起了。我还想知道高级语言(如c,c++),是怎么变成高低电平,进而引发动作的呢!关于你说的问题,有位楼层的朋友说的好,那只有去深造学一下集成电路设计了!看了这么多朋友的观点,我知道!我与楼主在这一问题上是在同一层次的。见谅了!
言至此,我也想粗谈我对你的问题的理解,为配合你,我从机器语言开始谈起!首先你必须明白根本就没有0,1这个量,这只是两种状态,你懂吗?在一般的电子,电气产品(这里提一点是电气控制部分即弱电部分)所有的能量均来自220V市电,经电源电路可以形成多路直流电压。大家都知道的5v,12v,24v,还有从多少到多少,这些电压值是根据半导体材料的耐性理论计算而来,是行业标准,就无需纠结,否则你要去学集成电路材料学了!哈哈。。那么大家都知道单片机是+5v供电的对不对。好宏观工作条件建立了对不对?下面就要说这个0,1了。
0,1在存储器中是有电量和没有电量,他是一个微观的概念。他就会和模电中说的放大电路那样进行一系列放大形成一个范围去推动后面的门电路。通通断断的,进行电路切换。单片内部包括模拟电路,数字电路。0,1的实现还是需要通过模拟的量进行变化和推动。只是你直接就奔推动的值去了。你不了解的是这个推动的0,1这个概念背后对应的电压值怎么来的。对不对?当让是根据集成电路的材料设计出来的了。很复杂。那就需要探究所有元器件的特性,再去计算了。

使用特权

评论回复
90
lihaolongli| | 2012-12-16 13:50 | 只看该作者
建议你看下存储器的原理,数电书上:)

使用特权

评论回复
91
yunnan0721| | 2013-4-30 08:35 | 只看该作者
一个有意思的老帖子了。我无法准确回答lz的问题,但我可以解释楼主的问题,免得无知者乱说。
我理解lz的问题是,在现在的cpu中,再执行类似setb acc.1(换成机器码比如是01010110101001),如何就使得acc的最低位状态成为高电平了(如果你是8086的汇编学习者,这个指令可以用mov al,1代替)。cpu会认识数学的二进制数01010110101001b吗?


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

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


现在的计算机,和打孔机时代的区别,只不过是输入变成键盘了,按键接通和断开代替了光线的有和无,在每个键下面的识别电路以后,就完全是高低电平的时代了,010已经不存在了啊。01在哪里?在我们的头脑中,在程序纸上,在键盘表面,在显示器上,就是不在键盘以下的空间中。

至于setb acc.1,也就是01010110101001在硬件上对应的低高低高低高高低高低高低低高。这一串高低低高如何使得累加器最低位输出高电平,只不过是cpu中许多级的数字逻辑电路实现的,这个不是lz问题的主要所在。

至于楼主后来提到的能量来源,虚拟的数学的01010序列,转换为物理的电平,除了需要电源以外,提供转换过程的直接能量来源其实就是我的指头敲击的机械能啊,呵呵。此话为回应前面帖子中关于能量的随口而言。

这个答案也送个我的女儿,因为昨晚她问到这个问题了。





使用特权

评论回复
92
tianshanzh| | 2013-11-12 18:29 | 只看该作者
楼上的答案是最恰当的!

使用特权

评论回复
93
宝马单车| | 2013-11-12 18:56 | 只看该作者
很好。支持一下!!!!

使用特权

评论回复
94
宝马单车| | 2013-11-12 18:58 | 只看该作者
很好。支持一下!!!!

使用特权

评论回复
95
宝马单车| | 2013-11-12 19:01 | 只看该作者
很好。支持一下!!!!

使用特权

评论回复
96
QQ1239948776| | 2013-11-14 22:30 | 只看该作者

电平只出现在端口上,数据在存储器中。不是一个概念,单片机的任务是照你说的去做,就是设置端口的高低电平。

使用特权

评论回复
97
qcmc|  楼主 | 2013-12-16 18:00 | 只看该作者
几年没有上21IC论坛了,今天才看到大家的讨论,我想的应该和92楼说的差不多。

我们用开发环境敲代码的时候,已经通过键盘把信息存在了电脑的存储器中,在通过编译器、汇编器变成了机器码10101010,之后把这些信息下载到烧录器中,烧录器把机器码烧到MCU中的存储器中,所以机器码101010能量的来源就是我们敲击电脑的手指头,呵呵。。


使用特权

评论回复
98
江枫渔火| | 2013-12-16 19:04 | 只看该作者
数字电路从头看起,从门电路,触发器,时序电路入手。

使用特权

评论回复
99
电子爱好者也| | 2013-12-20 15:36 | 只看该作者
CPU内部里有个步骤叫‘译码’,它就是把这些‘101010’的机器吗译成相对应的CPU动作

使用特权

评论回复
100
贝贝妮妮heart| | 2013-12-21 01:32 | 只看该作者
0xb

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则