⑴ 单片机运行为什么需要时钟信号,具体说一下
你的心脏不跳动,能把血液送到全身而让你活下去吗?单片机也一个道理,在单片机中存在很多寄存器和锁存器,而数据的运算处理和传递(穿过锁存器)都需要时钟,所以没有时钟,就不会让数据传递和运算,那单片机还有控制功能吗?就这样。
⑵ 单片机的主要工作原理什么
单片机原理是指一种在线式实时控制计算机的原理方式。在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机(比如家用PC)的主要区别。
单片机就是一个微型电脑,它是靠程序工作的,并且可以修改。通过不同的程序实现不同的功能。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
(2)单片机依靠信号开机吗扩展阅读:
单片机正常工作的三大条件:
1、单片机供电电源正常
供电电源是单片机工作的首要条件,如果电源都不正常,那单片机肯定不能正常工作,所以我们在测试任何产品之前首要的工作就是测量芯片及产品的供电电源。
出现电源不正常的情况,主要查找以下几点:电源供电是否正常、芯片是否存在短路现象、芯片的电源管脚是否虚焊或者漏焊、芯片的电源管脚是否有开路现象。
2、单片机复位管教不能出现复位信号
单片机一直处于复位状态,那么单片机的程序肯定运行不正常,所以在遇到单片机不能正常工作且电源正常的情况下,就需要测量一下单片机的复位管脚是否有复位信号出现,不同的单片机的复位信号是不同的。
3、晶振是否起振
引起晶振起振的原因很多,包括晶振频率选择、电容的选择,如果晶振不起振主要查找以下几点:晶振是否与单片机的典型应用电路上使用的晶振频率不一致。
参考资料来源:网络-单片机
⑶ 单片机是怎么工作的呢
一台能够工作的计算机要有这样几个部份构成:cpu(进行运算、控制)、ram(数据存储)、rom(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。
而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如a/d,d/a等。
拿到一块芯片,想要使用它,首先必须要知道怎样连线1、
电源:这当然是必不可少的了。单片机使用的是5v电源
2、
振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶振,电容,连上就可以了。
单片机内部结构分析
我们来思考一个问题,当我们在编程器中把一条指令写进单片要内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢?这个地方就是单片机内部的只读存储器即rom(read
only
memory)。为什么称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗?rom是一种电可擦除的rom,称为flash
rom,在特殊的条件下由外部设备对rom进行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为rom。
至此,一个单片机就接好,通上电,单片机就开始工作了。
单片机的工作原理很简单,就是听取电脑给它设置的指令并在外部辅助电路和设备的帮助下完成相应的动作,以达到某种目的。这个指令一般来说是汇编或者是c语言。简单的说,单片机是一种可以输入程序的微型计算机,它是一种集成外电路块的外形出现的。
⑷ 单片机如何接收按钮信号,比如我按下开关,线路接通,单片机如何知道...
如图:两种方法,一个地点平触发(开关在下),一个高电平触发(开关在上)。如果连接的是普通的IO口,则采用轮询方式,就是程序要不停地判断端口是否有变化。如果连接的中断脚的话,单片机内部需要对触发类型做设置,开关在下的设置为低电平触发,开关在上的设置为高电平触发,这样不用你在程序里面不停的去轮询端口的电平变化,只需要在中断服务里编写你要执行的功能即可,这样当外界有相应的电平变化的时候,单片机就自动的跳到了你的中断服务程序里执行了,执行完了,就会退出,等待下一个脉冲的到来。这样你的程序就灵活多了。
⑸ 请教单片机的启动过程
看过一篇文章说道:
CPU启动后到有两种方式:
1、CPU重启后,将其PC寄存器设为特定地址,只要用户的起始程序存在这个地址,就可以被正确执行;
——貌似51就是启动后将PC寄存器设为00H。
2、CPU重启后,会将CPU中存储中断矢量表地址的寄存器设为某特定地址,接着引发RESET中断,程序
员只要把中断矢量表存储在这个地址。并指定RESET中断的处理程序为自己写的某个函数,则该函数就可以在
开机后被CPU执行。
——中断矢量表不是固定在FLASH内部的一段内存吗?怎么又多了个存储中断矢量表的寄存器?
——栈、堆等的初始化到底是在RESET中断的执行之前还是之后?
由于,应用到的程序一直是用C写的,很少去关心单片机的启动过程,往往编译器也有现成的傻瓜版启动代码,
至于汇编毕业后就都忘得7788了。所以,单片机启动过程这一块我还是很乱很迷糊的,希望哪位有经验的朋友
能够指导或者做个概述一下,万分感谢!~