1. dsPIC30F2010是什么
dsPIC30F2010是控制光伏水泵变频器。
dsPIC30F数字信号控制器(DSC),2010是研制年份。此芯片主要适用于电机控制,如直流无刷电机、单相和三相感应电机及开关磁阻电机;同时也适用于不间断电源(UPS)、逆变器、开关电源和功率因数校正等。
1、 主要结构:
12KB程序存储器;
512字节SRAM;
1024字节EEPROM;
3个16位定时器;
4个输入捕捉通道;
2个输出比较/标准PWM通道;
6个电机控制PWM通道;
6个10位500kspsSA/D转换器通道。
2、 主要特点:
A/D采样速度快且多通道可以同时采样;
6个独立/互补/中心对齐/边沿对齐的PWM:
2个可编程的死区;
在噪声环境下5V电源可正常工作;
最低工作电压3V;
A/D采样和PWM同期同步。
2. 单片机原理及接口技术的人民邮电最新出版
书名单片机原理及接口技术(C51编程)
丛 书 名21世纪高等学校计算机规划教材——名家系列
标准书号ISBN 978-7-115-25665-2
编目分类TP368.1
作者张毅刚 主编
出版社 人民邮电出版社
责任编辑武恩玉
开本16 开
印张18
字数474 千字
页数280 页
装帧平装
版次第1版第1次
初版时间2011年8月
本 印 次2011年8月
定价34.00 元 《单片机原理及接口技术(C51编程)》详细介绍了美国ATMEL公司的AT89S51单片机的硬件结构和片内外围部件的工作原理,Keil C51编程基础知识,并从应用设计的角度介绍AT89S51单片机的各种常用的硬件接口设计,以及相应的Keil C51接口驱动程序设计。本书最后介绍了AT89S51单片机应用系统设计以及一些典型应用举例。
《单片机原理及接口技术(C51编程)》可作为各类工科院校、职业技术学院电子技术、计算机、工业自动化、自动控制、智能仪器仪表、电气工程、机电一体化等专业单片机课程教材,也可供从事单片机应用设计的工程技术人员参考。 第1章单片机概述1
1.1什么是单片机1
1.2单片机的发展历史2
1.3单片机的特点2
1.4单片机的应用3
1.5单片机的发展趋势4
1.6MCS-51系列与AT89S5x系列单片机5
1.6.1MCS-51系列单片机5
1.6.2AT89系列单片机6
1.6.3AT89系列单片机的型号说明7
1.7各种衍生品种的51单片机8
1.7.1STC系列单片机9
1.7.2C8051F×××单片机10
1.7.3ADμC812单片机10
1.7.4华邦W77系列、W78系列单片机10
1.8PIC系列单片机与AVR系列单片机10
1.8.1PIC系列单片机11
1.8.2AVR系列单片机12
1.9其他的嵌入式处理器简介12
1.9.1嵌入式DSP处理器13
1.9.2嵌入式微处理器13
思考题及习题14
第2章AT89S51单片机硬件结构15
2.1AT89S51单片机的硬件组成15
2.2AT89S51的引脚功能17
2.2.1电源及时钟引脚17
2.2.2控制引脚18
2.2.3并行I/O口引脚18
2.3AT89S51的CPU19
2.3.1运算器19
2.3.2控制器21
2.4AT89S51单片机存储器的结构21
2.4.1程序存储器空间22
2.4.2数据存储器空间23
2.4.3特殊功能寄存器23
2.4.4位地址空间26
2.5AT89S51单片机的并行I/O端口27
2.6时钟电路与时序29
2.6.1时钟电路设计29
2.6.2机器周期、指令周期与指令时序30
2.7复位操作和复位电路31
2.7.1复位操作31
2.7.2复位电路设计31
2.8低功耗节电模式33
2.8.1空闲模式33
2.8.2掉电运行模式34
2.8.3掉电和空闲模式下的WDT34
思考题及习题35
第3章C51语言编程基础37
3.1编程语言Keil C51简介37
3.1.1Keil C51简介37
3.1.2C51与标准C的比较38
3.2Keil C51的开发工具39
3.2.1集成开发环境Keil μVision3简介39
3.2.2Keil μVision3软件的安装、启动和运行40
3.3C51语言程序设计基础40
3.3.1C51语言中的数据类型与存储类型41
3.3.2C51语言的特殊功能寄存器及位变量定义45
3.3.3C51语言的绝对地址访问47
3.3.4C51的基本运算48
3.3.5C51的分支与循环程序结构50
3.3.6C51的数组57
3.3.7C51的指针58
3.4C51语言的函数60
3.4.1函数的分类60
3.4.2函数的参数与返回值61
3.4.3函数的调用62
3.4.4中断服务函数63
3.4.5变量及存储方式63
3.4.6宏定义与文件包含64
3.4.7库函数65
3.5软件仿真开发工具Proteus与Keil μVision3的联调65
3.5.1软件仿真开发工具Proteus简介65
3.5.2Proteus与Keil μVision3的联调66
思考题及习题67
第4章AT89S51片内并行端口的原理及编程68
4.1AT89S51的并行I/O端口的结构及工作原理68
4.1.1P0口68
4.1.2P1口70
4.1.3P2口70
4.1.4P3口71
4.1.5P1~P3口驱动LED发光二极管的问题72
4.2并行I/O端口的C51编程举例73
4.2.1从左到右的流水灯的制作73
4.2.2左右来回循环的流水灯的制作73
4.2.3开关量检测指示器176
4.2.4开关量检测指示器276
思考题及习题77
第5章AT89S51单片机的中断系统79
5.1AT89S51中断技术概述79
5.2AT89S51中断系统结构79
5.2.1中断请求源80
5.2.2中断请求标志寄存器80
5.3中断允许与中断优先级的控制81
5.3.1中断允许寄存器IE82
5.3.2中断优先级寄存器IP82
5.4响应中断请求的条件84
5.5外部中断的响应时间85
5.6外部中断的触发方式选择86
5.6.1电平触发方式86
5.6.2跳沿触发方式86
5.7中断请求的撤销86
5.8中断函数87
5.9C51编程举例88
5.9.1单一外中断的应用88
5.9.2两个外中断的应用89
5.9.3中断嵌套91
5.9.4多外部中断源系统设计92
思考题及习题93
第6章AT89S51单片机的定时器/计数器95
6.1定时器/计数器的结构95
6.1.1工作方式控制寄存器TMOD96
6.1.2定时器/计数器控制寄存器TCON96
6.2定时器/计数器的4种工作方式97
6.2.1方式097
6.2.2方式198
6.2.3方式298
6.2.4方式399
6.3对外部输入的计数信号的要求100
6.4定时器/计数器的编程和应用101
6.4.1P1口外接的8只LED每0.5s闪亮一次101
6.4.2计数器的应用102
6.4.3扩展一个外部中断源103
6.4.4P1.0上产生周期为2ms的方波104
6.4.5P1.1上产生周期为1s的方波104
6.4.6T1控制发出1kHz的音频信号105
6.4.7测量脉冲宽度——门控位GATEx的应用106
6.4.8实时时钟的设计107
思考题及习题108
第7章AT89S51单片机的串行口110
7.1串行口的结构110
7.1.1串行口控制寄存器SCON110
7.1.2特殊功能寄存器PCON112
7.2串行口的4种工作方式112
7.2.1方式0112
7.2.2方式1116
7.2.3方式2117
7.2.4方式3118
7.3多机通信119
7.4波特率的制定方法120
7.4.1波特率的定义120
7.4.2定时器T1产生波特率的计算120
7.5串行通信的应用设计122
7.5.1各种串行通信接口标准122
7.5.2方式1的应用124
7.5.3方式2和方式3的应用127
7.5.4主从式多机通信的应用129
7.5.5单片机与PC的串行通信133
7.5.6PC与单片机或与多个单片机的串行通信接口设计135
思考题及习题136
第8章AT89S51单片机外部存储器的扩展138
8.1系统扩展结构138
8.2地址空间分配和外部地址锁存器139
8.2.1存储器地址空间分配139
8.2.2外部地址锁存器142
8.3程序存储器EPROM的扩展144
8.3.1常用的EPROM芯片144
8.3.2程序存储器的操作时序146
8.3.3AT89S51单片机与EPROM的接口电路设计148
8.4静态数据存储器RAM的扩展149
8.4.1常用的静态RAM(SRAM)芯片149
8.4.2外扩数据存储器的读写操作时序150
8.4.3AT89S51单片机与RAM的接口电路设计151
8.5EPROM和RAM的综合扩展153
8.5.1综合扩展的硬件接口电路153
8.5.2外扩存储器电路的编程155
8.6片内Flash存储器的编程155
8.6.1通用编程器编程157
8.6.2ISP编程157
思考题及习题158
第9章AT89S51单片机的I/O扩展160
9.1I/O接口扩展概述160
9.1.1扩展的I/O接口功能160
9.1.2I/O端口的编址160
9.1.3I/O数据的传送方式161
9.1.4I/O接口电路161
9.2AT89S51扩展I/O接口芯片82C55的设计162
9.2.182C55芯片简介162
9.2.2工作方式选择控制字及端口PC置位/复位控制字163
9.2.382C55的3种工作方式165
9.2.4AT89S51单片机与82C55的接口设计169
9.3利用74LSTTL电路扩展并行I/O口171
9.4用AT89S51单片机的串行口扩展并行口172
9.4.1用74LS165扩展并行输入口172
9.4.2用74LS164扩展并行输出口173
9.5用I/O口控制的声音报警接口174
9.5.1扬声器报警接口174
9.5.2音乐报警接口176
思考题及习题176
第10章AT89S51单片机与输入/输出外设的接口178
10.1LED数码管显示器的接口设计178
10.1.1LED数码管的工作原理178
10.1.2LED数码管显示器接口设计举例179
10.2键盘的接口设计183
10.2.1键盘接口应解决的问题183
10.2.2键盘接口设计举例184
10.2.3键盘扫描方式的选取188
10.3键盘/显示器接口的设计实例188
10.3.1利用并行I/O芯片82C55实现键盘/显示器接口188
10.3.2利用串行口实现的键盘/显示器接口191
10.3.3专用接口芯片HD7279实现的键盘/显示器控制193
10.4AT89S51单片机与液晶显示器的接口204
10.4.1LCD显示器的分类204
10.4.2点阵字符型液晶显示模块介绍204
10.4.3AT89S51单片机与LCD的接口及软件编程208
10.5AT89S51单片机与微型打印机TP(P-40A/16A的接口211
10.6AT89S51单片机与BCD码拨盘的接口设计215
思考题及习题216
第11章AT89S51单片机与D/A、A/D转换器的接口217
11.1AT89S51单片机与DAC的接口217
11.1.1D/A转换器简介217
11.1.2AT89S51单片机与8位D/A转换器0832的接口设计218
11.2AT89S51单片机与ADC的接口225
11.2.1A/D转换器简介225
11.2.2AT89S51与逐次比较型8位A/D转换器ADC0809的接口226
11.2.3AT89S51与逐次比较型12位A/D转换器AD1674的接口230
11.3AT89S51单片机与V/F转换器的接口234
11.3.1用V/F转换器实现A/D转换的原理235
11.3.2常用V/F转换器LMX31简介235
11.3.3V/F转换器与MCS-51单片机接口236
11.3.4LM331应用举例237
思考题及习题238
第12章单片机的串行扩展技术239
12.1单总线串行扩展239
12.2SPI总线串行扩展240
12.2.1SPI总线的扩展结构241
12.2.2扩展带SPI串口的A/D转换器TLC2543242
12.3I2C总线的串行扩展243
12.3.1I2C串行总线系统的基本结构244
12.3.2I2C总线的数据传送规定244
12.3.3AT89S51的I2C总线扩展系统247
12.3.4I2C总线数据传送的模拟248
12.3.5I2C总线在IC卡中的应用251
思考题及习题255
第13章AT89S51单片机的应用设计与调试256
13.1单片机应用系统的设计步骤256
13.2单片机应用系统设计257
13.2.1硬件设计应考虑的问题257
13.2.2典型的单片机应用系统258
13.2.3系统设计中的地址空间分配与总线驱动259
13.2.4应用设计例1——最小应用系统设计261
13.2.5应用设计例2——数字电压表的设计262
13.2.6应用设计例3——带有报警功能的温度测量仪的设计264
13.3单片机应用系统的仿真开发与调试266
13.3.1仿真开发系统的种类与基本功能267
13.3.2仿真开发系统简介267
13.3.3用户样机的仿真调试270
13.4单片机应用系统的抗干扰与可靠性设计272
13.4.1AT89S51片内看门狗定时器的使用273
13.4.2软件滤波273
13.4.3开关量输入/输出软件抗干扰设计274
13.4.4过程通道干扰的抑制措施——隔离275
13.4.5印刷电路板抗干扰布线的基本原则276
思考题及习题278
参考文献280
3. 单片机C语言程序设计实训100例:基于PIC+Proteus仿真的目录
第1章PIC单片机C语言程序设计概述
1.1 PIC单片机简介
1.2 MPLAB+C语言程序开发环境安装及应用
1.3 PICC/PICC18/MCC18程序设计基础
1.4 PIC单片机内存结构
1.5 PIC单片机配置位
1.6 基本的I/O端口编程
1.7 中断服务程序设计
1.8 PIC单片机外设相关寄存器
1.9 C语言程序设计在PIC单片机应用系统开发中的优势
第2章PROTEUS操作基础
2.1 PROTEUS操作界面简介
2.2 仿真电路原理图设计
2.3 元件选择
2.4 仿真运行
2.5 MPLAB IDE与PROTEUS的联合调试
2.6 PROTEUS在PIC单片机应用系统开发中的优势
第3章 基础程序设计
3.1 闪烁的LED
3.2 用双重循环控制LED左右来回滚动显示
3.3 多花样流水灯
3.4 LED模拟交通灯
3.5 单只数码管循环显示0~9
3.6 4只数码管滚动显示单个数字
3.7 8只数码管扫描显示多个不同字符
3.8 K1~K5控制两位数码管的开关、加减与清零操作
3.9 数码管显示4×4键盘矩阵按键
3.10 数码管显示拨码开关编码
3.11 继电器及双向可控硅控制照明设备
3.12 INT中断计数
3.13 RB端口电平变化中断控制两位数码管开关与加减显示
3.14 TIMER0控制单只LED闪烁
3.15 TIMER0控制流水灯
3.16 TIMER0控制数码管扫描显示
3.17 TIMER1控制交通指示灯
3.18 TIMER1与TIMER2控制十字路口秒计时显示屏
3.19 用工作于同步计数方式的TMR1实现按键或脉冲计数
3.20 用定时器设计的门铃
3.21 报警器与旋转灯
3.22 用工作于捕获方式的CCP1设计的频率计
3.23 用工作于比较模式的CCP1控制音阶播放
3.24 CCP1 PWM模式应用
3.25 模拟比较器测试
3.26 数码管显示两路A/D转换结果
3.27 EEPROM读写与数码管显示
3.28 睡眠模式及看门狗应用测试
3.29 单片机与PC双向串口通信仿真
3.30 PIC单片机并行从动端口PSP读写测试
第4章 硬件应用
4.1 74HC138与74HC154译码器应用
4.2 74HC595串入并出芯片应用
4.3 用74HC164驱动多只数码管显示
4.4 数码管BCD解码驱动器7447与4511应用
4.5 8×8LED点阵屏显示数字
4.6 8位数码管段位复用串行驱动芯片MAX6951应用
4.7 串行共阴显示驱动器MAX7219与7221应用
4.8 14段与16段数码管串行驱动显示
4.9 16键解码芯片74C922应用
4.10 1602LCD字符液晶测试程序
4.11 1602液晶显示DS1302实时时钟
4.12 1602液晶工作于4位模式实时显示当前时间
4.13 带RAM内存的实时时钟与日历芯片PCF8583应用
4.14 2×20串行字符液晶演示
4.15 LGM12864液晶显示程序
4.16 PG160128A液晶图文演示
4.17 TG126410液晶串行模式显示
4.18 HDG12864系列液晶演示
4.19 Nokia7110液晶菜单控制程序
4.20 8通道模拟开关74HC4051应用测试
4.21 用带I2C接口的MCP23016扩展16位通用I/O端口
4.22 用带SPI接口的MCP23S17扩展16位通用I/O端口
4.23 用I2C接口控制MAX6953驱动4片5×7点阵显示器
4.24 用I2C接口控制MAX6955驱动16段数码管显示
4.25 用带SPI接口的数/模转换器MCP4921生成正弦波形
4.26 用带SPI接口的数/模转换器MAX515控制LED亮度循环变化
4.27 正反转可控的直流电机
4.28 PWM控制MOSFET搭建的H桥电路驱动直流电机运行
4.29 正反转可控的步进电机
4.30 用L297+L298控制与驱动步进电机
4.31 PC通过RS-485器件MAX487远程控制单片机
4.32 I2C接口DS1621温度传感器测试
4.33 SPI接口温度传感器TC72应用测试
4.34 温度传感器LM35全量程应用测试
4.35 K型热电偶温度计
4.36 用铂电阻温度传感器PT100设计的测温系统
4.37 DS18B20温度传感器测试
4.38 SHT75温湿度传感器测试
4.39 1-Wire式可寻址开关DS2405应用测试
4.40 光敏电阻应用测试
4.41 MPX4250压力传感器测试
4.42 用I2C接口读写存储器AT24C04
4.43 用SPI接口读写AT25F1024
4.44 PIC18 I2C接口存储器及USART接口测试程序
4.45 PIC18 SPI接口存储器测试程序
4.46 PIC18定时器及A/D转换测试
4.47 用PIC18控制Microwire接口继电器驱动器MAX4820
4.48 MMC存储卡测试
4.49 ATA硬盘数据访问
4.50 微芯VLS5573液晶显示屏驱动器演示
第5章 综合设计
5.1 用DS1302/DS18B20+MAX6951设计的多功能电子日历牌
5.2 用PCF8583设计高仿真数码管电子钟
5.3 用4×20LCD与DS18B20设计的单总线多点温度监测系统
5.4 用内置EEPROM与1602液晶设计的加密电子密码锁
5.5 用PIC单片机与1601LCD设计的计算器
5.6 电子秤仿真设计
5.7 数码管显示的GP2D12仿真测距警报器
5.8 GPS全球定位系统仿真
5.9 能接收串口信息的带中英文硬字库的80×16点阵显示屏
5.10 用M145026与M145027设计的无线收发系统
5.11 红外遥控收发仿真
5.12 交流电压检测与数字显示仿真
5.13 带位置感应器的直流无刷电机PMW控制仿真
5.14 3端可调正稳压器LM317应用测试
5.15 模拟射击训练游戏
5.16 带触摸屏的国际象棋游戏仿真
5.17 温室监控系统仿真
5.18 PIC单片机MODBUS总线通信仿真
5.19 PIC单片机内置CAN总线通信仿真
5.20 基于PIC18+Microchip TCP/IP协议栈的HTTP服务器应用
参考文献
4. 单片机无论下载什么程序进去都下不了,而且还一直发出很高频率的声音,像震动一样
检查电源和MAX232
检查方法:
电源:就用万族悄用表检查了,这个就不说了。
MAX232:电源正常的话下载一个串口调试助手,先用镊子或螺丝刀之类的东西将P3.0和P3.1短路,用串口调试助手向单片机下载所用的端口随便发送一个数据,此时如核携果接收串口返回了你发送的数据则说明MAX232是好的。
如改穗伏果检查至此两样都是好的那么极有可能是单片机损坏,买一片新的试试。
5. 关于单片机的种类问题
单片机的分类Ⅰ 按生产厂家分
美国的英特尔(Intel) 公司、摩托罗拉(Motorola)公司、国家办导体(NS) 公司、Atmel公司、微芯片(Microchip) 公司、洛克威尔(Rockwell)公司、莫斯特克公司(Mostek)、齐洛格(Zilog)公司、仙童(Fairchid)公司、德州仪器(TI)公司等等。日本的电气(NS)公司、东芝(Toshiba)公司、富士通(Fujitsu)公司、松下公司、日立(Hitachi)公司、日电(NEC)公司、夏普公司等等。荷兰的飞利浦(Philips)公司。德国的西门子(Siemens)公司等等。
Ⅱ 按字长分(1)4-BIT 单片机
4 位单片机的控制功能较弱,CPU 一次只能处理4 位二进制数。这类单片机常用于计算器、各种形态的智能单元以及作为家用电器中的控制器。典型产品有NEC 公司的UPD 75××系列、NS 公司的COP400 系列、松下公司的MN1400 系列、ROCKWELL 公司的PPS/1系列、富士通公司的MB88 系列、夏普公司的SM××系列、Toshiba 公司的TMP47×××系列等等。
① 华邦公司的W741系列的4位单片机带液晶驱动,在线烧录,保密性高,低操作电压(1.2V~1.8V)。
② 东芝单片机的4位机在家电领域有很大市场。
(2)8-BIT 单片机
8 位单片机 8 位单片机的控制功能较强,品种最为齐全。和4 位单片机相比,它不仅具有较大的存储容量和寻址范围,而且中断源、并行I/O 接口和定时器/计数器个数都有了不同程度的增加,并集成有全双工串行通信接口。在指令系统方面,普遍增设了乘除指令和比较指令。特别是8 位机中的高性能增强型单片机,除片内增加了A/D 和D/A 转换器外,还集成有定时器捕捉/比较寄存器、监视定时器(Watchdog)、总线控制部件和晶体振荡电路等。这类单片机由于其片内资源丰富和功能强大,主要在工业控制、智能仪表、家用电器和办公自动化系统中应用。代表产品有Intel 公司的MCS-48 系列和MCS-51 系列 、Microchip 公司的PIC16C××系列和PIC17C××系列以及PIC1400 系列、Motorola 公司的M68HC05 系列和M68HC11 系列、Zilog 公司的Z8 系列、荷兰Philips 公司的80C51 系列(同MCS-51 兼容)、Atmel公司的AT89 系列(同MCS-51 兼容)、NEC 公司的UPD78××系列等等。
1)51系列单片机
8031/8051/8751是Intel公司早期的产品。应用的早,影响很大,已成为世界上的工业标准。后来很多芯片厂商以各种方式与Intel公司合作,也推出了同类型的单片机,如同一种单片机的多个版本一样,虽都在不断的改变制造工艺,但内核却一样,也就是说这类单片机指令系统完全兼容,绝大多数管脚也兼容;在使用上基本可以直接互换。人们统称这些与8051内核相同的单片机为“51系列单片机”。
8031片内不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373,外接的程序存储器多为EPROM的2764系列。用户若想对写入到EPROM中的程序进行修改,必须先用一种特殊的紫外线灯将其照射擦除,之后再可写入。写入到外接程序存储器的程序代码没有什么保密性可言。
8051片内有4k ROM,无须外接外存储器和373,更能体现“单片”的简练。但是所编的程序无法写入到其ROM中,只有将程序交芯片厂代为写入,并是一次性的,不能改写其内容。
8751与8051基本一样,但8751片内有4k的EPROM,用户可以将自己编写的程序写入单片机的EPROM中进行现场实验与应用,EPROM的改写同样需要用紫外线灯照射一定时间擦除后再写入。
在众多的51系列单片机中,要算 ATMEL 公司的AT89C51、AT89S52更实用,因他不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为 ATMEL AT89xx 做的编程器均带有这些功能。显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。而且,AT89C51、AT89S51目前的售价比8031还低,市场供应也很充足。
AT89S51、52是2003年ATMEL推出的新型品种,除了完全兼容8051外,还多了ISP编程和看门狗功能。
ATMEL公司的51系列还有AT89C2051、AT89C1051等品种,这些芯片是在AT89C51的基础上将一些功能精简掉后形成的精简版。AT89C2051取掉了P0口和P2口,内部的程序FLASH存储器也小到2K,封装形式也由51的P40脚改为20脚,相应的价格也低一些,特别适合在一些智能玩具,手持仪器等程序不大的电路环境下应用;AT89C1051在2051的基础上,再次精简掉了串口功能等,程序存储器再次减小到1k,当然价格也更低。
51 单片机目前已有多种型号,市场上目前供货比较足的芯片还要算ATMEL 的51、52 芯片, HYUNDAI 的GMS97 系列,WINBOND 的78e52,78e58,77e58 等。
GMS97 系列是一次性烧写,一般只有大量生产的人才买。at89c51,52 因可以很容易地解密,一般人们只用它来做实验,或者用在一些即使解了密也无关紧要的场合。89c2051 只有20 腿,体积小巧,在一些简单应用和体积有限的场合得到广泛应用。
2)PIC系列单片机
由美国Microchip公司推出的PIC单片机系列产品,首先采用了RISC结构的嵌入式微控制器,其高速度、低电压、低功耗、大电流LCD驱动能力和低价位OTP技术等都体现出单片机产业的新趋势。
现在PIC系列单片机在世界单片机市场的份额排名中已逐年升位,尤其在8位单片机市场,据称已从1990年的第20位上升到目前的第二位。PIC单片机从覆盖市场出发,已有三种(又称三层次)系列多种型号的产品问世,所以在全球都可以看到PIC单片机从电脑的外设、家电控制、电讯通信、智能仪器、汽车电子到金融电子各个领域的广泛应用。现今的PIC单片机已经是世界上最有影响力的嵌入式微控制器之一。
① PIC 8位单片机的分类
PIC 8位单片机产品共有三个系列,即基本级、中级和高级。
a基本级系列该级产品的特点是低价位,如PIC16C5X,适用于各种对成本要求严格的家电产品选用。又如PIC12C5XX是世界第一个8脚的低价位单片机,因其体积很小,完全可以应用在以前不能使用单片机的家电产品的空间。
b中级系列该级产品是PIC最丰富的品种系列。它是在基本级产品上进行了改进,并保持了很高的兼容性。外部结构也是多种的,从8引脚到68引脚的各种封装,如PIC12C6XX。该级产品其性能很高,如内部带有A/D变换器、E2PROM数据存储器、比较器输出、PWM输出、I2C和SPI等接口。PIC中级系列产品适用于各种高、中和低档的电子产品的设计中。
c高级系列该系列产品如PIC17CXX,其特点是速度快,所以适用于高速数字运算的应用场合中,加之它具备一个指令周期内(160ns)可以完成8×8(位)二进制乘法运算能力,所以可取代某些DSP产品。再有PIC17CXX具有丰富的I/O控制功能,并可外接扩展EPROM和RAM,使它成为目前8位单片机中性能最高的机种之一。所以很适用于高、中档的电子设备中使用。
上述的三层次(级)的PIC 8位单片机还具有很高的代码兼容性,用户很容易将代码从某型号转换到另一个型号中。PIC 8位单片机具有指令少、执行速度快等优点,其主要原因是PIC系列单片机在结构上与其它单片机不同。该系列单片机引入了原用于小型计算机的双总线和两级指令流水结构。这种结构与一般采用CISC(复杂指令集计算机)的单片机在结构上是有不同的。
双总线结构
具有CISC结构的单片机均在同一存储空间取指令和数据,片内只有一种总线。这种总线既要传送指令又要传送数据(如图1-a所示)。因此,它不可能同时对程序存储器和数据存储器进行访问。因与CPU直接相连的总线只有一种,要求数据和指令同时通过,显然“乱套”,这正如一个“瓶颈”,瓶内的数据和指令要一起倒出来,往往就被瓶颈卡住了。所以具有这种结构的单片机,只能先取出指令,再执行指令(在此过程中往往要取数),然后,待这条指令执行完毕,再取出另一条指令,继续执行下一条。这种结构通常称为冯•诺依曼结构,又称普林斯顿结构。
在这里PIC系列单片机采用了一种双总线结构,即所谓哈佛结构。这种结构有两种总线,即程序总线和数据总线。这两种总线可以采用不同的字长,如PIC系列单片机是八位机,所以其数据总线当然是八位。但低档、中档和高档的PIC系列机分别有12位、14位和16位的指令总线。这样,取指令时则经指令总线,取数据时则经数据总线,互不冲突。
② 两级指令流水线结构
由于PIC系列单片机采用了指令空间和数据空间分开的哈佛结构,用了两种位数不同的总线。因此,取指令和取数据有可能同时交叠进行,所以在PIC系列微控制器中取指令和执行指令就采用指令流水线结构。当第一条指令被取出后,随即进入执行阶段,这时可能会从某寄存器取数而送至另一寄存器,或从一端口向寄存器传送数等,但数据不会流经程序总线,而只是在数据总线中流动,因此,在这段时间内,程序总线有空,可以同时取出第二条指令。当第一条指令执行完毕,就可执行第二条指令,同时取出第3条指令,……如此等等。这样,除了第一条指令的取出,其余各条指令的执行和下一条指令的取出是同时进行的,使得在每个时钟周期可以获得最高效率。
在大多数微控制器中,取指令和指令执行都是顺序进行的,但在PIC单片机指令流水线结构中,取指令和执行指令在时间上是相互重叠的,所以PIC系列单片机才可能实现单周期指令。
只有涉及到改变程序计数器PC值的程序分支指令(例如GOTO、CALL)等才需要两个周期。
此外,PIC的结构特点还体现在寄存器组上,如寄存器I/O口、定时器和程序寄存器等都是采用了RAM结构形式,而且都只需要一个周期就可以完成访问和操作。而其它单片机常需要两个或两个以上的周期才能改变寄存器的内容。上述各项,就是PIC系列单片机能做到指令总数少,且大都为单周期指令的重要原因。
3)AVR系列单片机
AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reced Instruction Set CPU) 精简指令集高速8位单片机。AVR的单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。
①AVR单片机的优势及特点
a AVR单片机易于入手、便于升级、费用低廉。 单片机初学者只需一条ISP下载线,把编辑、调试通过的软件程序直接在线写入AVR单片机,即可以开发AVR单片机系列中的各种封装的器件。AVR单片机因此在业界号称“一线打天下”。 AVR程序写入是直接在电路板上进行程序修改、烧录等操作,这样便于产品升级。AVR单片机可使用ISP在线下载编程方式(即把PC机上编译好的程序写到单片机的程序存储器中),不需购买仿真器、编程器、擦抹器和芯片适配器等,即可进行所有AVR单片机的开发应用,这可节省很多开发费用。程序存储器擦写可达10000次以上,不会产生报废品。
b高速、低耗、保密。首先,AVR单片机是高速嵌入式单片机: AVR单片机具有预取指令功能,即在执行一条指令时,预先把下一条指令取进来,使得指令可以在一个时钟周期内执行。多累加器型,数据处理速度快。AVR单片机具有32个通用工作寄存器,相当于有32条立交桥,可以快速通行。中断响应速度快。AVR单片机有多个固定中断向量入口地址,可快速响应中断。AVR单片机耗能低。对于典型功耗情况,WDT关闭时为100nA,更适用于电池供电的应用设备。有的器件最低1.8 V即可工作。AVR单片机保密性能好。它具有不可破解的位加密锁Lock Bit技术,保密位单元深藏于芯片内部,无法用电子显微镜看到。
c I/O口功能强,具有A/D转换等电路。AVR单片机的I/O口是真正的I/O口,能正确反映I/O口输入/输出的真实情况。工业级产品,具有大电流(灌电流)10mA~40mA,可直接驱动可控硅SSR或继电器,节省了外围驱动器件。AVR单片机内带模拟比较器,I/O口可用作A/D转换,可组成廉价的A/D转换器。ATmega48/8/16等器件具有8路10位A/D。部分AVR单片机可组成零外设元件单片机系统,使该类单片机无外加元器件即可工作,简单方便,成本又低。AVR单片机可重设启动复位,以提高单片机工作的可靠性。有看门狗定时器实行安全保护,可防止程序走乱(飞),提高了产品的抗干扰能力。
d 有功能强大的定时器/计数器及通讯接口。定时/计数器T/C有8位和16位,可用作比较器。计数器外部中断和PWM(也可用作D/A)用于控制输出,某些型号的AVR单片机有3~4个PWM,是作电机无级调速的理想器件。AVR单片机有串行异步通讯UART接口,不占用定时器和SPI同步传输功能,因其具有高速特性,故可以工作在一般标准整数频率下,而波特率可达576K。
②AVR 8-Bit MCU的最大特点
与其它8-Bit MCU相比,AVR 8-Bit MCU最大的特点是:
• 哈佛结构,具备1MIPS / MHz的高速运行处理能力;
• 超功能精简指令集(RISC),具有32个通用工作寄存器,克服了如8051 MCU采用单一ACC进行处理造成的瓶颈现象;
• 快速的存取寄存器组、单周期指令系统,大大优化了目标代码的大小、执行效率,部分型号FLASH非常大,特别适用于使用高级语言进行开发;
• 作输出时与PIC的HI/LOW相同,可输出40mA(单一输出),作输入时可设置为三态高阻抗输入或带上拉电阻输入,具备10mA-20mA灌电流的能力;
• 片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更加稳定可靠;
• 大部分AVR片上资源丰富:带E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等;
• 大部分AVR除了有ISP功能外,还有IAP功能,方便升级或销毁应用程序。
(3)16-BIT 单片机
16 位单片机是在1983 年以后发展起来的。这类单片机的特点是:CPU是16 位的,运算速度普遍高于8 位机,有的单片机的寻址能力高达1MB,片内含有A/D 和D/A转换电路,支持高级语言。这类单片机主要用于过程控制、智能仪表、家用电器以及作为计算机外部设备的控制器等。典型产品有Intel 公司的MCS-96/98 系列、Motorola 公司的M68HC16系列、NS 公司的783××系列、TI公司的MSP430系列等等。
其中,以MSP430系列最为突出。它采用了精简指令集( RISC )结构,具有丰富的寻址方式( 7 种源操作数寻址、 4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在 8MHz 晶体驱动下指令周期为 125 ns 。这些特点保证了可编制出高效率的源程序。
在运算速度方面, MSP430 系列单片机能在 8MHz 晶体的驱动下,实现 125ns 的指令周期。 16 位的数据宽度、 125ns 的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如 FFT 等)。
MSP430 系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的备用状态时,用中断请求将它唤醒只用 6us 。
超低功耗 MSP430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行时钟方面都有其独到之处。
首先, MSP430 系列单片机的电源电压采用的是 1.8~3.6V 电压。因而可使其在 1MHz 的时钟条件下运行时, 芯片的电流会在 200~400uA 左右,时钟关断模式的最低功耗只有 0.1uA 。
其次,独特的时钟系统设计。在 MSP430 系列中有两个不同的系统时钟系统:基本时钟系统和锁频环( FLL 和 FLL+ )时钟系统或 DCO 数字振荡器时钟系统。有的使用一个晶体振荡器( 32768Hz ) , 有的使用两个晶体振荡器)。由系统时钟系统产生 CPU 和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。
由于系统运行时打开的功能模块不同,即采用不同的工作模式,芯片的功耗有着显着的不同。在系统中共有一种活动模式( AM )和五种低功耗模式( LPM0~LPM4 )。在等待方式下,耗电为 0.7uA ,在节电方式下,最低可达 0.1uA 。
系统工作稳定 上电复位后,首先由 DCOCLK 启动 CPU ,以保证程序从正确的位置开始执行,保证晶体振荡器有足够的起振及稳定时间。然后软件可设置适当的寄存器的控制位来确定最后的系统时钟频率。如果晶体振荡器在用做 CPU 时钟 MCLK 时发生故障, DCO 会自动启动,以保证系统正常工作;如果程序跑飞,可用看门狗将其复位。
丰富的片上外围模块 MSP430 系列单片机的各成员都集成了较丰富的片内外设。它们分别是看门狗( WDT )、模拟比较器 A 、定时器 A ( Timer_A )、定时器 B ( Timer_B )、串口 0 、 1 ( USART0 、 1 )、硬件乘法器、液晶驱动器、 10 位 /12 位 ADC 、 I 2 C 总线直接数据存取( DMA )、端口 O ( P0 )、端口 1~6 ( P1~P6 )、基本定时器( Basic Timer )等的一些外围模块的不同组合。其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出 A/D 转换器; 16 位定时器( Timer_A 和 Timer_B )具有捕获 / 比较功能,大量的捕获 / 比较寄存器,可用于事件计数、时序发生、 PWM 等;有的器件更具有可实现异步、同步及多址访问串行通信接口可方便的实现多机通信等应用;具有较多的 I/O 端口,最多达 6*8 条 I/O 口线; P0 、 P1 、 P2 端口能够接收外部上升沿或下降沿的中断输入; 12/14 位硬件 A/D 转换器有较高的转换速率,最高可达 200kbps ,能够满足大多数数据采集应用;能直接驱动液晶多达 160 段;实现两路的 12 位 D/A 转换;硬件 I 2 C 串行总线接口实现存储器串行扩展;以及为了增加数据传输速度,而采用直接数据传输( DMA )模块。 MSP430 系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。
方便高效的开发环境 目前 MSP430 系列有 OPT 型、 FLASH 型和 ROM 型三种类型的器件,这些器件的开发手段不同。对于 OPT 型和 ROM 型的器件是使用仿真器开发成功之后在烧写或掩膜芯片;对于 FLASH 型则有十分方便的开发调试环境,因为器件片内有 JTAG 调试接口,还有可电擦写的 FLASH 存储器,因此采用先下载程序到 FLASH 内,再在器件内通过软件控制程序的运行,由 JTAG 接口读取片内信息供设计者调试使用的方法进行开发。这种方式只需要一台 PC 机和一个 JTAG 调试器,而不需要仿真器和编程器。开发语言有汇编语言和 C 语言。
MSP430 单片机目前主要以 FLASH 型为主。
(4)32-BIT 单片机
32 位单片机的字长为32 位,是单片机的顶级产品,具有极高的运算速度。近年来,随着家用电子系统的新发展,32 位单片机的市场前景看好。
继16 位单片机出现后不久,几大公司先后推出了代表当前最高性能和技术水平的32 位单片微机系列。32 位单片机具有极高的集成度,内部采用新颖的RISC(精简指令系统计算机)结构,CPU 可与其他微控制器兼容,主频频率可达33MHz 以上,指令系统进一步优化,运算速度可动态改变,设有高级语言编译器,具有性能强大的中断控制系统、定时/事件控制系统、同步/异步通信控制系统。代表产品有Intel 公司的MCS-80960 系列、Motorola 公司的M68300 系列、Hitachi 公司的Super H(简称SH)系列等等。
这类单片机主要应用于汽车、航空航天、高级机器人、军事装备等方面。它代表着单片机发展中的高、新技术水平。
ARM在32位MCU中的主流地位是毫无疑问的。ARM公司于1991年成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术智能财产(IP)核心的处理器,即我们通常所说的ARM处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的处理器应用约占据了32位RISC微处理器75%以上的市场,ARM技术不止逐步渗入到我们生活的各个方面,我们甚至可以说,ARM于人类的生活环境中,已经是不可或缺的一环。
目前市面上常见的ARM处理器架构,可分为ARM7、ARM9以及ARM11,新推出的Cortex系列尚在进行开发验证,市面上还未有相关产品推出。ARM也是嵌入式处理器中首先推出多核心架构的厂商。
ARM首个多核心架构为ARM11 MPCore,架构于原先的ARM11处理器核心之上。ARM11核心是发布于2002年10月份,为了进一步提升效能,其管线长度扩展到8阶,处理单元则增加为预取、译码、发送、转换/MAC1、执行/MAC2、内存存取/MAC3和写入等八个单元,体系上属于ARM V6指令集架构。ARM11采用当时最先进的0.13μm制造制程,运行频率最高可达500到700MHz。如果采用90nm制程,ARM11核心的工作频率能够轻松达到1GHz以上—对于嵌入式处理器来说,这显然是个相当惊人的程度,不过显然1GHz在ARM11体系中不算是个均衡的设定,因此几乎没有厂商推出达到1GHz的ARM11架构处理器。
ARM11的逻辑核心也经过大量的改进,其中最重要的当属“静/动态组合转换的预测功能”。ARM11的执行单元包含一个64位、4种状态的地址转换缓冲,它主要用来储存最近使用过的转换地址。当采用动态转换预测机制而无法在寻址缓冲内找到正确的地址时,静态转换预测功能就会立刻接替它的位置。在实际测试中,单纯采用动态预测的准确率为88%,单纯采用静态预测机制的准确率只有77%,而ARM11的静/动态预测组合机制可实现92%的高准确率。针对高时脉速度带来功耗增加的问题,ARM11采用一项名为“IEM(Intelligent Energy Manager)”的智能电源管理技术,该技术可根据任务负荷情况动态调节处理器的电压,进而有效降低自身的功耗。这一系列改进让ARM11的功耗效能比得以继续提高,平均每MHz只需消耗0.6mW(有快取时为0.8mW)的电力,处理器的最高效能可达到660 Dhrystone MIPS,远超过上一代产品。
Ⅲ 按制造工艺分
① HMOS 工艺 高密度短沟道MOS 工艺,具有高速度、高密度的特点。
② CHMOS(或HCMOS)工艺 互补的金属氧化物的HMOS 工艺,是CMOS 和HMOS 的结合,具有高密度、高速度、低功耗的特点。Intel 公司产品型号中若带有字母“C” ,Motorola 公司产品型号中若带有字母“HC”或“L” ,通常为CHMOS 工艺。
6. PIC单片机IO口无法控制
在PIC18系列里,PORT寄存器不是用来做输出的,LAT才是用来做输出的。如LATB=0xff;
PORT寄存器是用来读取IO的状态,而LAT其实是读-修改-写操作。
如果对PORT寄存器进行写操作,只是会将你要写的数据放到IO口的锁存器中,但并不会发送到IO上。而写LAT则是先读锁存器的数据,然后像用PORT操作那样将其修改写到IO口的锁存器中,最后发送到IO引脚上。
其实,数据手册上在IO口那一章的开始就明确指出:
“每个端口有三个与其相关的寄存器”
“TRIS寄存器(数据方向)”
“PORT寄存器(读取引脚的电平)”
“LAT寄存器(输出锁存)”
玩PIC,只要你仔细阅读对应的数据手册,你不需要看其他书籍都能弄懂。而且大部分都有官方中文版。