历史上的今天
返回首页

历史上的今天

今天是:2025年06月09日(星期一)

正在发生

2020年06月09日 | 电器设备为什么都要使用单片机

2020-06-09 来源:elecfans

今天,首先学习单片机的基本构成和工作原理,以及外围功能电路,然后,挑战一个实际单片机的运行。


单片机是控制电子产品的大脑

现如今,我们生活中的许多电器都使用了单片机。例如:手机、电视机、冰箱、洗衣机、以及按下开关,LED就闪烁的儿童玩具。那么,单片机在这些电器中究竟做了些什么呢?


单片机是这些电器动作的关键,是指挥硬件运行的。例如:接收按钮或按键的输入信号,按照事先编好的程序,指挥马达和LCD的外围功能电路动作。


那么,单片机是如何构成的呢?如图1所示。


单片机是由CPU、内存、外围功能等部分组成的。如果将单片机比作人,那么CPU是负责思考的,内存是负责记忆的,外围功能相当于视觉的感官系统及控制手脚动作的神经系统。

图1:单片机的构成要素


尽管我们说CPU相当于人的大脑,但是它却不能像人的大脑一样,能有意识的、自发的思考。CPU只能依次读取并执行事先存储在内存中的指令组合(程序)。当然CPU执行的指令并不是“走路”、“讲话”等高难度命令,而是一些非常简单的指令,象从内存的某个地方“读取数据”或把某个数据“写入”内存的某个地方,或做加法、乘法和逻辑运算等等。然而这些简单指令的组合,却能实现许多复杂的功能。


会思考的CPU

让我们从CPU的构成来了解它的作用吧,如图2所示。

图2:CPU的作用


◇程序计数器CPU读取指令时需要知道要执行的指令保存在内存的什么位置,这个位置信息称为地址(相当于家庭住址)。程序计数器(PC)就是存储地址的寄存器。通常,PC是按1递增设计的,也就是说,当CPU执行了0000地址中的指令后,PC会自动加1,变成0001地址。每执行一条指令PC都会自动加1,指向下一条指令的地址。可以说,PC决定了程序执行的顺序。


◇指令解码电路指令解码电路是解读从内存中读取的指令的含义。运算电路是根据解码结果操作的。确切地讲,指令解码电路就是我们在“数字电路入门(2)”中学过的解码电路,只不过电路结构稍微复杂些,所以,指令解码电路的工作原理就是从被符号化(被加密)的指令中,还原指令。


◇运算电路运算电路也称为ALU(Arithmetic and Logic Unit),是完成运算的电路。能进行加法、乘法等算术运算、也能进行AND、OR 、BIT-SHIFT等逻辑运算。运算是在指令解码电路的控制下进行的。通常运算电路的构成都比较复杂。


◇CPU内部寄存器CPU内部寄存器是存储临时信息的场所。有存储运算值和运算结果的通用寄存器,也有一些特殊寄存器,比如存储运算标志的标志寄存器等。也就是说,运算电路进行运算时,并不是在内存中直接运算的,而是将内存中的数据复制到通用寄存器,在通用寄存器中进行运算的。


CPU的工作原理

让我们通过一个具体运算3+4,来说明CPU的操作过程吧。

假设保存在内存中的程序和数据如下。

◇步骤1:当程序被执行时,CPU就读取当前PC指向的地址0000中的指令(该操作称为指令读取)。经过解码电路解读后,这条指令的意思是“读取0100地址中的内容,然后,保存到寄存器1”。于是CPU就执行指令,从0100地址中读取数据,存入寄存器1。


寄存器1: 0→3(由0变为3)由于执行了1条指令,因此,PC的值变为0001

◇步骤2:由于PC的值为0001,因此CPU就读取0001地址中的指令,经解码电路解码后,CPU执行该指令。然后PC再加1。

寄存器2:0→4(由0变为4)PC:0001→0000


◇步骤3:由于PC的值为0002,因此CPU从0002地址中读取指令,送给指令解码电路。解码结果是:将寄存器1和寄存器2相加,然后将结果存于寄存器1。


寄存器1:3→7

PC:2→3

于是3+4的结果7被存于寄存器1,加法运算结束。CPU就是这样,依次处理每一条简单的指令。

