历史上的今天
返回首页

历史上的今天

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

2020年02月01日 | 高手讲解PIC单片机:单片机的入门就是这么简单

2020-02-01 来源:elecfans

单片机入门不难,这是几年前的一篇老文章,讲得通俗易懂,分享给初学者。

这个8条腿的小螃蟹就是我们的第一顿饭,只要把它吃下去,以后的大餐就好办了。

第1、8条腿接电源 +5V 和 地线。头两条腿是螃蟹钳子,好吃的很。 现在剩下了 6 条腿

第2、3条腿 使用时外接一个晶振的东西 我们接一个 4 MHz的。


第4条腿是复位脚,是一个信号输入脚。单片机正常运行时接高电平。当有一个低电平脉冲输入到这个脚时单片机就复位。所谓复位就是单片机内部所有的工作部件统统回到规定的状态,程序也复位到头一句上开始逐条运行。例如,你设计的一个报警锁定的 LED红灯亮后,当需要解除报警时,用一个按钮给这个脚瞬时接地一下,相当于给它一个夫脉冲,系统就复位了,led灯就熄灭了,程序从头开始。


以上5个脚,几乎所有单片机都有,包括世界上最复杂的,和世界比较简单的单片机-----PIC12CE519


上边我们已经把8条腿消化掉了,其实我们要弄明白的也就3只腿,我们再简单一些,先整明白两条腿,即GP0,GP1.这两条腿低级一点的用法,可以控制继电器,LED灯,高级一些的用法可以进行I2C总线,RS232总线的通信,作为扩展输入可以模拟出来A/D转换器(6--7bit),可以测量一个电阻的粗略值。作为输出也可以直接推动扬声器奏出音乐。这是后话暂且不提。


现在要控制使用这两只腿,我这个三脚猫功夫的说书的不得不讲一下软件了,要想讲明白软件又不得不涉及到单片机的内部结构。那位说啦,你可别提这软件和结构了,以前俺就是让它们打败的,现在听到这个心里就打鼓。嘿嘿,不要紧,果真如你所说,那你就不妨跟着我再失败一次, 反正吗多一次失败又不纳税,嘿嘿。不过你也要有思想准备,彻底弄明白是个渐进的过程。


要说这程序和单片机内部结构,还真是老大难,不过蟹黄蟹肉可都在里面。我现在要是给你说PIC单片机是哈佛结构的,51系列是冯-诺伊曼结构的,恐怕你要立马走人了。所以我得用点心思不让你溜号。

好在PIC系列的制造商(microchip 微芯公司 美国)理解我等苦衷,全部只有35条指令,而且有一些指令我们一般很少使用,常用的也就十几句,用的时候查手册,无需记忆。就算我们两天学习一句,也就两三个月时间,总比到老了还怕它们强啊。废话少说先看下面的两个例语:

my_name006: movlw 02h '常数2进入w

movwf GPIO 'W 的数进入 寄存器GPIO

这就是我们编的程序里的两个句子,也叫源程序。有以下特点

每行只能写一句话

每句话由四部分组成:

标号: 操作指令 操作数 '程序注释


下面我结合例子把这四部分解释一下。

第一部分 my_name006: 叫做标号,它是由字母或数字组成,由冒号结束。标号可有可无,比如第二句就没有标号。

第二部分movlw 叫做操作指令。它是必须有的,不能省略。PIC 系列的单片机共有 35 条指令。

第三部分02h 叫做操作数。有的指令没有操作数或者操作数是默认的,也不用写。

第四部分是程序注释,必须以单引号开头,主要作用是提醒和备忘。注释也是可有可无。


第二个例句中,省略了标号,当然注释也可以省略。他的指令是movwf, 操作数是GPIO。操作数不一定是数字,也可能是一个由字母组成的字符串。


知道了语句格式以后,我们下面就学习一些常用语句。我们先把这两个例句弄清楚。

这两句话的作用是把 2 这个常数写入到 GPIO 这个寄存器里。


单片机里有一些部件需要我们使用和操作,都是通过读写寄存器来实现的。每个部件都对应有操控它的寄存器,例如我们要控制使用的管脚GP0,GP1 这两个管脚对应的寄存器就叫做GPIO。对GPIO寄存器读操作,实际等效察看管脚电平的高低;对GPIO寄存器相应的位写1操作,实际等校让管脚输出高电平。写0,输出低电平。


每个寄存器可以储存一个八位的二进制数。这八个位的每个位都有名称,从左向右的名称是:

左端第首位名称叫D7,

