历史上的今天
返回首页

历史上的今天

今天是:2025年01月05日(星期日)

正在发生

2018年01月05日 | 51单片机在设计中的的时钟及复位

2018-01-05 来源:eefocus

单片机的时钟信号用来提供单片机片内各种微操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。

时钟电路:
8031单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。
在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如下图所示。
图中,电容器Col,C02起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MH2,采用6MHz的情况也比较多。内部振荡方式所得的时钟情号比较稳定,实用电路中使用较多。
外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。外部振荡方式的外部电路如下图所示。

由上图可见,外部振荡信号由XTAL2引入,XTAL1接地。为了提高输入电路的驱劝能力,通常使外部信号经过一个带有上拉电阻的TTL反相门后接入XTAL2。

基本时序单位:

单片机以晶体振荡器的振荡周期(或外部引入的时钟周期)为最小的时序单位,片内的各种微操作都以此周期为时序基准。
振荡频率二分频后形成状态周期或称s周期,所以,1个状态周期包含有2个振荡周期。振荡频率foscl2分频后形成机器周期MC。所以,1个机器周期包含有6个状态周期或12个振荡周期。1个到4个机器周期确定一条指令的执行时间,这个时间就是指令周期。8031单片机指令系统中,各条指令的执行时间都在1个到4个机器周期之间。
4种时序单位中,振荡周期和机器周期是单片机内计算其它时间值(例如,波特率、定时器的定时时间等)的基本时序单位。下面是单片机外接晶振频率12MHZ时的各种时序单位的大小:
振荡周期=1/fosc=1/12MHZ=0.0833us

复位电路:

当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。
上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如下图A中左图所示。图中电容C1和电阻R1对电源十5V来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如下图(A)中右图所示。

 

上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的上电或开关复位电路如上图(B)所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。
上图(A)中:Cl=10-30uF,R1=1kO
上图1.27(B)中:C:=1uF,Rl=lkO,R2=10kO

单片机复位后的状态:

单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见下表。
值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的韧始化部分是十分必要的。
说明:表中符号*为随机状态;
A=00H,表明累加器已被清零;

特殊功能寄存器初始状态特殊功能寄存器初始状态A00HTMOD00HB00HTCON00HPSW00HTH000HSP07HTL000HDPL00HTH100HDPH00HTL100HP0~P3FFHSBUF不定IP***00000BSCON00HIE0**00000BPCON0*******B

PSW=00H,表明选寄存器0组为工作寄存器组;
SP=07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;
Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出;
IP=×××00000B,表明各个中断源处于低优先级;
IE=0××00000B,表明各个中断均被关断;

系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。

51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,(在特殊寄存器介绍时再做详细说明)至于内部RAM内部的数据则不变。


推荐阅读

史海拾趣

BOSER公司的发展小趣事

BOSER公司始终关注企业社会责任和可持续发展。公司在生产过程中积极采用环保材料和技术,降低能耗和排放。同时,BOSER还积极参与公益事业,为社会做出贡献。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

需要强调的是,以上五个故事是基于电子行业常见趋势和挑战虚构的BOSER公司的发展故事。虽然这些故事是虚构的,但它们反映了电子公司在发展过程中可能遇到的机遇和挑战,以及如何通过不断创新和适应市场变化来实现持续发展。如果您希望了解真实存在的电子公司的发展故事,建议查阅相关公司的官方资料或新闻报道。

Ericsson公司的发展小趣事

随着通信技术的不断发展和市场竞争的加剧,Ericsson也面临着前所未有的挑战。为了应对这些挑战,Ericsson积极进行转型升级。一方面,公司加大了对研发的投入力度,不断推出具有创新性和竞争力的产品和服务;另一方面,Ericsson也通过收购、兼并等方式拓展业务领域和市场份额。此外,公司还注重与合作伙伴建立紧密的合作关系共同推动行业发展。

DURACELL公司的发展小趣事

1920年,一位年轻而聪明的科学家山谬·鲁本(Samuel Ruben)和另一位年轻而富有的钨丝电线制造商菲立普·马洛里(Philip Rogers Mallory)在一次偶然的机会中相遇。鲁本到马洛里公司寻找实验设备,两人在交谈中共同意识到将发明天赋和制造力量结合起来的巨大机会。这个巧合开启了他们的合作之旅,最终导致了金霸电池的诞生。鲁本的发明为当时的电池科技带来了革命性的改变,奠定了DURACELL公司坚实的基础。

Diplohmatic A/S公司的发展小趣事

