高手讲解PIC单片机:单片机的入门就是这么简单

发布者:SerendipityRose最新更新时间:2020-02-01 来源: elecfans关键字:PIC单片机  入门  初学者 手机看文章 扫描二维码
随时随地手机看文章

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

这个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条我看也没啥难的。单片机的入门就是这么简单。          

关键字:PIC单片机  入门  初学者 引用地址:高手讲解PIC单片机:单片机的入门就是这么简单

上一篇:PIC单片机中断服务程序
下一篇:用MPLAB X IDE v5.00给PIC单片机新建工程

推荐阅读最新更新时间:2024-11-12 01:31

PIC单片机奇偶校验位生成程序
简介:文章简单介绍了PIC单片机奇偶校验位的生成程序 偶校验的数学原理是奇数个1按位连续异或结果为1,偶数个1按位连续异或结果为0,用PIC指令将整个运算过程简化为如下指令: 对X单元(D7D6D5D4D3D2D1D0)进行偶校验位计算,结果在进位C中,X单元内容被破坏 SWAPFX,0 XORWFX,1 RRFX,0 XORWFX,1;此时X.2=D7ΛD3ΛD6ΛD2,X.0=D5ΛD1ΛD4ΛD0 BTFSCX,2 INCFX,1;这两句实现按位异或运算X.2ΛX.0,结果存入X..0,就是偶校验位 CLRC BTFSCX,0 SETC;以上三句将偶校验位X..0复制入进位C
[单片机]
ICC AVR单片机新手入门
AVR ICC 使用快速入门 菜单解释 下一页: 新手的第一个程序,实现红绿灯不断闪烁 。 ICC AVR是一款非常好用的AVR编译软件,官方网站: www.imagecraft.com 目前最新版为7.0,本站的所有例程都以ICC AVR为开发平台。如果你还没有配置好开发环境,请参看: AVR 开发环境ICC+AVRstudio配置 。 如果你有时间看很多理论的没有实际操作价值的说明,请下载 ICCavr中文使用说明 。如果你想快速进入使用,请参看本文档。 1、关于窗口设置: 如上图:这是ICC avr 6.31 版本的窗口,分为5大区。 菜单项 文件 新建,打开,打印文件等常规选项。很别扭的一件事关闭文件在菜单
[单片机]
ICC AVR单片机新手<font color='red'>入门</font>
MSP432入门——编译环境搭建
0x01.目录 节目录 0x00.章索引 0x01.目录 0x02.概述 0x03.正式开始前... 非专业“教程” SimpleLink MCU SDK TI drivers 与 driverlib 0x04.工具与环境 0x05.开发环境的搭建 0x06.大功告成 0x02.概述 MSP432 系列 MCU 属于低功耗、高性能的微控制器。这个系列产品是 TI 的 MSP 低功耗微控制器系列中的产品, 本系列文章将通过使用TI drvers对MSP432P401R进行一些简单的开发。 本人接触过的MCU算不上多,之前大多数时间都在和STM32打交道,大学四年经历了两次电赛,都没有用上MSP432系列的单片机。这次偶然间由
[单片机]
MSP432<font color='red'>入门</font>——编译环境搭建
PIC单片机精通_A/D模数转换模块细节补充
1.PIC16F876a结果寄存器 ADCON1状态寄存器的7bit位定义了输出结果是左对齐还是右对齐,比较迷茫,不懂在说什么,查阅了一下DataSheet,如下: 从上面的示意图可以看出,结果寄存器的对齐方式是为了方便我们读取转换后的数据。示意图不是很详细,我们可以看一下AD的结果寄存器。 AD的结果寄存器是16位宽的,但是有六位是不用的,所以实际上读取10位数据。 2.与AD转换相关的寄存器一览 控制AD模块的所有寄存器如下图所示: AD模块基本控制寄存器:ADCON0、ADCON1;主要管理AD模块上电、时钟选择、通道选择、结果寄存格式选择、AD转换启动等。 端口配置寄存器:TRISA、PORTA;主要
[单片机]
<font color='red'>PIC单片机</font>精通_A/D模数转换模块细节补充
C51入门4,蜂鸣器实验
实验一:滴滴间断声光报警信号实验 程序: //滴滴间断声光报警信号实验 #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #include reg52.h char code dx516 _at_ 0x003b; //端口设置 sbit P10=P1^0; //LED1 sbit K1=P3^2; //K1 sbit BEEP=P2^3; //接蜂鸣器 //滴答时间函数 bi(ulong t) { ulong c; uint n; for (c=0;c t;c++) { for(n=0;n 50;n++);
[单片机]
PIC单片机CCS之C语言(#USE FIXED_IO的用法)
#USE FIXED_IO 语法:#use fixed_io(port_outputs=pin.pin?) port是A~G. pin是在device.h文件中定义的脚数之一. 目的: 影响编译器如何产生输入输出代码,说明如下. 这种指令有效,直到出现下一个#use xxxx_io为止. 执行设置I/O的方法将使编译器产生代码,这种代码使I/O在每次使用的时候,要么是输入,要么是输出.根据I/O方向寄存器中的信息对引脚进行编程(I/O方向寄存器实际上被执行但不操作),这将存储一个字节到标准I/O使用的RAM中. 例子:#use fixed_io(a_outputs=PIN_A2,PIN_A3) //将PINA2和PIN_A
[单片机]
Realme推出C11入门级智能手机:待机达40天
今天 Realme 在印度推出了 C11 入门级智能手机,售价为 7499 印度卢比(约 697 元),将于 7 月 22 日开始在 Flipkart 上销售。   Realme C11 配备了 6.5 英寸 HD + 水滴屏,前置 500 万像素自拍摄像头。采用联发科 Helio G35 SoC,只有 2GB 内存和 32GB 存储空间的版本。   手机内置 5000mAh 电池,不支持任何形式的快充,但官方宣称该机的待机时间可长达 40 天。此外,这款手机使用了旧的 micro USB 接口,后置摄像头由一个 1300 万像素摄像头和一个 200 万像素摄像头组成。   IT之家了解到,Realme 在推出 Rea
[手机便携]
Realme推出C11<font color='red'>入门</font>级智能手机:待机达40天
PIC单片机的硬件死锁
使用 PIC 单片机 去设计工控电路,最头痛的问题,就是 PIC 单片机在受干扰后经常硬件死锁,大部份人归咎于 “CMOS的可控硅效应” 因而产生死锁现象,一般都认为 ‘死锁后硬件复位都是无效的.只有断电。’ 但是一个成熟的商品,那须要你去断电呢? 就好像一台电冰箱,压缩机一启动,产生干扰, CPU 受干扰 因而 ‘硬件死锁’,死机在那儿,假如发现了,可以马上拔掉电源插头,隔几秒再插回,如此的动作 可以接受吗? 假如死机时没发现,死机几十天,你猜它会如何呢? -- 应该是 供给 CPU 电源的稳压 IC 烧毁了。 PIC 单片机 为什么 会硬件死锁,PIC 单片机在受干扰后经常硬件死锁,那么 PIC 要‘看门狗’ 有何用,有没
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved