单片机的工作原理与计算机CPU的工作原理是一样的,主要是利用片内的半导体存储器存放用户的程序和数据,单片机的核心中央微处理器CPU中有指令寄存器、指令译码器,程序计数器等部件,由程序计数器寻找下一条要执行的指令,找到后,将指令送给指令寄存器,再由指令译码器翻译执行该指令,完成对指令功能的操作;单片机的工作就是不断地取指令、分析指令、执行指令的循环过程。按预先编写的程序执行,以达到用户期待的结果。
单片机烧录原理有三种方式:
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:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。
可以这样比喻性的理解:单片机就是电脑的主板,我们写的程序就是操作系统,主板里面装入引导操作系统的基本程序,下载程序就是给电脑装系统。
参考资料来源:百度百科-单片机
单片机(Micro-controller)是一种集成了多种电子元器件(如 CPU、存储器、接口、模拟电路、晶振等)在一块半导体基板上的微型计算机。它可以通过程序控制外部设备,实现自动控制和数据处理的功能。单片机的工作原理是:通过存储在存储器中的指令,控制 CPU 运行不同的程序,从而实现对外部设备的控制和数据处理。
首先,DS18B20输出的一位(1 bit)信号是不能被单片机变为多位的,一位就是一位,单片机需要连续多次读取DS18B20输出的一位信号,来合成它需要的信息。比如DS18B20的温度输出是16位数据,那么单片机就要读16次1 bit数据。
读取温度伪代码(temperature为保存温度数值的整型变量):
for ( i=1; i=16; i++)
{
onebit=读取1位数据的函数();
temperature=temperature|onebit;
if(i!=16)
temperature=temperature1;
}
然后,单片机是如何读取DS18B20输出的某1bit信息的呢?在具体回答前先明确一点,这一过程必须在单片机拉低数据线,发起读数据过程之后的15微秒(us)内完成,否则读不到正确数据(注意:发起通信时总是由单片机将数据总线先拉低,没有通信时数据总线保持高电平状态)。下面说说具体过程:
1、单片机将数据总线拉低;
2、延时2us;(这一时间必须大于1us,否则DS18B20无法识别拉低信号;也不能过大,超过15us无法正确读数。)
3、将单片机与DS18B20相连的IO口输入输出方向设为输入;(这一步也有可能是单片机直接将数据线拉高,因芯片的不同而不同)
4、延时2us;(给DS18B20一定的时间输出信号)
5、读取数据总线上的电平值;
6、拉高数据总线,延时一段时间后进入下1bit的读取。
注意:这里能否正确读取的关键是延时的量是否足够精确,因此在用C语言写DS18B20程序之前,需要先根据单片机型号和晶振频率找出一个自己对延时的精度有足够把握的延时函数,随便在网上DOWN别人的程序很有可能因为延时不对跑不起来。
这就是标准的中断方式获取数据啊。当对方向单片机串口2发送数据时,单片机接受到数据就会进入串口2中断(向量号为8)。
不过这里在中断添加了一点应用层的内容,也就是约定必须首字节为FDh并且长度为6才是有效的数据帧,其它情况下收到的数据会丢弃。
单片机读取原理的介绍到此就结束了,感谢您耐心阅读,谢谢。
本文标签:单片机读取原理