随着技术创新的成功,Diplohmatic A/S公司开始寻求国际市场的拓展。公司派遣了一支由经验丰富的销售和技术人员组成的团队,前往欧洲和亚洲的主要市场进行考察和洽谈。通过深入了解当地市场需求和竞争态势,公司制定了一系列有针对性的市场策略,并与多家国际知名企业建立了合作关系。这些合作不仅为公司带来了更多的订单,也提升了其品牌在国际市场的知名度。

EVERLIGHT公司的发展小趣事

EVERLIGHT公司的故事始于1983年,当时台湾的电子产业正迎来蓬勃发展的时期。创始人凭借对LED(发光二极管)技术的深刻洞察,决定创立EVERLIGHT,专注于LED的研发和生产。公司从一开始就注重技术创新,投入大量资源研发新型LED产品,不断提高产品的亮度和稳定性。随着技术的不断突破,EVERLIGHT逐渐在LED市场上崭露头角。

蓝箭(BLUE ROCKET)公司的发展小趣事

随着市场的不断扩大和需求的增加,蓝箭电子逐渐形成了年产150亿只的生产规模,成为华南地区主要的半导体器件生产基地之一。公司凭借优质的产品和服务,赢得了广大客户的认可,市场份额逐年提升。

问答坊 | AI 解惑

富士通首批4x I/O连接器模块可简化PCB高速信号布线

富士通元件美国公司(Fujitsu Components America Inc.)推出了第一批4x I/O连接器模块,支持高速信号传输。该模块增加I/O端口密度以及印刷电路板(PCB)上的可用空间,简化主印刷电路板(PCB)上的高速信号布线。 I/O连接器模块FCN-268Y032-A支持 ...…

查看全部问答>

stm32开发资料大整合(资料不断更新中)

STM32入门笔记(一)https://home.eeworld.com.cn/my/space.php?uid=42646&do=blog&id=12749 基于STM32的SD卡驱动及液晶驱动例程 https://home.eeworld.com.cn/my/space.php?uid=42646&do=blog&id=12748 基于STM32的USB程序开发笔记 https://home ...…

查看全部问答>

mdk破解文件谁有啊

只注册码不行,不能和proteus联调…

查看全部问答>

咨询一下,我想在xp sp2开发一个usb 驱动

咨询一下,我想在xp sp2开发一个usb 驱动,安装了,vc++6.0 和2003 ddk  ,DriverStudio_3.2_CR 这样配合合理吗?因为没经验,是DriverStudio_3.2_CR好还是DriverStudio_2.6好,还有xp sp2系统下用2003ddk可以吗…

查看全部问答>

S3C2410无法接受GPRS AT返回命令

    用S3C2410向MC35I 模块发送AT命令,想接受到OK并在超级终端上显示OK,但是无法接受到。S3C2410的COM0与PC机串口1相连,S3C2410的COM1与MC35I 相连。操作系统是UCOS-II,部分程序如下: #include \"includes.h\" #include \"frmwrk. ...…

查看全部问答>

如何加入一个函数到系统标准库函数库中

我写了一程序在板子(嵌入式linux)上运行, 但是提示找不到vsprintf函数. 可能是板子不支持. 我想自己找一个vsprintf函数加入到系统标准函数库中. 请各位不吝赐教. 不胜感谢!…

查看全部问答>

STB硬件职位多多

著名法国公司[B]北京[/B]研发中心招聘硬件职位 1.Hardware Engineer (STB) 2.Senior Hardware Engineer (STB) 3.Senior RF engineer / STB-Hardware 4.Senior hardware engineer “Techno bricks”(STB) 需3年以上嵌入式硬件开发经验 有意者 ...…

查看全部问答>

请教关于wince的虚拟地址映射的问题

我用的是2410的平台,在bank2上外接了一块ad转换的模块,现在我想知道bank2的地址在启动mmu之后对应的虚拟地址是多少,在哪个文件里有定义 …

查看全部问答>

IAR堆栈溢出的问题

就两个调了3行的for函数都堆栈溢出。。。。具体的说是从开始走第一步就有警报了,我又没改配置怎么说堆栈指针跑了呢? 这怎么办下面是报告。。香水帮看看 麻烦了,我的linkarm_flash,xcl没改啊Wed Jul 02 22:14:01&n ...…

查看全部问答>

关于同一台电脑用KEIL调试C51单片机和STM32的问题

                                 请问在同一台电脑上是否装一个KEIL就能同时调试C51和STM32呢?要装MDK和KEIL C51会不会冲突?…

查看全部问答>