能记忆的内存

内存是单片机的记忆装置,主要记忆程序和数据,大体上分为ROM和RAM两大类。

◇ROM

ROM(Read Only Memory)是只读内存的简称。保存在ROM中的数据不能删除,也不会因断电而丢失。ROM主要用于保存用户程序和在程序执行中保持不变的常数。

大多数瑞萨(Renesas)的单片机都用闪存作为ROM。这是因为闪存不仅可以象ROM一样,即使关机也不会丢失数据,而且还允许修改数据。◇RAM

RAM(Random Access Memory)是可随机读/写内存的简称。可以随时读写数据,但关机后,保存在RAM中的数据也随之消失。主要用于存储程序中的变量。

在单芯片单片机中(*1),常常用SRAM作为内部RAM。SRAM允许高速访问,但是,内部结构太复杂,很难实现高密度集成,不适合用作大容量内存。

除SRAM外,DRAM也是常见的RAM。DRAM的结构比较容易实现高密度集成,因此,比SRAM的容量大。但是,将高速逻辑电路和DRAM安装于同一个晶片上较为困难,因此,一般在单芯片单片机中很少使用,基本上都是用作外围电路。

(*1)单芯片单片机是指:将CPU,ROM,RAM,振荡电路,定时器和串行I/F等集成于一个LSI的微处理器。单芯片单片机的基础上再配置一些系统的主要外围电路,而形成的大规模集成电路称为系统LSI。

“为何要使用单片机……”

为什么很多电器设备都要使用单片机呢?

让我们用一个点亮LED的电路为例,来说明。如图3所示,不使用单片机的电路是一个由LED,开关和电阻构成的简单电路。

图3:不安装单片机的LED电路

使用单片机的电路如图4所示。

图4:安装单片机的LED电路图


很显然,使用单片机的电路要复杂得多,而且设计电路还要花费精力与财力。好象使用单片机并没有什么优点。但是,现在下结论还为时尚早。


如果我们让这个电路做一些比较复杂的操作,会怎么样呢。例如:如果希望LED在按下开关后,经过一段时间再点亮或熄灭,那么,对于安装有单片机的电路来说,只需更改单片机中的程序就可以了,并不需更改原电路。另一方面,对于没有单片机的电路来说,就必须在元电路中加入定时器IC,或者用标准逻辑IC和FPGA构成逻辑电路,才能实现这个功能。

也就是说,在更改和添加新功能时,带有单片机的电路显然更加容易实现。这正是电器设备使用单片机的原因。单片机可真是个方便的东西哦!

推荐阅读

史海拾趣

G-Mag Usa公司的发展小趣事

在20世纪90年代初,G-Mag Usa公司由一群电子工程师创立,专注于研发高性能的半导体芯片。当时,市场上对于小型化、低功耗的芯片需求日益增长。G-Mag通过不断的技术创新,成功研发出了一种新型低功耗处理器,该处理器在保持高性能的同时,能耗降低了30%。这一技术突破迅速吸引了众多智能手机制造商的注意,G-Mag因此迅速崛起,成为半导体行业的佼佼者。随着智能手机市场的爆发式增长,G-Mag的芯片出货量也随之飙升,公司规模迅速扩大。

台湾兆欣(EMTEK)公司的发展小趣事

随着电子产品的不断小型化和集成化,兆欣面临着越来越大的技术挑战。然而,他们并没有退缩,反而加大了研发投入。经过无数次试验和改进,兆欣成功开发出全自动薄型功率电感,这一产品在市场上引起了广泛关注。同时,他们还针对USB3.0的市场趋势,预计导入相关对应产品,为公司的未来发展奠定了坚实基础。

Carlisle Interconnect Technologies公司的发展小趣事

随着电子行业的快速发展,Carlisle Interconnect Technologies不断进行技术升级和产品创新。公司不断引进先进的生产设备和技术,提升产品的质量和性能。同时,公司还积极拓展产品线,从最初的绝缘电线电缆扩展到连接器、传感器等多个领域。这种多样化的产品策略使得公司能够更好地满足客户的多样化需求,也在市场上取得了更大的成功。

Brand-Rex公司的发展小趣事