左端第二位名称叫D6,

左端第三位名称叫D5,

左端第四位名称叫D4,

左端第五位名称叫D3,

左端第六位名称叫D2,

左端第七位名称叫D1,

最后一位叫D0,

而每一个位对应一个管脚的电平,例如当GPIO寄存器的D0位等于1时表示管脚GP0 的电平是高电平。D0位等于0时表示管脚GP0 的电平是低电平。常数2的八位二进制表示是“00000010” 所以,GPIO寄存器存放的8位2进制数的每个位的值以及管脚电平是:

D7对 应于内部总线管脚的电平 D7=0 内部总线管脚输出低电平

D6对应于内部总线管脚的电平 D6=0 内部总线管脚输出低电平

D5对应于GP5 管脚的电平 D5=0 GP5 管脚输出低电平

D4对应于GP4 管脚的电平 D4=0 GP4 管脚输出低电平

D3对应于GP3 管脚的电平 D3=0 GP3 管脚输出低电平

D2对应于GP2 管脚的电平 D2=0 GP2 管脚输出低电平

D1对应于GP1 管脚的电平 D1=1 GP1 管脚输出低电平

D0对应于GP0 管脚的电平 D0=0 GP0 管脚输出低电平


GP0---GP5管脚我们可以从上一讲的图1硬件中查出所对应的管脚。d7 d6 对应的内部时钟和数据总线我们现在暂且不要管它。以后本事大了在调教它们。在我们的例句中,向GPIO寄存器写入了2,常数2的八位二进制表示是“00000010” 因此如果此时GP0, Gp1等都已经被定义成输出的话,那么GP1输出高电平(接LED灯亮),GP0 输出低电平(所接led灯熄) 。


截止到现在,你已经学会如何控制管脚的电平高低了。尽管还有一些疑问,比如怎样定义管脚为输出脚(以后会说),我得说如果事先gp1,gp0这两个管脚处于输入状态,这两个例句无效,是控制不了电平的。


无论如何,这一会儿,你就学会了两个指令,35条我看也没啥难的。单片机的入门就是这么简单。          

推荐阅读

史海拾趣

Aerotronics Marketing Inc公司的发展小趣事

Aerotronics Marketing Inc公司在市场定位上独具慧眼,准确抓住了电子行业中无人机市场的增长趋势。公司制定了一系列精准的营销策略,包括线上线下推广、行业展会展示、合作伙伴计划等,有效提升了品牌知名度和市场占有率。同时,公司还注重客户关系管理,通过提供优质的售后服务和技术支持,赢得了客户的信任和忠诚。

Blaze Display Technology Co Ltd公司的发展小趣事

随着技术的不断进步,Blaze公司意识到要想在激烈的市场竞争中立于不败之地,必须不断进行技术创新和品质升级。因此,公司加大了研发投入,引进了一批高端技术人才和先进设备,成功研发出了多项具有自主知识产权的核心技术。同时,公司还严格把控产品质量,确保每一块显示屏都达到行业领先水平。

优先(苏州)半导体公司的发展小趣事

苏州博众半导体是博众精工(股票代码:688097)直属的半导体子公司,创立于2022年。公司依托集团二十余年技术沉淀,立足于半导体领域,为客户提供领先的、稳定的先进工艺及检测设备。在封装测试阶段,博众半导体在贴片(共晶、固晶)、AOI检测等工艺流程的制造装备上进行布局,助力客户在芯片贴装、检测等工艺环节的制造过程中实现稳定生产。通过微米级、亚微米级、纳米级技术研发和产品创新,博众半导体致力于推动半导体先进制程发展和产业升级,不断为行业提供尖端产品。

EOZ S.A.S公司的发展小趣事

EOZ S.A.S公司非常重视企业文化和团队建设。公司倡导“创新、协作、共赢”的价值观,鼓励员工积极参与创新活动并分享创新成果。同时,公司还注重员工的培训和发展,为员工提供丰富的培训资源和晋升机会。这些举措不仅激发了员工的积极性和创造力,也为企业的发展提供了有力的人才保障。在EOZ S.A.S公司的发展历程中,优秀的企业文化和团队成为公司最宝贵的财富之一。

Diodes公司的发展小趣事

在半导体行业中,产品质量是企业生存和发展的基石。Diodes公司深知这一点,始终将产品质量放在首位。公司建立了完善的质量管理体系,从原材料采购、生产制造到产品检验,每一个环节都严格把控。同时,Diodes还不断引进先进的生产技术和设备,提高生产效率和产品品质。这些努力使得Diodes的产品在市场上赢得了良好的口碑,赢得了众多客户的信赖。

