微信扫一扫,移动浏览光盘
简介
本书在介绍AVR单片机系统结构﹑运行原理和指令系统的基础上,给出众多实用程序的设计和使用方法并提供详细程序清单。它们有的结合AVR单片机的先进性和特点,如脉宽调制(PWM)输出,看门狗定时器,休眠模式(低功耗)的应用,片内A/D转换器(8535)的使用,异、同步串口通信,软件DAA等;有的属于对传统程序的优化,如对简易键盘LED显示管理,精确定时及对重装时间常数的修正,模拟半双工口,断电保护,带循环冗余检测(CRC)的异步串口通信,多机通信,定点、浮点运算以及并、串行时钟日历芯片和串行测温器件应用等。主要程序都附有流程图,所有程序都列出清单并带详细注释,且配备光盘。
本书还总结了对一般嵌入式系统应用程序都适用的程序设计和优化方法。书中提供了嵌入式系统完整的软件设计实例。
牐牨臼槌绦蛩渲饕针对8515/8535单片机设计,但对升级型或高档的MEGA系列机,以及大部分低档机也是适用的。
牐牨臼榭勺魑嵌入式系统应用工程技术人员的设计参考书,或作为大专院校的教学参考书。
更多>>
目录
第1章 avr单片机硬件结构和运行原理
1.1 avr单片机的内部结构3
1.2 存储器组织5
1.3 定时器/计数器9
1.4 at90s8515/8535单片机的i/o口23
1.5 中断系统26
1.6 复位系统34
1.7 at90s8535单片机片内模数转换器36
1.8 同步串行口spi40
1.9 异步串行口uart46
1.10 模拟比较器53
1.11 看门狗55
1.12 eeprom的读/写58
1.13 休眠方式60
第2章 avr单片机指令系统
2.1 avr单片机汇编器编程规定62
2.1.1 伪指令62
2.1.2 表达式65
2.2 操作数及指令所涉及的对象67
2.2.1 状态寄存器sreg67
.2.2.2 执行指令对标志位的影响68
2.2.3 操作数寄存器和操作数69
2.2.4 堆栈69
2.3 寻址方式69
2.4 算术和逻辑运算指令72
2.4.1 加法指令73
2.4.2 减法指令75
2.4.3 取反指令77
2.4.4 取补指令77
2.4.5 比较指令77
2.4.6 逻辑与指令78
2.4.7 逻辑或指令79
2.4.8 逻辑异或指令80
2.5 转移指令80
2.5.1 无条件转移指令82
2.5.2 条件转移指令82
2.6 数据传输指令90
2.6.1 直接寻址数据传输指令92
2.6.2 间接寻址传输指令92
2.6.3 i/o口数据传送94
2.6.4 堆栈操作指令94
2.7 位操作及其他指令95
2.7.1 移位指令97
2.7.2 位操作指令98
2.7.3 修改标志位指令98
2.7.4 i/o寄存器操作指令100
2.7.5 其他指令101
第3章 定点运算和定点数制转换
3.1 软件daa的实现方法102
3.1.1 实现加法daa功能子程序addaa和lsdaa的设计方法103
3.1.2 实现减法daa功能子程序sudaa的设计方法104
3.1.3 实现右移daa功能子程序rsdaa的设计方法105
3.2 定点运算子程序105
3.2.1 多字节压缩bcd码加法子程序adbcd4和adbcd105
3.2.2 多字节压缩bcd码减法子程序subcd4和subcd106
3.2.3 乘法子程序mul16107
3.2.4 带舍入功能的乘法子程序mul165108
3.2.5 整数除法子程序div16108
3.2.6 将最后余数舍入处理的除法子程序div165109
3.2.7 商为规格化浮点数的除法子程序div16f109
3.2.8 整数除法子程序div24和div40109
3.2.9 整数开方子程序intsqr112
3.3 定点数制转换子程序114
第4章 avr实用程序
4.1 查表(子)程序120
4.1.1 线性内插计算子程序cheta120
4.1.2 功能数据表格项目浏览、查找、修改程序127
4.2 eeprom读/写子程序137
4.2.1 eeprom读出子程序reep137
4.2.2 eeprom写入子程序weep138
4.3 输入输出子程序139
4.3.1 时钟日历芯片oki msm 62×42×的读/写子程序139
4.3.2 显示保护程序dsprv143
4.3.3 键处理程序dealky145
4.3.4 计算键值——led显示管理子程序dspa和dspy148
4.3.5 键入数字序列左移处理子程序lsdd8155
4.3.6 双键浏览、修改数据子程序kyin2158
4.3.7 通用宽行打印机检测及打印子程序lprnt163
4.3.8 步进电机控制程序167
4.4 精确定时及日历时钟走时程序(电脑钟)175
4.4.1 mcu主频4 mhz用tcnt1精确定时程序176
4.4.2 mcu主频8 mhz用tcnt1精确定时程序178
4.4.3 mcu主频4 mhz用tcnt0精确定时程序180
4.4.4 以外部时钟(32 768 hz)用t/c2定时直接产生秒号程序181
4.4.5 时钟日历走时子程序aclk182
4.5 通信程序188
4.5.1 异步串行口中断接收和发送ascii码字串程序188
4.5.2 用外部中断配合查询接收串行ascii码字串程序193
4.5.3 以定时器和输出口配合用中断方式发送ascii码字串程序200
4.5.4 以定时器和输入口配合用中断方式接收ascii码字串程序205
4.5.5 主从多机通信程序211
4.5.6 智能型rs232与rs485标准转换程序216
4.5.7 高速同步串行口通信程序218
4.5.8 模拟串行口配合74164驱动led静态显示程序221
4.6 脉宽调制(pwm)输出223
4.6.1 精确定时输出占空比1∶1秒号方波224
4.6.2 用比较匹配达到时控制输出口的方法输出pwm波形225
4.6.3 用比较匹配达到时求反输出口的方法输出pwm波形227
4.7 模数转换229
4.7.1 a/d转换和自运行的pwm输出综合程序229
4.7.2 利用模拟比较器进行a/d转换程序232
4.8 可靠性程序235
4.8.1 滑动平均子程序slpav235
4.8.2 带外部sram(不断电)的8515系统断电保护程序240
4.8.3 at90ls8535工作于掉电模式下小系统的断电保护程序249
4.8.4 循环冗余检测子程序crcst255
4.8.5 循环冗余检测演示程序259
4.9 码制转换261
4.9.1 ascii码数据综合处理子程序261
4.9.2 格雷(gray)码与二进制数相互转换子程序272
4.10 嵌入式系统软件设计方法274
4.11 嵌入式系统常用优化设计方法276
第5章 avr浮点程序库
5.1 avr浮点程序库的特点282
5.1.1 avr浮点程序库的设计特点282
5.1.2 avr浮点程序库的优点283
5.1.3 ieee浮点数格式285
5.1.4 浮点数的规格化287
5.1.5 对阶288
5.2 基本运算子程序的设计方法288
5.2.1 支持基本运算的辅助子程序288
5.2.2 浮点数比较大小子程序fpcp的设计方法289
5.2.3 浮点加法子程序fpad的设计方法290
5.2.4 浮点减法子程序fpsu的设计方法291
5.2.5 浮点乘法子程序fpmu的设计方法294
5.2.6 浮点除法子程序fpdi的设计方法297
5.2.7 浮点数模拟手算开平方子程序fpsq的设计方法300
5.2.8 浮点数牛顿迭代开平方子程序fsqr的设计方法304
5.2.9 基本运算子程序的演示程序306
5.3 函数计算子程序的设计方法308
5.3.1 函数计算子程序的设计总则309
5.3.2 函数计算子程序的辅助子程序309
5.3.3 用荷纳法计算多项式值子程序fpln1和fpln2315
5.3.4 对数函数lnx及其衍生函数子程序的设计方法317
5.3.5 指数函数exp及其衍生函数子程序的设计方法322
5.3.6 正弦函数sin x及其衍生函数子程序的设计方法327
5.3.7 反正弦函数asinx及其衍生函数子程序的设计方法330
5.3.8 函数计算子程序的演示程序336
5.3.9 阶乘子程序np的设计方法337
5.3.10 浮点数制转换338
5.4 浮点程序应用实例349
5.4.1 拟合直线程序349
5.4.2 模数转换器ad7701的应用354
附录实用程序的补充参考程序
后记
参考文献
1.1 avr单片机的内部结构3
1.2 存储器组织5
1.3 定时器/计数器9
1.4 at90s8515/8535单片机的i/o口23
1.5 中断系统26
1.6 复位系统34
1.7 at90s8535单片机片内模数转换器36
1.8 同步串行口spi40
1.9 异步串行口uart46
1.10 模拟比较器53
1.11 看门狗55
1.12 eeprom的读/写58
1.13 休眠方式60
第2章 avr单片机指令系统
2.1 avr单片机汇编器编程规定62
2.1.1 伪指令62
2.1.2 表达式65
2.2 操作数及指令所涉及的对象67
2.2.1 状态寄存器sreg67
.2.2.2 执行指令对标志位的影响68
2.2.3 操作数寄存器和操作数69
2.2.4 堆栈69
2.3 寻址方式69
2.4 算术和逻辑运算指令72
2.4.1 加法指令73
2.4.2 减法指令75
2.4.3 取反指令77
2.4.4 取补指令77
2.4.5 比较指令77
2.4.6 逻辑与指令78
2.4.7 逻辑或指令79
2.4.8 逻辑异或指令80
2.5 转移指令80
2.5.1 无条件转移指令82
2.5.2 条件转移指令82
2.6 数据传输指令90
2.6.1 直接寻址数据传输指令92
2.6.2 间接寻址传输指令92
2.6.3 i/o口数据传送94
2.6.4 堆栈操作指令94
2.7 位操作及其他指令95
2.7.1 移位指令97
2.7.2 位操作指令98
2.7.3 修改标志位指令98
2.7.4 i/o寄存器操作指令100
2.7.5 其他指令101
第3章 定点运算和定点数制转换
3.1 软件daa的实现方法102
3.1.1 实现加法daa功能子程序addaa和lsdaa的设计方法103
3.1.2 实现减法daa功能子程序sudaa的设计方法104
3.1.3 实现右移daa功能子程序rsdaa的设计方法105
3.2 定点运算子程序105
3.2.1 多字节压缩bcd码加法子程序adbcd4和adbcd105
3.2.2 多字节压缩bcd码减法子程序subcd4和subcd106
3.2.3 乘法子程序mul16107
3.2.4 带舍入功能的乘法子程序mul165108
3.2.5 整数除法子程序div16108
3.2.6 将最后余数舍入处理的除法子程序div165109
3.2.7 商为规格化浮点数的除法子程序div16f109
3.2.8 整数除法子程序div24和div40109
3.2.9 整数开方子程序intsqr112
3.3 定点数制转换子程序114
第4章 avr实用程序
4.1 查表(子)程序120
4.1.1 线性内插计算子程序cheta120
4.1.2 功能数据表格项目浏览、查找、修改程序127
4.2 eeprom读/写子程序137
4.2.1 eeprom读出子程序reep137
4.2.2 eeprom写入子程序weep138
4.3 输入输出子程序139
4.3.1 时钟日历芯片oki msm 62×42×的读/写子程序139
4.3.2 显示保护程序dsprv143
4.3.3 键处理程序dealky145
4.3.4 计算键值——led显示管理子程序dspa和dspy148
4.3.5 键入数字序列左移处理子程序lsdd8155
4.3.6 双键浏览、修改数据子程序kyin2158
4.3.7 通用宽行打印机检测及打印子程序lprnt163
4.3.8 步进电机控制程序167
4.4 精确定时及日历时钟走时程序(电脑钟)175
4.4.1 mcu主频4 mhz用tcnt1精确定时程序176
4.4.2 mcu主频8 mhz用tcnt1精确定时程序178
4.4.3 mcu主频4 mhz用tcnt0精确定时程序180
4.4.4 以外部时钟(32 768 hz)用t/c2定时直接产生秒号程序181
4.4.5 时钟日历走时子程序aclk182
4.5 通信程序188
4.5.1 异步串行口中断接收和发送ascii码字串程序188
4.5.2 用外部中断配合查询接收串行ascii码字串程序193
4.5.3 以定时器和输出口配合用中断方式发送ascii码字串程序200
4.5.4 以定时器和输入口配合用中断方式接收ascii码字串程序205
4.5.5 主从多机通信程序211
4.5.6 智能型rs232与rs485标准转换程序216
4.5.7 高速同步串行口通信程序218
4.5.8 模拟串行口配合74164驱动led静态显示程序221
4.6 脉宽调制(pwm)输出223
4.6.1 精确定时输出占空比1∶1秒号方波224
4.6.2 用比较匹配达到时控制输出口的方法输出pwm波形225
4.6.3 用比较匹配达到时求反输出口的方法输出pwm波形227
4.7 模数转换229
4.7.1 a/d转换和自运行的pwm输出综合程序229
4.7.2 利用模拟比较器进行a/d转换程序232
4.8 可靠性程序235
4.8.1 滑动平均子程序slpav235
4.8.2 带外部sram(不断电)的8515系统断电保护程序240
4.8.3 at90ls8535工作于掉电模式下小系统的断电保护程序249
4.8.4 循环冗余检测子程序crcst255
4.8.5 循环冗余检测演示程序259
4.9 码制转换261
4.9.1 ascii码数据综合处理子程序261
4.9.2 格雷(gray)码与二进制数相互转换子程序272
4.10 嵌入式系统软件设计方法274
4.11 嵌入式系统常用优化设计方法276
第5章 avr浮点程序库
5.1 avr浮点程序库的特点282
5.1.1 avr浮点程序库的设计特点282
5.1.2 avr浮点程序库的优点283
5.1.3 ieee浮点数格式285
5.1.4 浮点数的规格化287
5.1.5 对阶288
5.2 基本运算子程序的设计方法288
5.2.1 支持基本运算的辅助子程序288
5.2.2 浮点数比较大小子程序fpcp的设计方法289
5.2.3 浮点加法子程序fpad的设计方法290
5.2.4 浮点减法子程序fpsu的设计方法291
5.2.5 浮点乘法子程序fpmu的设计方法294
5.2.6 浮点除法子程序fpdi的设计方法297
5.2.7 浮点数模拟手算开平方子程序fpsq的设计方法300
5.2.8 浮点数牛顿迭代开平方子程序fsqr的设计方法304
5.2.9 基本运算子程序的演示程序306
5.3 函数计算子程序的设计方法308
5.3.1 函数计算子程序的设计总则309
5.3.2 函数计算子程序的辅助子程序309
5.3.3 用荷纳法计算多项式值子程序fpln1和fpln2315
5.3.4 对数函数lnx及其衍生函数子程序的设计方法317
5.3.5 指数函数exp及其衍生函数子程序的设计方法322
5.3.6 正弦函数sin x及其衍生函数子程序的设计方法327
5.3.7 反正弦函数asinx及其衍生函数子程序的设计方法330
5.3.8 函数计算子程序的演示程序336
5.3.9 阶乘子程序np的设计方法337
5.3.10 浮点数制转换338
5.4 浮点程序应用实例349
5.4.1 拟合直线程序349
5.4.2 模数转换器ad7701的应用354
附录实用程序的补充参考程序
后记
参考文献
AVR单片机实用程序设计[电子资源.图书]
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!