Brand-Rex作为欧洲首屈一指的布线品牌,其起步可追溯到公司成立之初。凭借其世界级的数据电缆制造技术和不断创新的产品线,Brand-Rex迅速在欧洲市场崭露头角。在2008至2010年间,Brand-Rex连续三年被公认为英国首屈一指的铜缆产品生产商,其卓越的产品和客户服务使其在竞争激烈的市场中脱颖而出。此外,Brand-Rex还凭借其在外销和总体销售利润方面的出色表现,成为英国销售额逐年提升的关键因素,进一步巩固了其在欧洲市场的领导地位。

德丰(DEFOND)公司的发展小趣事

德丰金属材料有限公司(简称“德丰金属”)是一家专业从事铝合金建筑型材加工的企业。随着市场竞争的加剧和环保要求的提高,公司意识到必须加快转型升级的步伐。为此,德丰金属加大了研发投入和技术改造力度,成功开发出了一系列符合绿色环保标准的新型铝合金型材产品。同时,公司还积极拓展国际市场,与多家国外知名企业建立了长期稳定的合作关系。通过不断的努力和创新,德丰金属成功实现了从传统制造业向绿色环保型制造业的转型升级。

DS-IMP公司的发展小趣事

DS-IMP公司的前身是一家美国公司,在转移到中国大陆后,面临了技术转移和本土化的挑战。公司迅速组建了一支由资深工程师和技术专家组成的团队,他们与美国的原团队紧密合作,成功地将核心技术从美国转移到宁波的工厂。在本土化过程中,公司不仅保留了原技术的精髓,还根据中国大陆的市场需求和资源特点,对部分技术和产品进行了优化和升级。这一过程不仅提升了公司的技术实力,也为公司在中国市场的快速发展奠定了坚实基础。

问答坊 | AI 解惑

AT91SAM7X256烧程序问题

AT91SAM7X256的新片子是不是得先烧UBOOT才行啊.我现在一块板子,换了一个芯片后就不能用JTAG口烧程序了.测试连接成功,但就是不能下载程序.…

查看全部问答>

wince 安装程序制作问题

请教各位大虾,如何制作一个通过pc机向pda安装的程序,最好能通过读卡器安装(程序有400多M),并且可以在pda里创建快捷方式?望指点!…

查看全部问答>

有人做pxa270下的vxWorks bsp 开发吗?

涉及到lcd方面的开发怎么做的?哪里有资料下载? …

查看全部问答>

软件仿真器那里下载?

软件仿真器那里下载?…

查看全部问答>

如何改变系统默认的声音输出设备?

我的ce下有2个声卡,系统启动后每次默认选择设备1作为waveout,如何改成设备2?…

查看全部问答>

再问个TimerA的小问题

在TimerA的中断服务程序中想清空定时器 于是偶这么写: TACTL |= TACLR; 但是观察寄存器,发现TAR并未清空 MC0却置位了,咋回事呢? 头文件里TACLR定义没错,0x0004…

查看全部问答>

IAR中等优化太恐怖了,把我的条件判断给杀了

#pragma vector=UART0RX_VECTOR __interrupt void usart0_rx (void) { int print_data,temp0,temp1,temp2,temp3,temp4,temp5; clear_wdt(); rx_temp = RXBUF0; TXBUF0 = RXBUF0; snd[uart_temp] = rx_temp; ...…

查看全部问答>

做D类的自激怎么消除,希望各位大神能帮帮忙

本帖最后由 paulhyde 于 2014-9-15 03:57 编辑 级联产生的自激怎么消除啊 很纠结  …

查看全部问答>

关于mini2440LCD显示问题

各位大侠,请问下,我现在用mini2440实验板,通过PC机串口发送图片到这块板子上,然后在LCD上显示,大家认为该怎么做啊,有没有源代码之类的,谢谢!!…

查看全部问答>

关于launchpad上p1.3按键

我想用P1.3按键实现中断控制P1.0led的闪烁,也就是按一下P1.3按键P1.0led就闪烁一下,我用的是g2553,下面是我自己的代码,完全不好用, WDTCTL=WDTPW+WDTHOLD;//停止看门狗 P1REN|=BIT3; P1OUT|=BIT3;//设置上拉电阻 P1IES|=BIT3;//P1.3可高可低 P ...…

查看全部问答>