1、第2讲 PIC微控制器概述,学习目标: 1、了解微控制器的分类和各自特点; 2、我们为什么选PIC微控制器讲解。 3、PIC的芯片结构和指令集概述。,微控制器的分类,8位机: PIC, MCS-51,Motorola 16位机:MSP430 32位机:ARM,Intel的XScale DSP:数字信号处理器 SOC:片上系统(硬件java虚拟机),微控制器性能指标,字长 :字长一般取8的整数倍数,如8位、16位、32位、64位等 速度 :速度指标可用主频来评价(KHz,MHz,GHz) 存储系统容量 :内存和外存(B, KB, MB),微控制器内部结构,问题:P4是不是微控制器?,我们为什么选
2、择PIC,社会需要(见下页表格) 功能齐全,适合教学 汇编指令简洁,入门容易(35条) 种类齐全,性价比高(6脚到100脚) 中美联合开放性实验室,技术支持好,中美联合实验室,始建于2000年10月10日,认路1,认路2,认路3,提问时间,提问时间!,03年世界8位微控制器出货量排名,PIC微控制器功能一,1、I/O口具有20mA的驱动能力 2、8路、10位的AD转换 3、I2C,SPI,USART,USB,CAN接口 4、WDT(看门狗) 5、CCP(脉宽/捕捉/比较) 6、内置EEPROM,PIC微控制器功能二,7、3路定时器 8、多种中断源 9、支持休眠的低功耗模式 10、流式的并行接口
3、 11、内置LCD控制器 12、芯片加密 ,种类齐全、性价比高,6脚-100脚 3到几百元不等,2RISC精简指令集技术,PIC系列单片机的指令系统,由于采用RISC技术,PIC16F877有35条指令。,相比较:采用CISC指令集的MCS51单片机,典型型号有115条指令。,学习单片机编程,大家希望 用C语言,还是 用汇编语言(ASM)?,NOP - 空操作 MOVWF f 把W内容送f CLRW - 清除W CLRF f 清除f SUBWF f,d f减去W DECF f,d f递减1 IORWF f,d W和f逻辑或 ANDWF f,d W和f逻辑与 XORWF f,d W和f逻辑异或
4、ADDWF f,d W和f相加 MOVF f,d 传送f COMF f,d f取反 INCF f,d f递增1 DECFSZ f,d f递减1, 结果为0则跳 RRF f,d 带进位循环右移 RLF f,d 带进位循环左移 SWAPF f,d f高低4位内容交换 INCFSZ f,d f递增1, 结果为0则跳,BCF f,b f位清0 BSF f,b f位置1 BTFSC f,b f位测试, 为0则跳 BTFSS f,b f位测试, 为1则跳,SLEEP - 进入低功耗休眠模式 CLRWDT - 清看门狗 RETLW k W带立即数返回 RETFIE - 中断返回 RETURN - 子程序返回
5、 CALL k 调用子程序 GOTO k 强行跳转(k为9位地址描述) MOVLW k W置立即数 IORLW k W和立即数逻辑或 ADDLW k W和立即数相加 SUBLW k 立即数减去W ANDLW k W和立即数逻辑与 XORLW k W和立即数逻辑异或,字节操作,位操作,立即数和控制操作,f = 寄存器, k = 立即数 (8位), b = 位地址 , d = 目的地 (1=f, 0=W),PICmicro 单片机指令集(35条)汇总,PIC的芯片结构与指令集概述,PIC系列单片机的硬件系统设计简洁,指令系统设计精炼,容易入门。,PIC16F877,PIC16F877外形,引脚结构
6、图,PIC16F877的引脚,PICl6F87X系列单片机有双列直插式28引脚和40引脚及表面贴装式44引脚等几种封装形式。 多数I/O引脚都设计有第2功能,甚至第3功能。采用引脚复用技术,以便使单片机增加功能而又不增大体积和引脚数量。,PIC16F877的结构 P8图1-2,PIC16F877结构特点,高效的哈佛总线结构 精简指令集 内置FLASH和EEPROM(E2PROM) 寻址方式简单 丰富灵活的中断源 其它微小特性,2.2 PIC的存储器,PIC16 F877单片机内部配置了较完善的多个存储器,可分为程序存储器和数据存储器两种: 程序存储器包括:FLASH 数据存储器包括:RAM和E
7、EPROM。,2.2.1 程序存储器,F877单片机内部配置了8K l4位的闪烁(FLASH)程序存储器,可以很方便进行在线擦除和烧写,寿命可达10万次以上。非常适合单片机教学实验和科研开发。,程序存储器结构,2.2.2 数据存储器,F877单片机内部配置两类数据存储器,普通RAM和EEPROM失电保持数据存储器。RAM总的地址空间为512个单元,其中包括部分无效单元,但每一个有效单元均可以象寄存器一样进行操作。PIC单片机的数据存储器和其他单片机一样,在配置结构上可分为通用寄存器和特殊功能寄存器两大类,前者给用户使用,而后者通常定义给某些功能模块,是一种具有特殊目的的功能寄存器。,汇编指令简
8、介,用汇编实现加法,用汇编实现跳转就行MOVLW MOVWF ADDWF BTFSC STATUS,0GOTO NOT_ZEROGOTO $,提问时间,请提问,计算机总线结构比较,从同一存储器空间取指令和取操作数据。限制了数据流量。从两个独立的存储空间分别取指令和存取操作数。数据流量增加。针对程序区和数据区可以设计不同的数据线宽度。,抛弃 4,取指SUB,大部分单片机, 其取指和执行过程是顺序进行的. 指令流水线的引入允许取指和执行可以同步进行,使得指令可以在一个指令周期内执行. 程序分支例外 (如 GOTO, CALL 或直接修改PC),这需两个指令周期. Tcy0 Tcy1 Tcy2 Tc
9、y3 Tcy4,PIC单片机架构 指令流水线,执行 1,取指 3,1. MOVLW 55h,取指 1,执行3,取指 2,执行 2,取指 4,2. MOVWF PORTB,3. CALL SUB,4. BSF PORTA, BIT3,PIC单片机架构 长字指令,因为PIC单片机内部指令和数据是独立存储的,所以指令和数据总线宽度可以不一样. PIC单片机指令字长为12,14,16位等几种 哈佛结构保证了: 单字指令/单周期指令 在PIC16CXX单片机内2k x 14b的容量相当于其它8位单片机4k x 8b的空间 单周期的指令存取提高了执行速度,PIC单片机架构 长字指令 (续),14位,16位
10、,代码压缩率高,2RISC精简指令集技术,PIC系列单片机的指令系统,由于采用RISC技术,PIC16F877有35条指令。 MCS51单片机,采用CISC技术,典型有115条指令。,NOP - 空操作 MOVWF f 把W内容送f CLRW - 清除W CLRF f 清除f SUBWF f,d f减去W DECF f,d f递减1 IORWF f,d W和f逻辑或 ANDWF f,d W和f逻辑与 XORWF f,d W和f逻辑异或 ADDWF f,d W和f相加 MOVF f,d 传送f COMF f,d f取反 INCF f,d f递增1 DECFSZ f,d f递减1, 结果为0则跳
11、RRF f,d 带进位循环右移 RLF f,d 带进位循环左移 SWAPF f,d f高低4位内容交换 INCFSZ f,d f递增1, 结果为0则跳,BCF f,b f位清0 BSF f,b f位置1 BTFSC f,b f位测试, 为0则跳 BTFSS f,b f位测试, 为1则跳,SLEEP - 进入低功耗休眠模式 CLRWDT - 清看门狗 RETLW k W带立即数返回 RETFIE - 中断返回 RETURN - 子程序返回 CALL k 调用子程序 GOTO k 强行跳转(k为9位地址描述) MOVLW k W置立即数 IORLW k W和立即数逻辑或 ADDLW k W和立即数
12、相加 SUBLW k 立即数减去W ANDLW k W和立即数逻辑与 XORLW k W和立即数逻辑异或,字节操作,位操作,立即数和控制操作,f = 寄存器, k = 立即数 (8位), b = 位地址 , d = 目的地 (1=f, 0=W),PICmicro 单片机指令集(35条)汇总,PIC单片机架构 文件寄存器概念,General Purpose Registers (RAM),Other SFRs,PORTA,FSR,STATUS,PCL,TMR0,INDF,W Register,直接数据地址 ,操作码 ,14-位字长的指令范例:,RAM被看作是一组通用的寄存器.周边模块的寄存器都在
13、数据存储器中.所有的指令操作都可针对所有的寄存器.长字指令使得在指令中直接寻址寄存器.,大多数特殊寄存器在数据存储器中,特例,3寻址方式简单寻址空间独立,PIC系列单片机只有4种寻址方式: 1、立即数寻址 2、寄存器直接寻址 3、寄存器间接寻址 4、位寻址,比较容易掌握。 PIC系列单片机的具有8级硬件堆栈,无法寻址堆栈。,RAM,ROM,立即数寻址例子,CPU,XXXX XXXX,W Register,0000 0101,MOVLW H05,MOVLW H05,MOVWF H05,MOVLW FSR,CLRF 00,RAM,ROM,寄存器寻址例子,CPU,XXXX XXXX,W Regist
14、er,0000 0100,MOVLW H05,MOVLW H04,MOVWF H05,MOVLW FSR,CLRF 00,MOVWF H05,0000 0100,H05,RAM,ROM,寄存器间接寻址例子,CPU,XXXX XXXX,W Register,0000 0101,SFR & RAM,PORTA,FSR,STATUS,PCL,TMR0,H00 H01 H02 H03 H04 H05 ,INDF,MOVLW H05,MOVLW H05,MOVWF H05,CLRF 0,MOVWF H04,0000 0000,H05,CLRF 0,0000 0101,H04,RAM,ROM,位寻址例子,
15、CPU,XXXX XXXX,W Register,MOVLW H05,BSF H05,7,H05,1,丰富、灵活的中断源,具备多种内部和外部的中断源. 有全局和独立中断使能控制位. 大多数中断可以让单片机从睡眠中唤醒. 固定3个指令周期的中断响应延时.,内置FLASH和EEPROM,FLASH ROM存储器,用于存储程序二进制代码,掉电后数据不丢失,一般情况不会被频繁改动;在PIC16F877片内配置了另一种可掉电保护的数据存储器EEPROM,共有2568位宽的存储单元,可用程序读写此存储器:如时间、配置数据及数据记录等,是一种非常重要的硬件记录资源。,5功耗低,由于PIC系列单片机采用CMO
16、S结构,使其功率消耗极低,是目前世界上最低功耗的单片机品种之一。其中有些型号,在4MHz时钟下工作时耗电不超过2mA,而在睡眠模式下耗电可低到1A以下。 因此,PIC系列单片机,尤其适用于野外移动仪表的控制以及户外免维护的控制系统。,6驱动能力强,I/0端口驱动负载的能力较强,每个输出引脚可以驱动多达20-25mA的负载,既能够高电平直接驱动发光二极管LED、光电藕合器、小型继电器等,也可以低电平直接驱动,这样可大大简化控制电路。不过,请大家注意,每个引脚的驱动能力并不表示端口引脚同时都具有这样的功效。详细数据可参考有关数据手册。,8I2C和SPI串行总线端口,PIC系列单片机的一些型号具有同步串行口,可以满足I2C(主控/从动)和SPI(主控)总线要求。I2C和SPI(Serial Peripheral Interface)分别是PHILIPS公司和MOTOROLA公司研制的两种广泛流行的串行总线标准,是一种在芯片之间实现同步串行数据传输的技术。利用单片机串行总线端口可以方便而灵活地扩展外围器件,目前已在许多电子产品中得到广泛应用。,Question Time,