㈠ 80C51单片机原理、开发与应用实例的目录
前言
第1章绪论
1.1单片机的发展
1.280C51单片机分类
1.3单片机应用领域和发展趋势
1.3.1单片机的应用领域
1.3.2单片机的发展趋势
第2章80C51单片机硬件结构和原理
2.180C51的基本结构
2.1.180C51的基本结构框图
2.1.2芯片的内部结构特点
2.280C51的引脚及其功能
2.2.1电源引脚Vcc和Vss
2.2.2时钟电路引脚XTALl和XTAL2
2.2.3控制信号引脚ALE、PSEN、EA和RST
2.2.4输入/输出引脚
2.380C51CPU结构和时序
2.3.1运算器
2.3.2控制器
2.3.380C51时钟系统
2.3.4CPU时序
2.4存储器结构和地址空间分配
2.4.1程序存储器地址空间分配
2.4.2数据存储器地址空间分配
2.580C51工作方式
2.5.1复位方式
2.5.2程序执行方式
2.5.3节电工作方式
2.5.4掉电保护方式
第3章80C51指令系统
3.1指令与汇编语言
3.1.1指令与程序设计语言
3.1.2指令格式及系统中使用的符号意义
3.2寻址方式
3.2.1寻址方式
3.2.2寻址空间
3.3指令系统
3.3.1数据传送指令
3.3.2算术运算指令
3.3.3逻辑运算指令
3.3.4程序控制转移指令
3.3.5位操作(Bool类型)指令
第4章80C51单片机的功能资源
4.1并行I/O接口
4.1.1P0口
4.1.2P1口
4.1.3P2口
4.1.4P3口
4.2定时器/计数器
4.2.1概述
4.2.2定时器T0和T1的结构和功能
4.2.3定时器的工作方式及应用
4.2.4定时器/计数器T2
4.2.5定时器,计数器的编程和使用
4.3串行接口
4.3.1串行口结构和工作模式
4.3.2串行口的编程和举例
4.4中断系统
4.4.1中断基本概念
4.4.2中断响应及处理过程
4.4.3中断程序举例
第5章单片机C51程序设计基础
5.1程序设计语言概述
5.1.1汇编语言
5.1.2C51语言
5.2C51标识符和关键字
5.2.1标识符
5.2.2关键字
5.3C51基本数据类型和运算符
5.3.1基本数据类型
5.3.2运算符
5.4数组
5.4.1一维数组
5.4.2多维数组
5.4.3字符数组
5.5指针
5.5.1指针与地址
5.5.2指针变量的定义
5.5.3指针变量引用
5.5.4数组的指针
5.5.5函数的指针
5.5.6指针数组
5.6结构体和联合体
5.6.1结构体概念和定义
5.6.2结构体的引用
5.6.3联合体概念和定义
5.6.4联合体的引用
5.6.5枚举
5.7型定义和预处理
5.7.1类型定义
5.7.2预处理
5.8语句和程序设计基本结构
5.8.1语句
5.8.2顺序结构
5.8.3选择结构
5.8.4循环结构
5.9函数
5.9.1函数定义
5.9.2函数调用
5.9.3中断服务函数
5.9.4局部变量与全局变量
5.9.5变量的存储种类
第6章典型外围接口设计
6.1键盘与单片机接口设计
6.1.1独立式键盘
6.1.2行列式键盘
6.2显示器接口
6.2.1LED显示器
6.2.2LED显示器接口实例
6.2.3LCD显示器
6.2.4LCD显示器接口实例
6.3显示接口芯片MAX8279
6.3.18279内部结构及基本工作原理
6.3.28279引脚功能
6.3.38279工作方式
6.3.48279命令字
6.3.58279状态字
6.3.68279应用举例
6.4D/A/AD芯片与单片机接口设计
6.4.1D/A转换接口电路
6.4.2A/D转换接口电路
第7章80C51单片机系统扩展
7.180C51系统扩展概述
7.1.180C:51最小应用系统
7.1.2片外总线结构
7.1.3片选
7.1.4地址锁存
7.1.5扩展存储器时应考虑的几个问题
7.2外部存储器扩展
7.2.1程序存储器的扩展
7.2.2数据存储器的扩展
7.2.3多片存储器的扩展
7.3并行I/O接口的扩展
7.3.1简单并行I/O接口扩展
7.3.28255A可编程并行I/0接口扩展
7.4串行接口的扩展
7.4.18251串行口扩展芯片
7.4.2825l应用实例
第8章80C51单片机应用系统的抗干扰技术
8.1可靠性与抗干扰技术概述
8.1.1干扰窜入单片机系统的主要途径
8.1.2干扰形成的基本要素
8.1.3干扰的耦合方式
8.2硬件抗干扰技术
8.2.1抑制干扰源
8.2.2切断干扰传播路径
8.2.3提高敏感器件的抗干扰性能
8.2.4其他常用抗干扰措施
8.3软件抗干扰技术
8.3.1指令冗余
8.3.2软件“陷阱”
8.3.3软件“看门狗”技术
8.3.4设置程序运行标志,拦截“跑飞”程序
第9章ProteIDXP电路板设计软件
第10章KeilC51单片机开发软件入门
第11章基于80C51的计量泵流量控制系统设计
第12章80C51单片机在电液位置伺服系统上的应用
附录AMCS-51指令表
附录B
参考文献
……
㈡ 单片机c语言编程100个实例
51单片机C语言编程实例 基础知识:51单片机编程基础 单片机的外部结构: 1. DIP40双列直插; 2. P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3. 电源VCC(PIN40)和地线GND(PIN20); 4. 高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位) 5. 内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍) 6. 程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序) 7. P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务) 1. 四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2. 两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3. 一个串行通信接口;(SCON,SBUF) 4. 一个中断控制器;(IE,IP) 针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。 C语言编程基础: 1. 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3. ++var表示对变量var先增一;var—表示对变量后减一。 4. x |= 0x0f;表示为 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6. While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P1.3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_3 = 1; //给P1_3赋值1,引脚P1.3就能输出高电平VCC 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。 在某引脚输出低电平的编程方法:(比如P2.7引脚) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2.7 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P2_7 = 0; //给P2_7赋值0,引脚P2.7就能输出低电平GND 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 在某引脚输出方波编程方法:(比如P3.1引脚) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P3.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 5. { 6. P3_1 = 1; //给P3_1赋值1,引脚P3.1就能输出高电平VCC 7. P3_1 = 0; //给P3_1赋值0,引脚P3.1就能输出低电平GND 8. } //由于一直为真,所以不断输出高、低、高、低……,从而形成方波 9. } 将某引脚的输入电平取反后,从另一个引脚输出:( 比如 P0.4 = NOT( P1.1) ) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P0.4和P1.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_1 = 1; //初始化。P1.1作为输入,必须输出高电平 5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 6. { 7. if( P1_1 == 1 ) //读取P1.1,就是认为P1.1为输入,如果P1.1输入高电平VCC 8. { P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND 2 51单片机C语言编程实例 9. else //否则P1.1输入为低电平GND 10. //{ P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND 11. { P0_4 = 1; } //给P0_4赋值1,引脚P0.4就能输出高电平VCC 12. } //由于一直为真,所以不断根据P1.1的输入情况,改变P0.4的输出电平 13. } 将某端口8个引脚输入电平,低四位取反后,从另一个端口8个引脚输出:( 比如 P2 = NOT( P3 ) ) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2和P3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P3 = 0xff; //初始化。P3作为输入,必须输出高电平,同时给P3口的8个引脚输出高电平 5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 6. { //取反的方法是异或1,而不取反的方法则是异或0 7. P2 = P3^0x0f //读取P3,就是认为P3为输入,低四位异或者1,即取反,然后输出 8. } //由于一直为真,所以不断将P3取反输出到P2 9. } 注意:一个字节的8位D7、D6至D0,分别输出到P3.7、P3.6至P3.0,比如P3=0x0f,则P3.7、P3.6、P3.5、P3.4四个引脚都输出低电平,而P3.3、P3.2、P3.1、P3.0四个引脚都输出高电平。同样,输入一个端口P2,即是将P2.7、P2.6至P2.0,读入到一个字节的8位D7、D6至D0。 第一节:单数码管按键显示 单片机最小系统的硬件原理接线图: 1. 接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容0.1uF 2. 接晶体:X1(PIN18)、X2(PIN19)。注意标出晶体频率(选用12MHz),还有辅助电容30pF 3. 接复位:RES(PIN9)。接上电复位电路,以及手动复位电路,分析复位工作原理 4. 接配置:EA(PIN31)。说明原因。 发光二极的控制:单片机I/O输出 将一发光二极管LED的正极(阳极)接P1.1,LED的负极(阴极)接地GND。只要P1.1输出高电平VCC,LED就正向导通(导通时LED上的压降大于1V),有电流流过LED,至发LED发亮。实际上由于P1.1高电平输出电阻为10K,起到输出限流的作用,所以流过LED的电流小于(5V-1V)/10K = 0.4mA。只要P1.1输出低电平GND,实际小于0.3V,LED就不能导通,结果LED不亮。 开关双键的输入:输入先输出高 一个按键KEY_ON接在P1.6与GND之间,另一个按键KEY_OFF接P1.7与GND之间,按KEY_ON后LED亮,按KEY_OFF后LED灭。同时按下LED半亮,LED保持后松开键的状态,即ON亮OFF灭。 代码 1. #include <at89x52.h> 2. #define LED P1^1 //用符号LED代替P1_1 3. #define KEY_ON P1^6 //用符号KEY_ON代替P1_6 4. #define KEY_OFF P1^7 //用符号KEY_OFF代替P1_7 5. void main( void ) //单片机复位后的执行入口,void表示空,无输入参数,无返回值 6. { 7. KEY_ON = 1; //作为输入,首先输出高,接下KEY_ON,P1.6则接地为0,否则输入为1 8. KEY_OFF = 1; //作为输入,首先输出高,接下KEY_OFF,P1.7则接地为0,否则输入为1 9. While( 1 ) //永远为真,所以永远循环执行如下括号内所有语句 10. { 11. if( KEY_ON==0 ) LED=1; //是KEY_ON接下,所示P1.1输出高,LED亮 12. if( KEY_OFF==0 ) LED=0; //是KEY_OFF接下,所示P1.1输出低,LED灭 13. } //松开键后,都不给LED赋值,所以LED保持最后按键状态。 14. //同时按下时,LED不断亮灭,各占一半时间,交替频率很快,由于人眼惯性,看上去为半亮态 15. } 数码管的接法和驱动原理 一支七段数码管实际由8个发光二极管构成,其中7个组形构成数字8的七段笔画,所以称为七段数码管,而余下的1个发光二极管作为小数点。作为习惯,分别给8个发光二极管标上记号:a,b,c,d,e,f,g,h。对应8的顶上一画,按顺时针方向排,中间一画为g,小数点为h。 我们通常又将各二极与一个字节的8位对应,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相应8个发光二极管正好与单片机一个端口Pn的8个引脚连接,这样单片机就可以通过引脚输出高低电平控制8个发光二极的亮与灭,从而显示各种数字和符号;对应字节,引脚接法为:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。 如果将8个发光二极管的负极(阴极)内接在一起,作为数码管的一个引脚,这种数码管则被称为共阴数码管,共同的引脚则称为共阴极,8个正极则为段极。否则,如果是将正极(阳极)内接在一起引出的,则称为共阳数码管,共同的引脚则称为共阳极,8个负极则为段极。 以单支共阴数码管为例,可将段极接到某端口Pn,共阴极接GND,则可编写出对应十六进制码的七段码表字节数据
㈢ SAM-BAA单片机编程工具使用实例教程
SAM-BA编程工具是一款非常好用的单片机编程工具,能够利用DEBUG串口和USB接口对AT91系列单片机进行编程。接下来让我们来看一下使用实例:
SAM-BA编程工具下载地址:http://www.anxia.com/soft/14000.html
ARM9263上带的sam-ba,安装下载好。
1、双击运行安装程序,选择默认设置,安装好以后,桌面上生成如下两个图标。
2、擦除芯片并进入编程模式
打开JLINK
外壳,见到JLINK内部电路如下图所示。
版本一
版本2
使用USB线连接JLINK与PC机,以提供JLINK工作电源。
短接图中A的两个过孔约5秒。断开A位置的两个过孔的短接。然后拔掉JLINK与P
C间的USB线(注意先后顺序)。
短接图中,B处的两个过孔。
使用USB线连接JLINK与PC机,至少超过10秒后,拔掉USB线,停止给JLINK供电(说明:请确保此过程中,图中B处一直处于可靠的端接状态)。
断开图中B处的短接。
3、更新固件
双击桌面上的SAM-PROG
v2.4图标
,运行SAM-PROG
v2.4烧录软件,按下图所示进行设置。
将JLINK
V8通过USB线与PC机连接。此时,SAM-PROG
v2.4软件中的Write
Flash按钮将变为有效。(注意,先打开SAM-PROG
v2.4再连接JLINK
与PC机)。
点击Write
Flash
按钮,烧录固件,待烧录完成后,Active
Connection:将变为1。
拔掉JLINK与PC机之间的USB线。
至此,JLINK
V8的固件已经更新完毕,正常情况下,连接电脑与JLINK
V8时,JLINK
V的指示灯将闪烁,然后常绿。请参照JLINK
V8用户手册说明,使用JLINK
V8进行调试仿真。
1、安装之后,可以看到桌面上有两个执行程序的快捷方式如下图,我们需要用到的是SAM-PROG这个Flash编程软件。
2、在所需软件准备就绪之后,下面需要做就是本篇的重点了——擦除AT91SAM7S64
Flash(因为内部固件已经损坏,所以这步是必须的)然后进入编程模式,具体操作流程如下:
(1)首先找到PCB板子的Erase脚和TST脚,一般J-Link都预留出这两个重要管脚,如下图,分别给出了v8版的这两个管脚的预留位置:
3、当然如果你的PCB版跟我的不一样,我也给出了解决方案,即根据芯片AT91SAM7S64的引脚排列找到其Erase脚和TST脚,AT91SAM7S64管脚排列如下图所示:
(2)这两个重要的管脚找到之后,然后通过USB数据线连接J-Link和电脑,给J-Link供电(注意这一步小灯可能不亮,但电源已经加到J-Link板子上了);
(3)短接Erase区的两个过孔(即Erase与VDD3.3v)约5s以后,断开该连接,这时擦除完毕,最后断开USB电源,停止给J-Link供电。(注意先后顺序)
(4)短接TST区的两个过孔(即TST与VDD3.3v),然后再连接USB数据线给J-Link供电(注意顺序),约10s以后,拔掉USB电源,再断开TST区的连接,这时进入编程模式;
(5)上面成功完成之后,打开上面提到的SAM-PROG软件,运行后设置如下图,固件在我上传的附件里:
(6)J-Link通过USB线与电脑连接。此时,SAM-PROG
v2.4软件中的Write
Flash按钮将变为有效。(注意,先打开SAM-PROG
v2.4再连接J-Link)。
(7)点击Write
Flash
按钮,烧录固件,待烧录完成后,Active
Connection:将变为1,然后拔掉USB数据线即可。
下面就是见证奇迹的时刻(嘿嘿,套用下时下时髦的话),当我们再次把USB数据线与J-Link连接之后,动听的USB设备识别声音出现了,并且弹出驱动安装,我们点击自动安装即可,这样我们损坏的J-Link就起死回生了,很神奇,有木有,哈哈~
㈣ 单片机开发与典型工程项目实例详解的目 录
1.1 单片机的应用和特点 1
1.1.1 单片机的应用 1
1.1.2 主流单片机的种类及特点 3
1.2 MCS-51系列单片机的内部结构 7
1.3 MCS-51单片机的引脚功能与时序 9
1.3.1 MCS-51系列单片机引脚说明 10
1.3.2 MCS-51单片机的时序 16
1.4 MCS-51单片机的存储器组织 17
1.4.1 程序存储器 18
1.4.2 数据存储器 19
1.4.3 特殊功能寄存器 21
1.5 单片机最小系统 24
1.5.1 单片机最小系统 24
1.5.2 彩灯控制器的设计 25
1.5.3 顺序控制器的设计 27
1.6 本章小结 29 2.1 单片机C语言宏配置介绍 30
2.1.1 处理器的配置 30
2.1.2 ID区域 31
2.1.3 EEPROM数据 31
2.2 单片机数据结构 31
2.2.1 类型限定词 32
2.2.2 常数 33
2.2.3 变量 34
2.2.4 构造数据类型 38
2.2.5 函数 46
2.2.6 中断 49
2.2.7 C语言和汇编语言的嵌套使用 53
2.2.8 伪指令 54
2.3 MPLAB IDE编译器简介 57
2.3.1 MPLAB工程管理器(MPLAB Project Manager) 57
2.3.2 MPLAB文本编辑器(MPLAB Editor) 57
2.3.3 MPLAB软件仿真器(MPLAB-SIM Simulator) 58
2.3.4 MPLAB在线仿真器(MPLAB-ICE Simulator) 58
2.4 MPLAB IDE的安装和使用 58
2.4.1 MPLAB IDE的安装要求 58
2.4.2 MPLAB IDE的使用 59
2.4.3 实例应用 59
2.4.4 MPLAB IDE中的工程 62
2.4.5 MPLAB IDE工程的编译 65
2.4.6 MPLAB IDE的软件仿真 66
2.5 MCC18基础 68
2.5.1 MCC18的安装目录浏览 68
2.5.2 MCC18的语言执行流程 70
2.5.3 MCC18举例 70
2.5.4 MCC18的编译环境 72
2.5.5 MCC18和单片机的比较 73
2.6 单片机的混合开发 74
2.6.1 C51和汇编语言的性能比较 74
2.6.2 C51和汇编语言的混合编程 74
2.7 本章小结 79 3.1 单片机应用系统设计的流程 80
3.2 单片机应用系统两设计原则 82
3.2.1 硬件系统设计原则 82
3.2.2 应用软件设计原则 83
3.3 单片机的选型 83
3.3.1 单片机选型的原则 83
3.3.2 单片机选型参考 85
3.3.3 开发工具的选择 86
3.4 系统常见故障与调试 87
3.5 本章小结 88 4.1 数字滤波算法 89
4.1.1 算术平均值滤波 90
4.1.2 滑动平均值滤波 92
4.1.3 防脉冲干扰平均值滤波 93
4.1.4 中值滤波 95
4.1.5 一阶滞后滤波 96
4.2 数字PID控制算法 97
4.2.1 位置式PID控制算法 98
4.2.2 增量式PID控制算法 100
4.2.3 积分分离的PID控制算法 102
4.2.4 变速积分PID控制算法 103
4.3 本章小结 104 5.1 键盘设计的组成和分类 105
5.1.1 键盘的物理结构 106
5.1.2 键盘的组成形式 106
5.2 键盘接口的工作过程和工作方式 111
5.2.1 键盘的抖动干扰和消除方法 111
5.2.2 盘接口的工作过程 112
5.2.3 键盘的工作方式 112
5.3 键位置的判别方法 113
5.4 键盘接口设计的储存芯片和
5.4 相关协议 114
5.4.1 键盘接口设计的储存芯片 114
5.4.2 AT24CXX系列的芯片及I2C协议 114
5.4.3 A93CXX系列的芯片及SPI协议 124
5.5 键盘接口实现的工程实例 132
5.5.1 矩阵键盘接口的工程实例 132
5.5.2 矩阵式中断扫描键盘的设计 137
5.5.3 二进制编码键盘接口的工程实例 139
5.6 重点与难点 141 6.1 交通灯顺序控制 143
6.1.1 硬件系统的设计 143
6.1.2 反向器74F06 145
6.1.3 控制字 145
6.1.4 程序设计 145
6.2 设计一种基于模糊理论的单片机控制交通路口调度系统 148
6.2.1 系统的总体设计 148
6.2.2 十字路口调度系统模糊控制器的设计 149
6.2.3 电路设计 151
6.2.4 车流量检测电路 154
6.2.5 系统主程序和模糊控制程序设计 155
6.2.6 系统显示程序设计 157
6.3 重点与难点 159 7.1 显示屏显示原理及串行通信基本概念 161
7.1.1 显示屏显示原理 161
7.1.2 串行通信 163
7.1.3 阵列式LED显示屏的实现 166
7.2 显示屏硬件电路设计 166
7.2.1 硬件电路介绍 168
7.2.2 外扩数据存储器电路 170
7.3 列式LED显示屏显示程序的171
7.3.1 汉字点阵数据的提取 171
7.3.2 显示主程序 174
7.3.3 串口中断处理程序 176
7.3.4 显示驱动函数 179
7.3.5 外部存储器读写程序 181
7.3.6 串口通信程序 181
7.3.7 文字显示特效程序 182
7.4 本章小结 191 8.1 IC卡基础 192
8.1.1 IC卡的分类 192
8.1.2 IC卡的标准 194
8.2 接触型IC卡读写系统的开发 194
8.2.1 IC卡读写系统的时序 195
8.2.2 IC卡读写系统的硬件连196
8.2.3 IC卡读写系统的软件系统 197
8.3 基于SLE4442加密卡读写系统的开发 201
8.3.1 SLE4442卡的介绍 201
8.3.2 SLE4442的模式 203
8.3.3 SLE4442的操作命令 205
8.3.4 SLE4442读/写系统的软硬件设计 208
8.4 重点与难点 215 9.1 无刷直流电机控制原理 216
9.1.1 无刷直流电机的组成 217
9.1.2 无刷直流电机的工作原理 217
9.1.3 无刷直流电机的控制方法 219
9.2 无刷直流电机的工作特性 220
9.3 直流无刷电机控制的应用实现 221
9.3.1 总体设计概述 221
9.3.2 直流无刷电机控制的硬件设计 222
9.3.3 直流无刷电机控制的软件设计 224
9.3.4 无刷直流电机速度闭环控制系统 227
9.4 本章小结 230 10.1 永磁同步电机的结构与分类 231
10.2 永磁同步电机的矢量控制 232
10.3 永磁同步电机控制 236
10.3.1 控制电路设计 237
10.3.2 光电隔离电路设计 238
10.3.3 功率电路设计 239
10.4 永磁同步电机控制的软件实现 239
10.4.1 电压SVPVM的DSPIC33f软件实现 241
10.4.2 转子位置检测 243
10.4.3 AD转换模块 245
10.5 本章小结 246 11.1 汽车行驶记录仪功能介绍 247
11.2 简易汽车行驶记录仪的设计 249
11.2.1 汽车行驶记录仪的考虑因素 250
11.2.1 MSP430 251
11.2.2 车模拟信号的采集 254
11.2.4 数字信号采集电路 255
11.2.5 SST39VF160芯片介绍 257
11.3 记录仪的软件设计 257
11.3.1 软件流程图 258
11.3.2 数据存储格式 259
11.3.3 SST39VF160存储器数据读写的实现 259
11.4 数据采集的程序实现 263
11.5 本章小结 264 12.1 USB-GPIB控制器简介 265
12.1.1 认识USB 266
12.1.2 GPIB 269
12.2 USB-GPIB控制器的硬件电路设计 271
12.2.1 器件的选择 272
12.2.2 USB-GPIB控制器电路设计 278
12.3 USB-GPIB控制器的软件程序的实现 287
12.3.1 USB单片机协议控制芯片与主机(计算机)的数据交互 288
12.3.2 USB协议控制芯片与GPIB控制器的数据交互 299
12.4 USB-GPIB控制器固件的调试与固化 300
12.4.1 USB-GPIB控制器固件的调试 301
12.4.2 USB-GPIB控制器固件程序的固化 302
12.5 本章小结 303 13.1 研究抗干扰技术的重要性 304
13.2 干扰的分类 305
13.2.1 按噪声产生的原因分类 306
13.2.2 按噪声传导模式分类 306
13.2.3 按噪声波形及性质分类 307
13.3 干扰的耦合方式 308
13.4 单片机系统可靠性的设计任务与方法 310
13.4.1 单片机系统可靠性设计的任务 310
13.4.2 可靠性设计一般方法 311
13.5 本章小结 313 14.1 无源滤波器抗干扰 314
14.1.1 电容滤波器 315
14.1.2 电感滤波器 316
14.1.3 RC低通滤波器 316
14.1.4 1LC低通滤波器 318
14.1.5 低通滤波器的结构选择 319
14.1.6 低通滤波器的平衡结构与串联形式 319
14.2 有源滤波器抗干扰 321
14.2.1 一级低通有源滤波器 321
14.2.2 二级低通有源滤波器 322
14.3 去耦电路 324
14.3.1 尖峰电流的形成原理 324
14.3.2 去耦电容的配置 325
14.3.3 光电隔离 326
14.3.4 继电器隔离 328
14.3.5 变压器隔离 328
14.3.6 布线隔离 329
14.4 接地技术 330
14.5 本章小结 334 15.1 概述 335
15.2 指令冗余技术 336
15.2.1 单字节指令冗余 337
15.2.2 重要指令冗余 337
15.3 软件陷阱技术 337
15.3.1 未使用的中断向量区设置陷阱 338
15.3.2 RAM数据区中设置陷阱 338
15.3.3 未使用的EPROM数据区设置陷阱 339
15.3.4 非EPROM单片机空间设置陷阱 339
15.3.5 运行程序区设置陷阱 339
15.4 看门狗技术 339
15.4.1 硬件看门狗技术 340
15.4.2 软件看门狗技术 342
15.5 本章小结 345
㈤ 单片机的应用实例
哎,能用的实在太多了!~
哪方面都可以!
生活中:
自动开电视、关电视、自动定时开电饭锅、
自动扫地的,钟表、自动收衣架等等,甚至周星星演的那个大内密探008里,他发明用和他老婆ML时身下放的那个以老鼠做为动力的玩意,也可以用单片机实现!
工作中,说不完,各种产品的控制系统:
步进电机,实现转动、伸缩距离、角度等各方面的相对高精度可控
室温测量、湿度测量、跑步机、距离探测仪、
电压表、语音控制系统、
头晕,不知道说哪了!就这吧!
如果要搞明白,够你忙几年了
㈥ 单片机在现实生活中的应用都有哪些
手机,电视,空调,全自动洗衣机,遥控器等。
单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统。
定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
运算器
运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。
㈦ 生活中我们经常遇到单片机的例子,请你选其中的一样,描述其工作原理
【例子】:火灾报警器。
【原理】:报警器通过内部智能处理器感应离散光源、微小的烟粒和气雾来检测,一旦检测到烟雾,立刻通过一个内置的专用IC驱动电路和一个外部压电式换能器输出报警声,使人们及早得知火情,将火灾扑灭在萌芽状态。其采用低功耗 CMOS 微处理器就属于单片机。
【硬件组成】:电源、烟雾感应器、CMOS 微处理器(单片机)、烟雾报警器、蜂鸣器等。两总线制方式挂接EI系列剩余电流式电气火灾监控探测器,接收并显示火灾报警信号和剩余电流监测信息,发出声、光报警信号。
(7)单片机软件使用实例扩展阅读:
单片机的相关应用特点:
1、单片机拥有强大的控制功能,同时运行电压比较低;
2、单片机拥有简易携带等优势, 同时性价比较高。单片机主要应用于下面几种领域当中,分别是:自动化办公、机电一体化、尖端武器和国防军事领域、 航空航天领域、汽车电子设备、医用设备领域、商业营销设备、计算机通讯、家电领域、日常生活和实时控制领域等。
3、拥有良好的集成度, 单片机自身体积较小,拥有强大的控制功能,同时运行电压比较低。
㈧ 单片机应用程序的开发步骤
具体步骤如下:
1、首先,开启我们的keil软件,具体的安装步骤就不做太多的介绍了;
开启后,点击菜单栏上的Project选项,创建我们的工程,如图所示;
编译完成后,在我们的文件夹下找到.hex的文件,将其烧写到我们的芯片中即可。
㈨ 51单片机应用实例详解的介绍
51系列单片机不仅是国内用得最多的单片机之一,同时也是最适合上手学习单片机系统开发的一款单片机。《51单片机应用实例详解》主要以51系列单片机为核心控制器,从广度和深度上对其系统应用进行了梳理,通过《51单片机应用实例详解》的学习和实践,可以顺利完成多任务、多功能单片机系统的设计及开发,能对日常生活、生产中的一些测控系统进行自主设计及实施。书中丰富的实例及全面的应用讲解将能极大地开阔单片机系统设计者的思路,并为其设计提供蓝图和模块。
㈩ 单片机c语言编程100个实例
单片机属于嵌入式开发,做单片机编程的都对硬件、软件都要很熟悉,要熟练的使用汇编和c语言。如果是c语言单片机编程的话,可能会对汇编要求不是太严格,但一定得懂,不懂汇编的话,你也基本不会懂单片机的c语言中加入的一些东西。不过用c要比全用汇编开发效率高出很多。