首 页 行业热点 新车 试驾评测 养车用车 车型库

单片机的工作原理,自己的理解。

发布网友

我来回答

1个回答

热心网友

基本上是这么回事,但是程序的执行其实不是顺序的,而是由PC来决定的,它决定下一条指令的地址,比如遇到CALL和GOTO这样的语句,PC的值往往不是简单的加一这么简单!追问下一条指令的地址是不是由上一条指令给出的?或者运算器运算出的结果。还有就是I/O口是怎么被控制的?不是由译码器把一条指令翻译解码出二进制的数码串直接输出到I/O口控制外围执行电路了吗?有人告诉我,只要学怎么控制I/O口寄存器就行了。这是什么意思?我理解的是I/O口寄存器得到译码器电路发来的控制信号,它就可以工作了。是吗?

追答其实下一条指令的地址取决于PC这个特殊的寄存器,他不全是上一条指令给出的,而是自动加一的,单片机每执行一条指令PC就会自动加1,但是有个别语句会影响到PC的值而已,如CALL和GOTO等,比如现在执行到GOTO LABLE123时PC的值是0086H,但是LABLE123的地址是0097H,那么执行完GOTO LABLE123以后PC不是简单的加1变成0087H,而是变成了0097H,这样GOTO LABLE123与标号LABLE123之间的语句就不会被执行了,被跳过去了。第二、单片机的IO口的控制,这个比较麻烦,不是译码器把指令翻译成二进制数来控制IO口,而是你烧录到IC里面的本来就是二进制机器码,这个IO口的结构通常是一个触发器,然后是门电路,输出端是MOS管这样的结构,里面一般有上拉电阻或是下拉电阻,通过二进制机器码控制触发器输出不同的电平,然后经过门电路处理再到MOS管的控制极,从而决定IO口是I还是O,是高还是低,只要学会控制IO寄存器就行了,是没错的,比如只要知道P1=0x01;完了以后P1.0就会输出高电平就可以了,至于内部是怎么输出的高电平真心没必要去管他!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com