单片机的原理,单片机为什么能直接烧录程序?
我刚开始学习单片机的时候也有和题主类似的困惑。当时是在大二,刚申请了个淘宝账号不久,刚看了下我的淘宝已购物品,第五件东西买的就是51单片机开发板,前几件都是充话费,当时卖开发板的店铺也已经不在了。
当时寒假带着开发板经历22个小时的硬座,回到家点完LED灯后,先是嘴角微微一笑,然后各种困惑接踵而来,题主的问题就是其中之一。
单片机是怎么烧录程序的?单片机都没有启动,怎么就能和下载器通信了?
要回答这个问题先看一个数字电路,D触发器,如下图:
D触发器功能就是只在Clk信号的上升沿这个时间点把数据Data传递到Q,在其它任何时刻保持Q不变。这不就是一个很简易的,只有一位的存储器吗。从上图中D触发器的电路原理图里可以看到,D触发器就是由一堆与、非门组成的电路,控制存储器并不需要单片机CPU的参与,只需要一个Clk就可以了。
上图中的D触发器毕竟太简单,而且数据掉电就会丢失,难免有一些忽悠人的感觉,那我们再看下复杂一点的flash存储器是如何被读写的,这也是单片机里面常用的存储介质。
如上图是flash里面的一个存储单元,乍一看好像是MOS管,但仔细一看却是多了一个Float Gate。这个float gate其实是用氧化硅隔离了的。大概的工作方式是通过float gate里面的电荷影响开启电压,当float gate里面有电子时,开启电压会变高,可以理解是因为gate上的电场线在float gate上的电子上终结了,这时候MOS管是不导通的,被认为存储的是1。反之,当float gate上没有电子时,MOS管的开启电压就比较低,被认为存储的是0。所以控制存储器里存储的内容其实是一个物理问题,即如何控制float gate冲放电。感兴趣的可以参考我给的参考链接[2]继续深究,我在这就不深究了,再深究就要露馅了,哈哈。上面说的是一个flash单元,也就是只能存储1bit,那512Kbit的flash,要怎么读写。下图是一个512kbit flash芯片的结构图,可以简单的不假思索的认为这块芯片是由一堆上面的单元再加上一些数字电路,比如串口控制器所构成的,对这个flash的读写同样也不需要单片机CPU的参与,只需要遵循serial interface的时序就可以了。所以在烧写单片机的flash的时候是不需要CPU的参与的,只需要遵循flash的接口时序就可以了。
扩展资料:单片机烧录原理有三种方式:1、把单片机当做一个ROM芯片,早期的单片机都是如此。将单片机放在通用编程上编程时,就像给28C256这样的ROM中写程序的过程一样。
2、像AT89S52或AVR单片机一样,在单片机上有SPI接口,这时用专用的下载线将程序烧写到单片机中。这时不同的是,单片机的CPU除了执行单片机本身的指令之外,还能执行对ROM进行操作的特殊指令,如ROM擦除、烧写和校验指令。在编程ROM时,下载线先通过传输这些指令给CPU执行(擦除ROM、读入数据、烧写ROM、和校验ROM),这样完成对单片机的ROM的烧写。
3、引导程序,即单片机中已经存在了一个烧写程序。启动单片机时首先运行这程序,程序判断端口状态,如果符合“要烧写ROM”的状态存在,就从某个端口(串口、SPI等等)读取数据,然后写入到单片机的ROM中。如果没有“要烧写ROM”的状态,就转到用户的程序开始执行。
理解这个原理需要知道几个知识点:
单片机是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
单击片烧录原理总结:
ICP:使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。
ISP:使用引导程序(Bootload)加上外围UART/USB等接口进行烧录。
IAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。
可以这样比喻性的理解:单片机就是电脑的主板,我们写的程序就是操作系统,主板里面装入引导操作系统的基本程序,下载程序就是给电脑装系统。
单片机逆变器的工作原理是什么?
逆变器的原理它首先是将交流电变为直流电.然后用电子元件对直流电进行开关.变为交流电.一般功率较大的变频器用可控硅.并设一个可调频率的装置.使频率在一定范围内可调.用来控制电机的转数.使转数在一定的范围内可调.变频器广泛用于交流电机的调速中.变频调速技术是现代电力传动技术重要发展的方向,随着电力电子技术的发展,交流变频技术从理论到实际逐渐走向成熟。
变频器不仅调速平滑,范围大,效率高,启动电流小,运行平稳,而且节能效果明显。因此,交流变频调速已逐渐取代了过去的传统滑差调速、变极调速、直流调速等调速系统。
步进电机的单片机控制是什么原理?
单片机按步进电机工作原理来控制的,编程总是比较灵活,步进电机是按“节拍”工作的,比如两相电机,一般是四线制,A,/A,B,/B,可以依次送电,让其工作,也可以两两送电,或单、双轮流送电实现“细分”方式工作。
单片机原理及接口技术好学吗?
如果有比较好的C语言编程、模拟电路和数字电路基础,还是很容易学的。学单片机主要靠实践,只要入了门,接下来就多学习,多练习就行了。有条件最好能自己买一块儿开发板,先看别人写的例程,掌握了方法后,再自己从小程序编起。
单片机控制的LED动态扫描显示原理?
现已DS8为个位来讨论,十、百、千为分别为DS7、DS6、DS5。 1、首先要了解的是此数码管为共阴极数码管,即三极管Q16、Q15、Q14、Q13导通时数码管才能点亮,亦即相应的单片机P23、P22、P21、P20为低电平。 2、动态扫描显示原理如下: (1)P23、P22、P21、P20输出高电平,关闭所有数码管; (2)显示个位——把要显示的数据送到P10~P17,P23送低电平,延时5豪秒(时间不能太长,否则数码管会闪烁),P23送高电平; (3)显示十位——把要显示的数据送到P10~P17,P22送低电平,延时5豪秒(时间不能太长,否则数码管会闪烁),P22送高电平; (4)显示百位——把要显示的数据送到P10~P17,P21送低电平,延时5豪秒(时间不能太长,否则数码管会闪烁),P21送高电平; (5)显示千位——把要显示的数据送到P10~P17,P20送低电平,延时5豪秒(时间不能太长,否则数码管会闪烁),P20送高电平。 (6)以此顺序循环,把它做成子程序,在主循环中调用。
还没有评论,来说两句吧...