中微股份(Cmsemicon)公司的发展小趣事

中微股份(Cmsemicon)的起点可以追溯到2004年,当时公司以刻蚀设备为核心业务,致力于引领中国刻蚀技术水平的提升。经过几年的不懈努力,2007年,中微成功研制出首台CCP刻蚀设备,这一里程碑标志着公司在刻蚀设备领域取得了重大突破。此后,公司不断突破技术壁垒,2011年刻蚀设备达到45nm工艺节点,2013年达到22nm,2016年更是达到了14nm,并当前已量产5nm工艺节点设备。这些技术成果不仅证明了中微在刻蚀设备领域的实力,也为公司的后续发展奠定了坚实基础。

问答坊 | AI 解惑

Sipeed 高云GW2A FPGA开发板开箱

本帖最后由 WSir14138 于 2022-11-21 22:29 编辑 1 开箱 心心念念了好久的高云GW2A开发板终于到了。 话不多说,直接上图。 开发板包装盒: 开发板正面: 开发板背面: 配件: 整个开发板接口丰富,底板包含下 ...…

查看全部问答>

随着行业继续朝着统一的物联网标准发展

随着行业继续朝着统一的物联网标准发展,我们将继续支持智能家居互操作性。以下是有关我们支持 Matter 的承诺的更多信息: [localvideo]5ace2cf5c38854cad93ce2ef198d482c[/localvideo]   …

查看全部问答>

Matter 发布会精彩片段

本帖最后由 btty038 于 2022-11-21 23:12 编辑 Highlight reel of the Matter Media Launch Event at Capital C in Amsterdam. [localvideo]994fe8ae08ef2c2c1cb2f8c967fbad34[/localvideo]   …

查看全部问答>

EEWorld邀你来拆解(第7期)——拆拆减肥利器----日常测试

本帖最后由 吾妻思萌 于 2022-11-22 23:05 编辑 拆箱一个礼拜了,发现减肥利器确实不错,体重成功下了0.5公斤,但是一顿好吃的直接就回来啦。 所以大家减肥靠的是毅力和恒心,绝非买个健身房的课程或者器材就可以减下来的。 正常使用次数1 ...…

查看全部问答>

【Sipeed 高云GW2A FPGA开发板】—— 开箱与核心板硬件分析

1. 开箱整体照 2. 核心板设计 2.1. 核心板DDR3-204P金手指外形 核心板DDR3-SODIMM-204P金手指内存条外形设计。 2.2. DDR3内存设计 DDR3:1Gbit/128MByte。 ...…

查看全部问答>

【Sipeed 高云GW2A FPGA开发板】——Sipeed官网Tang-Primer-20K开发板例程学习

本帖最后由 mars4zhu 于 2022-11-22 01:35 编辑 3. Tang-Primer-20K_Examples_Notes 3.1. assign-led-on 按照Sipeed网站的例程说明一步步进行,初次没有注意,看到有6个LED灯,就直接在verilog中编写了6个LED ...…

查看全部问答>

【Sipeed 高云GW2A FPGA开发板】——ARM Cortex-M0软核处理器_LED点灯

本帖最后由 mars4zhu 于 2022-11-23 19:47 编辑 4. 在高云半导体GW2A系列FPGA平台上运行ARM Cortex-M0软核处理器 4.1. ARMSOC_2 在原有代码基础上做细微修改,主要在于: ClockDiv模块中,分频参数根 ...…

查看全部问答>

Microarchitecture cheat sheet 微处理器构架备忘录

本帖最后由 freebsder 于 2022-11-22 08:56 编辑 https://github.com/akhin/microarchitecture-cheatsheet 底层系统学习必备。 …

查看全部问答>

电源防雷板烧了,怎么分析

大功率电源放雷电路板铜箔炸裂脱落,用在防尘现场的,环境比较恶劣,用户输入电为发电机,输入电压有不稳定的情况,是过大的 du/dt  造成的么? 听听老师们讨论分析一下       …

查看全部问答>

嘉楠K510开发套件的踩坑和填坑(小心得)

尝试嘉楠K510开发套件已经有几个月了,越是尝试越是觉得博大精深,艰难地做了一个小小的玩意,预计最快下周应该能够完成。一直没有能出什么帖子,实在有点不好意思,现暂时说一说心得吧: 一、如何在目标机里面添加自己的应用 嘉楠官方提供了 ...…

查看全部问答>