内容简介
基于AVR Studio+WinAVR(GCC)组合环境和Proteus硬件仿真平台,精心安排了100个AVR单片机C程序设计案例。《单片机C语言程序设计实训100例:基于AVR+Proteus仿真》提供了所有案例完整的C语言源程序,各案例设计了难易适中的实训目标。
基础设计类案例涵盖AVR单片机最基本的端口编程、定时/计数器应用、中断程序设计、A/D转换、比较器程序设计、EEPROM、Flash、USART及看门狗程序设计;硬件应用类案例涉及单片机存储器扩展、接口扩展、译码、编码、驱动、光电、机电、传感器、I2C/TWI及SPI接口器件、MMC、红外等器件;综合设计类案例涉及消费类电子产品、仪器仪表及智能控制设备相关技术,相关案例涉及485及RTL8019的应用。
《单片机C语言程序设计实训100例:基于AVR+Proteus仿真》适合用作大专院校学生学习实践AVR单片机C语言程序设计技术的参考书,也可用作电子工程技术人员、单片机技术爱好者的学习参考书。
内页插图
目录
第1章 AVR单片机C语言程序设计概述1
1.1 AVR单片机简介1
1.2 AVRStudio+WinAVR开发环境安装及应用4
1.3 AVRGCC程序设计基础7
1.4 程序与数据内存访问14
1.5 I/O端口编程14
1.6 外设相关寄存器及应用16
1.7 中断服务程序31
1.8 GCC在AVR单片机应用系统开发中的优势33
第2章 Proteus操作基础35
2.1 Proteus操作界面简介35
2.2 仿真电路原理图设计37
2.3 元件选择39
2.4 仿真运行44
2.5 Proteus与AVRStudio的联合调试45
2.6 Proteus在AVR单片机应用系统开发中的优势46
第3章 基础程序设计48
3.1 闪烁的LED48
3.2 左右来回的流水灯50
3.3 花样流水灯52
3.4 LED模拟交通灯54
3.5 单只数码管循环显示0~957
3.6 8只数码管滚动显示单个数字59
3.7 8只数码管扫描显示多个不同字符61
3.8 K1~K4控制LED移位62
3.9 数码管显示4×4键盘矩阵按键65
3.10 数码管显示拨码开关编码68
3.11 继电器控制照明设备70
3.12 开关控制报警器72
3.13 按键发音74
3.14 INT0中断计数76
3.15 INT0与INT1中断计数79
3.16 TIMER0控制单只LED闪烁83
3.17 TIMER0控制流水灯85
3.18 TIMER0控制数码管扫描显示87
3.19 TIMER1控制交通指示灯90
3.20 TIMER1与TIMER2控制十字路口秒计时显示屏94
3.21 用工作于计数方式的T/C0实现100以内的脉冲或按键计数98
3.22 用定时器设计的门铃100
3.23 报警器与旋转灯103
3.24 100000s以内的计时程序106
3.25 用TIMER1输入捕获功能设计的频率计109
3.26 用工作于异步模式的T/C2控制的可调式数码管电子钟113
3.27 TIMER1定时器比较匹配中断控制音阶播放117
3.28 用TIMER1输出比较功能调节频率输出120
3.29 TIMER1控制的PWM脉宽调制器123
3.30 数码管显示两路A/D转换结果126
3.31 模拟比较器测试128
3.32 EEPROM读/写与数码管显示130
3.33 Flash程序空间中的数据访问136
3.34 单片机与PC机双向串口通信仿真141
3.35 看门狗应用147
第4章 硬件应用150
4.1 74HC138与74HC154译码器应用150
4.2 74HC595串入并出芯片应用153
4.3 用74LS148与74LS21扩展中断157
4.4 62256扩展内存实验160
4.5 用8255实现接口扩展163
4.6 可编程接口芯片8155应用168
4.7 可编程外围定时/计数器8253应用173
4.8 数码管BCD解码驱动器7447与4511应用178
4.9 8×8LED点阵屏显示数字181
4.10 8位数码管段位复用串行驱动芯片MAX6951应用183
4.11 串行共阴显示驱动器MAX7219与7221应用188
4.12 16段数码管演示193
4.13 16键解码芯片74C922应用196
4.14 1602LCD字符液晶测试程序199
4.15 1602液晶显示DS1302实时时钟205
4.16 1602液晶工作于4位模式实时显示当前时间211
4.17 2×20串行字符液晶演示214
4.18 LGM12864液晶显示程序217
4.19 PG160128A液晶图文演示226
4.20 TG126410液晶串行模式显示247
4.21 用带SPI接口的MCP23S17扩展16位通用I/O端口257
4.22 用TWI接口控制MAX6953驱动4片5×7点阵显示器262
4.23 用TWI接口控制MAX6955驱动16段数码管显示266
4.24 用DAC0832生成多种波形270
4.25 用带SPI接口的数/模转换芯片MAX515调节LED亮度273
4.26 正反转可控的直流电机276
4.27 正反转可控的步进电机279
4.28 DS18B20温度传感器测试282
4.29 SPI接口温度传感器TC72应用测试293
4.30 SHT75温、湿度传感器测试299
4.31 用SPI接口读/写AT25F1024309
4.32 用TWI接口读/写24C04318
4.33 MPX4250压力传感器测试326
4.34 MMC存储卡测试329
4.35 红外遥控发射与解码仿真340
第5章 综合设计348
5.1 多首电子音乐的选播348
5.2 电子琴仿真353
5.3 普通电话机拨号键盘应用357
5.4 1602LCD显示仿手机键盘按键字符363
5.5 数码管模拟显示乘法口诀369
5.6 用DS1302与数码管设计的可调电子钟372
5.7 用DS1302与LGM12864设计的可调式中文电子日历380
5.8 用PG12864LCD设计的指针式电子钟393
5.9 高仿真数码管电子钟401
5.10 1602LCD显示的秒表409
5.11 用DS18B20与MAX6951驱动数码管设计的温度报警器413
5.12 用1602LCD与DS18B20设计的温度报警器421
5.13 温控电机在L298驱动下改变速度与方向运行431
5.14 PG160128中文显示日期时间及带刻度显示当前温度439
5.15 液晶屏曲线显示两路A/D转换结果447
5.16 用74LS595与74LS154设计的16×16点阵屏452
5.17 用8255与74LS154设计的16×16点阵屏457
5.18 8×8LED点阵屏仿电梯数字滚动显示461
5.19 用内置EEPROM与1602液晶设计的带MD5加密的电子密码锁466
5.20 12864LCD显示24C08保存的开机画面480
5.21 12864LCD显示EPROM27C256保存的开机画面488
5.22 I2CAT24C1024×2硬字库应用491
5.23 SPI-AT25F2048硬件字库应用498
5.24 带液晶显示的红外遥控调速仿真505
5.25 能接收串口信息的带中英文硬字库的80×16点阵显示屏511
5.26 用AVR与1601LCD设计的计算器523
5.27 电子秤仿真设计531
5.28 模拟射击训练游戏537
5.29 PC机通过485远程控制单片机546
5.30 用IE访问AVR+RTL8019设计的以太网应用系统550
参考文献568
前言/序言
目前,各高校电类专业都将C语言作为专业基础课程纳入教学计划。由于C语言功能强大、便于模块化开发、所带库函数非常丰富、编写的程序易于移植,因此,它成为单片机应用系统开发最快速高效的程序设计语言。仅具有C语言基础知识但不熟悉单片机指令系统的读者也能很快掌握单片机C程序设计技术,C语言在单片机应用系统设计上的效率优势已经远远高于汇编、BASIC等开发语言。
单片机C程序设计不同于通用计算机应用程序设计,它必须针对具体的微控制器及外围电路来完成。为便于学习单片机应用程序设计和系统开发,很多公司推出了单片机实验箱、仿真器和开发板等,这些硬件设备可用于验证单片机程序、开发和调试单片机应用系统。但由于这些设备价格不菲,它们阻碍了普通读者对单片机技术的学习和研究。令人高兴的是,英国Labcenter公司推出了具有单片机系统仿真功能的Proteus软件,单片机系统开发通常是基于上位机加目标系统进行的,Proteus的出现使读者仅用一台PC在纯软件环境中完成系统设计与调试成为可能。目前Proteus支持8051、AVR、PIC等多种单片机,系统库中包含有大量的模拟、数字、光电和机电类元器件,系统还提供了多种虚拟仪器,用AVR Studio+WinAVR(GCC)开发的程序可以在用Proteus设计的仿真电路中调试和交互运行。这无疑为读者学习和提高AVR单片机C程序设计技术,为单片机应用系统高水平工程师的成长提供了理想平台。
为帮助读者快速提高AVR单片机C程序设计水平,本书基于AVR Studio+WinAVR(GCC)组合开发环境和Labcenter公司的Proteus仿真平台,精心安排了100个AVR单片机C程序设计案例,各案例同时给出了难易适中的实训目标。
前2章分别对AVRGCC程序设计和Proteus操作基础作了概述。第3章基础程序部分给出的案例涵盖AVR单片机端口编程、定时/计数器应用、A/D转换、模拟比较器程序设计、中断程序设计、EEPROM、Flash、USART及看门狗程序设计,各案例分别对相关知识和技术要点作了阐述与分析,源程序中也给出了丰富的注释信息。第4章硬件应用部分针对AVR单片机的存储器扩展、接口扩展、译码、编码、驱动、光电、机电、传感器、I2C/TWI及SPI接口器件、MMC、红外等器件给出了数十个案例,对案例中涉及的硬件技术资料亦进行了有针对性的分析,以便于读者快速理解相关代码的编写原理。第5章的案例综合应用了单片机内部资源和外部扩展硬件,通过对这些案例的独立分析研究与调试运行,读者用C语言开发AVR单片机应用系统的能力会得到大幅提升。
本书是单片机C语言程序设计实训仿真系列8051版之后的第2册。为使本书能早日与读者见面,笔者坚持挤出时间不懈耕耘。在编写过程中,刘静、张力、王魏参与了案例的调试与校稿工作,在此对他们深表感谢!本书从选题、撰稿到出版的全过程中,学院领导、学院科研处及高教研究所对本选题始终给予大力支持,并提供项目资助,教务处和信息技术系也一直关注本书的编写与进展情况,在此一并对学院和部门领导的关心与支持表示由衷感谢!
单片机C语言程序设计实训100例:基于AVR+Proteus仿真 下载 mobi epub pdf txt 电子书 格式