|
 |
| 书名:AVR高速嵌入式单片机原理与应用《修定版》 |
 |
|
作者:耿德根 宋建国 马潮 叶勇建
出版社:清华大学出版社
配盘:无盘
定价:39元
会员价:39元
|
出版日期:200210
书号:7-81077-222-8
开本:787×1092 1/16开
字数:691千字
|
|
| 内容简介 |
本书详细介绍ATMEL公司开发的AVR高速嵌入式单片机的结构;讲述AVR单片机的开发工具和集成开发环境(IDE),包括Studio调试工具、AVR单片机汇编器和单片机串行下载编程;学习指令系统时,每条指令均有实例,边学习边调试,使学习者看得见指令流向及操作结果,真正理解每条指令的功能及使用注意事项;介绍AVR系列多种单片机功能特点、实用程序设计及应用实例;作为提高篇,讲述简单易学、适用AVR单片机的高级语言BASCOMAVR及ICC AVR C编译器。
本书的每个实验应用程序都是在SLAVR开发编程实验器上,由广州天河双龙电子有限公司的科技人员和华东师范大学电子工程系(AVR实验室)师生实验通过的。源程序清单及硬件接线图、系统工作软件,可上网(http://www.sl.com.cn)下载。广州天河双龙电子有限公司还可提供图文并茂的相关工作软件和实验应用源程序的光盘,作为本书的补充。
|
| 前言 |
致 读 者
美国ATMEL公司率先将Flash存储技术应用于单片机产品中,推出了AT89系列单片机,在全球电子业内引起了巨大的反响,在中国也受到了众多用户的喜爱。在此,特向各位用户表示感谢!
继AT89系列之后,ATMEL公司又向世界发布了本书所介绍的全新配置的精简指令集(RISC)AVR(ADVANCE RISC)AT90系列单片机。ATMEL公司的步伐始终在不断向前,现在,更强的32位AT91M系列单片机也已上市。
ATMEL公司是一家跨国的专业半导体企业。总部设在美国著名的硅谷圣何塞,在美国、法国、德国、英国、马来西亚都设有大型生产厂,有十几个专门的配套和封装厂,另还在几十个国家和地区设有设计中心和办事处。其中AVR产品的设计中心就设在挪威。ATMEL以其最先进的工艺和技术生产各种存储器、可编程逻辑器件、多种系列的单片机及数十种智能卡。其中以AVR为核的几款CPU卡的性能非常具有竞争力。最新推出的AVR+FPGA+SRAM(FPSLIC--Field Programmable System Level ICs)现场可编程系统级电路,更占据业内的领先地位。ATMEL还为宇航、军事、工业及民用等许多专门用户设计生产了大量的数字、模拟、逻辑混合型专用电路(ASIC)。
ATMEL在电可擦技术上,拥有世界上最多的专利和最先进的工艺,又有制作混合电路的技术和经验,是少数可将SiGe(硅锗)技术用于RF射频通讯产品的公司之一。我们将这些特点与先进的AVR核相结合,为您提供最优配置的系列单片机。AVR系列单片机的主要特点是:程序区Flash可多次电擦写;内部含电可擦数据EEPROM存储器,可串行下载;最新、最优、最全的配置;执行速度高,指令高效率;低电压,低功耗,高驱动;程序加密性好;简便易学,开发工具廉价;型号全,适用范围广;可扩展性强,可为用户做专用芯片。最重要的还有:AVR物美价廉,雅俗共赏,生命力长久。
ATMEL公司很欢迎各位朋友选用AVR产品,愿为您的设计提供服务,也愿为您要求的专用芯片提供设计和生产。
希望这本书能给您了解和使用AVR提供方便,也希望得到您的建议和帮助。
向为本书出版作出巨大贡献的广州天河双龙有限公司的耿德根先生、北京航空航天大学的何立民教授、上海华东师范大学的马潮教授、ATMEL北京办事处的叶勇建先生、北京航空航天大学出版社等朋友,致以深深的谢意;再次向1998年为AVR出书的宋建国先生表示感谢;在此还要向ATMEL在中国的所有代理商及分销商表示感谢。
修 订 版 前 言
本书从2001年2月出版以来,已第4次印刷,台湾全华科技有限公司购本书版权出版。根据ATMEL公司AVR单片机新品种、新软件的不断推出及读者的要求,决定对本书进行修订。
对第三章"AVR单片机开发工具"作了重要修订。广州天河双龙电子有限公司的SLAVR"四合一"AVR单片机开发实验器的硬件作了改进:新版SLAVR下载插座改为DC10插座,使用编平压线技术,接插可靠;也可使用SLAVRISP并行高速下载线,对大容量器件ISP下载编程带来方便。该机工作晶振改为可插拔更换,便于用户超频、降频实验。SLAVR还可配AVR单片机组态互动监控,使学习AVR单片机的过程更加形象直观、有声有色、通俗易懂。这样既充分利用了PC机的资源,又可学习工控组态,与现实社会的应用接轨。开发软件改为ATMEL AVR Studio 3.5X以上集成开发环境(IDE) ,包括:① AVR Assembler编译器; ② AVR Studio调试功能;③ AVR Prog串行、并行下载功能;④ JTAG ICE仿真;等功能。
第五章5.3节改为"ATmega8/8L"和5.10节改为"ATmega128/128L"新器件资料,去掉停产的 "AT90S2323/2343 " 及 "ATmega603/103"资料。
第九章AVR C语言的应用,原来的IAR C软件很好,但价格在万元以上,一般用户承受不了,不易推广;现改为ICC AVR C高级语言编译器。C编译器提供Image Craft Inc.的30天免费试用版ICC AVR demo,30天后转为2KB限止版。广州双龙电子有限公司是ICC AVR的国内独家代理,有技术支持,正版价格仅在千元左右。该软件及其升级版均可从互联网(www.imagecraft.com)上免费获得。国内将出版ICC AVR C编译器的应用专著。
本书对AVR器件的选购指南,提供ATMEL公司的最新器件资料。
对原书中的错误也作了修订。
由于我们水平有限,本书难免有错误和不当之处,望读者指正。
作者
2002年7月于广州
前 言
随着电子技术的迅猛发展,单片机更广泛地应用于军事、工业、通讯、家用电器、智能玩具、便携式智能仪表等领域,使产品功能、精度和质量大幅度提高,而电路设计更简单、故障率低、可靠性高且成本低廉。应该看到,Flash技术、在线可编程、低功耗、大规模集成是今后单片机的发展方向。
ATMEL公司是全球著名的半导体公司之一。90年代初,ATMEL率先把MCS51内核与其擅长的Flash技术相结合,推出轰动业界的AT89系列单片机。至今,ATMEL在MCS51市场上仍占据主要份额。1997年,ATMEL挪威设计中心的A先生与V先生出于市场需求考虑,充分发挥其Flash技术优势,推出全新配置的精简指令集(RISC)单片机,简称AVR。几年来,AVR单片机已形成系列产品,其ATtiny、AT90与ATmega分别对应为低、中、高档产品(高档产品含JTAG ICE仿真功能)。为了使广大用户和读者对AVR单片机的原理与应用有一个系统、详细的认识,尤其针对AT90系列,我们特意编写了这本书。
一、 AVR AT90S系列单片机的优点
(1) 价格低廉的、可擦写1 000次以上的、16(字)位指令(程序存储器数据为16位,即XXXX×16;也可理解为8位,即2×XXXX×8)。因采用了Flash技术,不再有报废品产生。数据存储器为8位,AVR还是属于8位单片机。
(2) 高速度(50ns)、低功耗(μA)!具有Sleep(休眠)功能及CMOS技术,每一指令执行速度可达50ns(20MHz),而耗电则在1~2.5mA间(典型功耗,WDT关闭时为100nA)。AVR运用Harward结构概念(具有预取指令功能),即对程序和数据存储带有不同的存储器和总线。当执行某一指令时,下一指令被预先从程序存储器中取出,这使得指令可以在每一个时钟周期内被执行。
(3) 高度保密(LOCK)!保密位在芯片底部,无法用设备看到。可多次烧写的Flash且具有多重密码保护锁死(LOCK)功能,因此可低价快速完成产品商品化,并可多次更改程序(产品升级)而不必浪费IC或电路板,大大提高产品质量及竞争力。
(4) 工业级(WDT)产品!具有大电流(灌电流)10~20mA或40mA(单一输出),可直接驱动SSR或继电器;有看门狗定时器(WDT),安全保护,防止程序走飞,提高产品的抗干扰能力。
(5) 超功能精简指令!具有32个通用工作寄存器(相当于8051中的32个累加器,克服了单一累加器数据处理造成的瓶颈现象)及128B~4KB个SRAM,可灵活使用指令运算,并可用功能很强的C语言编程,易学、易写、易移植。
(6) 程序写入器件可以并行写入(用万用编程器或并行高速下载),也可串行在线下载(ISP)擦写。也就是说不必将IC拆下拿到万用编程器上烧录,而可直接在电路板上进行程序修改、烧录等操作。方便产品升级,尤其是SMD封装,更利于产品微型化。
(7) 并行I/O口输入/输出特性与PIC的HI/LOW输出及三态高阻抗HIZ输入类同外,也可设定类同8051系列内部拉高电阻作输入端的功能,便于各种应用特性的所需(多功能I/O口)。AVR是真正的I/O口,能正确反映I/O口的输入/输出真实情况。
(8) 单片机内有模拟比较器,I/O口可作A/D转换用,可组成廉价的A/D转换器。
(9) 像8051一样,有多个固定中断向量入口地址,可快速响应。
(10) 像PIC一样,可重设启动复位。AVR AT90S系列也有内部电源开关启动计数器,可将低电平复位(RESET)直接接到VCC端。当电源开时,由于利用内部的RC看门狗定时器,可延迟MCU启动执行程序。这种延时使I/O口稳定后执行程序,以提高单片机工作可靠性,同时可节省外加复位延时电路。
(11) 具有休眠省电功能(POWER DOWN)及闲置(IDLE)低功耗功能。
(12) AT90S1200等部分AVR器件具有内部RC振荡器--1MHz的工作频率,使该类单片机无需外加元器件即可工作,可谓简单方便。
(13) 计数器/定时器、C/T有8位和16位,可作比较器;计数器外部中断和PWM(也可当D/A)用于控制输出。
(14) 有串行异步通讯UART,不占用定时器和SPI传输功能;因其高速故可以工作在一般标准整数频率,而波特率可达576 000。
(15) AT90S4414及AT90S8515具有可扩展外部数据存储器达64KB。它们的引脚排列及功能与8051相似,即可替代8051系列单片机(8751/8752)的应用系统。当然,还在硬件、软件上带来很多优点(如WDT看门狗,模拟比较器作A/D,PWM作D/A等)。
(16) 工作电压范围宽(2.7~6.0V),电源抗干扰性能强。
(17) 有多通道10位A/D及实时时钟RTC。具有8路10位A/D器件的有AT90S4434/8535;具有6路10位A/D器件的有AT90S2333/4433。ATmega103(L)单片机更有Flash 128KB,EEPROM 4KB,RAM 4KB,I/O端口48个,中断源16个,外部中断8个,SPI 1个,UART 1个,8位定时器2个,16位定时器1个,PWM(D/A)4个;还有看门狗定时器、实时时钟RTC、模拟比较器,8路10位A/D,可在线编程ISP,工作电压为2.7~5.5V。
(18) AVR由Flash存储器构成,并具有较大容量、可擦写100 000次的EEPROM,对掉电后数据的保存带来方便,来电后能记住掉电时的工作状态。
(19) 从高级语言C代码,看各种单片机性能比较(见表0.1)
/* 一个小C函数
/* Return the maximum value of a table of 16 integers */
int max(int *array)
{
char a;
int maximum=-32768;
for(a=0;a<16;a++)
if(array[a]>maximum)
maximum=array[a];
return(maximum);
}
AVR 汇编输出:字节数--46 B,执行时间--335周期。
80C51 汇编输出:字节数--112 B,执行时间--9 384周期。
68HC11 汇编输出:字节数--57 B,执行时间--5 244周期。
PIC16C74 汇编输出:字节数--87 B,执行时间--2 492周期。
AT90S8515 8MHz/80C51 24MHz/68HC11A8 12MHz/PIC16C74 20MHz。
表0.1从C代码比较各种单片机性能〖〗字节数/B〖〗执行时间/μs〖〗耗电/mA〖〗功耗/s·(mW)-1AT90S8515〖〗46(1)〖〗42(1)〖〗11(1)〖〗434(1)80C51〖〗112(2.4)〖〗391(9)〖〗16(1.5)〖〗32(0.07)68HC11A8〖〗57(1.2)〖〗437(10)〖〗27(2.5)〖〗17(0.04)PIC16C74〖〗87(1.9)〖〗125(3)〖〗13.5(1.2)〖〗119(0.27)
从上述得出的结论为: 8MHz AVR等于224MHz 80C51。
二、 AVR的2种开发工具
1. ICE200
ICE200采用AVR专用仿真CPU与监控CPU独立设计的方案,充分提供各种调试手段,真实再现被仿AVR的各种特性。它可仿真AVR的器件有ATtiny10/11/12(V/L)、AT90S1200/2313、AT90(L)S2333/4433、AT90S4414/8515、AT90(L)S4434/8535。由于仿真器的电源不对外,所以ICE200也支持低电压器件。ICE200的仿真软件最新版为STUDIO 3.X,在支持以上11种AVR以外,还可模拟其它AVR器件的运行,支持汇编及C高级语言。其中汇编编译器免费提供,C编译器只提供Image Craft Inc.的30天免费试用版Icc AVR demo。该软件及其升级版均可从互联网(www.imagecraft.com)上免费获得。
ICE200包括一个仿真器主板、一个POD板(AtadapEM04,有仿真CPU)、五块适配器板(适合DIP8/20/28/40封装AVR CPU)、一块诊断保护板(ATadap4000)、两根柔性印刷电缆、一根9针串行通讯电缆、一个9V直流电源(赠送)、一份工作光盘(含ICE200中文使用手册)、一份ICE200简介。
广州市天河双龙电子有限公司为了使AVR单片机在我国迅速得到应用,引进美国原装AVR实时在线仿真器ICE200及Icc AVR C编译器,推广价定位在国人能承受的价位。
2. SLAVR
经济普及型"四合一"AVR串行下载开发实验器SLAVR,等于AVR编程器+模拟仿真器+实验器+科研样机。它的硬件采用模块化设计,便于用户灵活组成科研项目所需的各种硬件结构。硬件有:RS232通信接口;串行下载监控;DIP8/20/28/40通用锁紧插座,DIP40端口用短路块连接作输出,用LED发光二极管显示器件引脚高低电平,也可用短路块断开,作输入或其它用途;6位LED数码管作显示;2×16点阵LCD液晶显示器;17键的键盘;改进版SLAVR+,增加PC机键盘接口及对AT89S开发实验;模拟比较输入电路;音响电路;复位电路;模拟电压输入电路等;随机附120mm×170mm万通实验板及一片AT90S8515器件。
SLAVR适用于所有具有串行下载编程功能的AVR单片机,用户板上的AVR器件无需拆下即可编程,同时还可作AVR单片机的I/O口、A/D、D/A、LED、LCD、键盘输入、步进电机控制、音频输出、模拟比较等开发实验;提供功能强大的WIN版汇编级编译器WAVRASM、模拟仿真调试软件AVR Studio3.X及串行下载软件AVR PROG,同时也提供限制版的C(IAR、ICC)编译器、限2KB的BASCOMAVR编译器;对初学AVR单片机的设计者,可暂时节省购买较昂贵的实时仿真器及万用编程器的费用。
SLAVR开发实验器提供了几十个实用实验程序,用户也可改变硬件接口、修改程序,实现源程序的其它功能。这对大专院校学生发挥其创造性思维及培养其动手能力特别有用,可改变我国传统教育下的"高分低能"的弊病。该开发实验器也可当作科研样机使用。
SLAVR开发实验器是由广州天河双龙电子有限公司开发出的。本书的每个实验应用程序都是在SLAVR开发编程实验器上,由广州天河双龙电子有限公司的科技人员和华东师范大学电子工程系(ATMEL实验室)师生实验通过的。源程序清单及硬件接线图、系统工作软件,可上网(http://www.sl.com.cn)下载。广州天河双龙电子有限公司还可提供图文并茂的相关工作软件和实验应用源程序的光盘本书配套光盘的邮购方法
邮购地址:(邮编510630)广州天河路561号新赛格电子城331室
邮购费:20元(平寄)/30元(特快专递)
联系人:耿德根(电话 02087578852Email: SLLG@sl.com.cn),作为本书的补充。
SLAVR现在还具有单片机组态开发功能,可以生动、形象、直观地了解单片机I/O口基本功能、I/O口的扩展功能及单片机组态开发的复杂应用。
SLAVR还可利用宽带网做ISP下载编程实验。
SLMEGA高档开发实验器,可开发ATmega103/128单片机。
本书共分九章。第一章ATMEL单片机简介;第二章介绍AVR单片机系统结构;第三章介绍AVR单片机开发工具;第四章介绍AVR单片机指令系统;第五章介绍AVR 单片机AT90系列;第六章介绍实用程序设计;第七章介绍AVR单片机的应用;第八章介绍BASCOMAVR的应用;第九章介绍AVR C语言的应用。附录简单介绍AT89、AT94K系列单片机和指令集综合。书后附有ATMEL公司的产品目录、公司代表处及购买SLAVR的优惠证。
本书由耿德根主编。耿德根编写第三、六、七、九章,并对第四章每条指令用程序调试方法验证指令功能;宋建国编写第一、二、四章;叶勇建编写第五章;马潮编写第八章。本书承蒙何立民教授的关心和支持,在审校中得到了王小青副总编等的大力支持,在录入、校稿、实验等方面得到了耿陆卫、沈延红、周惠忠、葛仁春、钟楚洪、覃辉等同志的大力协助;ATMEL公司提供全部技术资料、广州天河双龙电子有限公司提供实验设备、华东师范大学电子工程系(ATMEL实验室)等给予多方面的帮助,在此一并致谢!
编者
2000年12月于广州
|
| 目录 |
第一章ATMEL单片机简介
1.1ATMEL公司产品的特点1
1.2AT90系列单片机简介2
1.3AT91M系列单片机简介2
第二章AVR单片机系统结构
2.1AVR单片机总体结构4
2.2AVR单片机中央处理器CPU6
2.2.1结构概述7
2.2.2通用寄存器堆9
2.2.3X、Y、Z寄存器9
2.2.4ALU运算逻辑单元9
2.3AVR单片机存储器组织10
2.3.1可下载的Flash程序存储器10
2.3.2内部和外部的SRAM数据存储器10
2.3.3EEPROM数据存储器11
2.3.4存储器访问和指令执行时序11
2.3.5I/O存储器13
2.4AVR单片机系统复位16
2.4.1复位源17
2.4.2加电复位18
2.4.3外部复位19
2.4.4看门狗复位19
2.5AVR单片机中断系统20
2.5.1中断处理20
2.5.2外部中断23
2.5.3中断应答时间23
2.5.4MCU控制寄存器 MCUCR23
2.6AVR单片机的省电方式24
2.6.1休眠状态24
2.6.2空闲模式24
2.6.3掉电模式25
2.7AVR单片机定时器/计数器25
2.7.1定时器/计数器预定比例器25
2.7.28位定时器/计数器025
2.7.316位定时器/计数器127
2.7.4看门狗定时器33
2.8AVR单片机EEPROM读/写访问34
2.9AVR单片机串行接口35
2.9.1同步串行接口 SPI35
2.9.2通用串行接口 UART40
2.10AVR单片机模拟比较器45
2.10.1模拟比较器45
2.10.2模拟比较器控制和状态寄存器ACSR46
2.11AVR单片机I/O端口47
2.11.1端口A47
2.11.2端口 B48
2.11.3端口 C54
2.11.4端口 D55
2.12AVR单片机存储器编程61
2.12.1编程存储器锁定位61
2.12.2熔断位61
2.12.3芯片代码61
2.12.4编程 Flash和 EEPROM61
2.12.5并行编程62
2.12.6串行下载66
2.12.7可编程特性67
第三章AVR单片机开发工具
3.1AVR实时在线仿真器ICE20069
3.2JTAG ICE仿真器69
3.3AVR嵌入式单片机开发下载实验器SLAVR70
3.4AVR集成开发环境(IDE)75
3.4.1AVR Assembler编译器75
3.4.2AVR Studio77
3.4.3AVR Prog78
3.5SLAVR系列组态开发实验系统79
3.6SLAVR*.ASM源文件说明81
第四章AVR单片机指令系统
4.1指令格式84
4.1.1汇编指令84
4.1.2汇编器伪指令84
4.1.3表达式87
4.2寻址方式89
4.3数据操作和指令类型92
4.3.1数据操作92
4.3.2指令类型92
4.3.3指令集名词92
4.4算术和逻辑指令93
4.4.1加法指令93
4.4.2减法指令97
4.4.3乘法指令101
4.4.4取反码指令101
4.4.5取补指令102
4.4.6比较指令103
4.4.7逻辑与指令105
4.4.8逻辑或指令107
4.4.9逻辑异或指令110
4.5转移指令111
4.5.1无条件转移指令111
4.5.2条件转移指令114
4.6数据传送指令135
4.6.1直接数据传送指令135
4.6.2间接数据传送指令137
4.6.3从程序存储器直接取数据指令144
4.6.4I/O口数据传送指令145
4.6.5堆栈操作指令146
4.7位指令和位测试指令147
4.7.1带进位逻辑操作指令147
4.7.2位变量传送指令151
4.7.3位变量修改指令152
4.7.4其它指令161
4.8新增指令(新器件)162
4.8.1EICALL-- 延长间接调用子程序162
4.8.2EIJMP--扩展间接跳转163
4.8.3ELPM--扩展装载程序存储器164
4.8.4ESPM--扩展存储程序存储器164
4.8.5FMUL--小数乘法166
4.8.6FMULS--有符号数乘法166
4.8.7FMULSU--有符号小数和无符号小数乘法167
4.8.8MOVW--拷贝寄存器字168
4.8.9MULS--有符号数乘法169
4.8.10MULSU--有符号数与无符号数乘法169
4.8.11SPM--存储程序存储器170
第五章AVR单片机AT90系列
5.1AT90S1200172
5.1.1特点172
5.1.2描述173
5.1.3引脚配置174
5.1.4结构纵览175
5.2AT90S2313183
5.2.1特点183
5.2.2描述184
5.2.3引脚配置185
5.3ATmega8/8L185
5.3.1特点186
5.3.2描述187
5.3.3引脚配置189
5.3.4开发实验工具190
5.4AT90S2333/4433191
5.4.1特点191
5.4.2描述192
5.4.3引脚配置194
5.5AT90S4414/8515195
5.5.1特点195
5.5.2AT90S4414和AT90S8515的比较196
5.5.3引脚配置196
5.6AT90S4434/8535197
5.6.1特点197
5.6.2描述198
5.6.3AT90S4434和AT90S8535的比较198
5.6.4引脚配置200
5.6.5AVR RISC结构201
5.6.6定时器/计数器212
5.6.7看门狗定时器 217
5.6.8EEPROM读/写217
5.6.9串行外设接口SPI217
5.6.10通用串行接口UART217
5.6.11模拟比较器 217
5.6.12模数转换器218
5.6.13I/O端口223
5.7ATmega83/163228
5.7.1特点228
5.7.2描述229
5.7.3ATmega83与ATmega163的比较231
5.7.4引脚配置231
5.8ATtiny10/11/12232
5.8.1特点232
5.8.2描述233
5.8.3引脚配置235
5.9ATtiny15/L237
5.9.1特点237
5.9.2描述237
5.9.3引脚配置239
下一章
|
5 .10ATmega128/128L239
5.10.1特点240
5.10.2描述241
5.10.3引脚配置243
5.10.4开发实验工具245
5.11ATmega161246
5.11.1特点246
5.11.2描述247
5.11.3引脚配置247
5.12AVR单片机替代MCS51单片机249
第六章实用程序设计
6.1程序设计方法250
6.1.1程序设计步骤250
6.1.2程序设计技术250
6.2应用程序举例251
6.2.1内部寄存器和位定义文件251
6.2.2访问内部 EEPROM254
6.2.3数据块传送254
6.2.4乘法和除法运算应用一255
6.2.5乘法和除法运算应用二255
6.2.616位运算255
6.2.7BCD运算255
6.2.8冒泡分类算法255
6.2.9设置和使用模拟比较器255
6.2.10半双工中断方式UART应用一255
6.2.11半双工中断方式UART应用二256
6.2.128位精度A/D转换器256
6.2.13装载程序存储器256
6.2.14安装和使用相同模拟比较器256
6.2.15CRC程序存储的检查256
6.2.164×4键区休眠触发方式257
6.2.17多工法驱动LED和4×4键区扫描257
6.2.18I2C总线257
6.2.19I2C工作258
6.2.20SPI软件258
6.2.21验证SLAVR实验器及AT90S1200的口功能1259
6.2.22验证SLAVR实验器及AT90S1200的口功能2259
6.2.23验证SLAVR实验器及具有DIP40封装的口功能
第七章AVR单片机的应用
7.1通用延时子程序260
7.2简单I/O口输出实验266
7.2.1SLAVR721.ASM 266
7.2.2SLAVR722.ASM267
7.2.3SLAVR723.ASM268
7.2.4SLAVR724.ASM270
7.2.5SLAVR725.ASM271
7.2.6SLAVR726.ASM272
7.2.7SLAVR727.ASM273
7.3综合程序274
7.3.1LED/LCD/键盘扫描综合程序274
7.3.2LED键盘扫描综合程序275
7.3.3在LED上实现字符8的循环移位显示程序275
7.3.4电脑放音机277
7.3.5键盘扫描程序285
7.3.6十进制计数显示286
7.3.7廉价的A/D转换器289
7.3.8高精度廉价的A/D转换器294
7.3.9星星灯297
7.3.10按钮猜数程序298
7.3.11汉字的输入304
7.4复杂实用程序306
7.4.110位A/D转换306
7.4.2步进电机控制程序309
7.4.3测脉冲宽度312
7.4.4LCD显示8字循环318
7.4.5LED电脑时钟324
7.4.6测频率330
7.4.7测转速332
7.4.8AT90S8535的A/D转换334
第八章BASCOMAVR的应用
8.1基于高级语言BASCOMAVR的单片机开发平台340
8.2BASCOMAVR软件平台的安装与使用341
8.3AVR I/O口的应用345
8.3.1LED发光二极管的控制345
8.3.2简易手控广告灯346
8.3.3简易电脑音乐放音机347
8.4LCD显示器349
8.4.1标准LCD显示器的应用349
8.4.2简单游戏机--按钮猜数351
8.5串口通信UART352
8.5.1AVR系统与PC的简易通信353
8.5.2PC控制的简易广告灯354
8.6单总线接口和温度计356
8.7I2C总线接口和简易IC卡读写器359
第九章ICC AVR C编译器的使用
9.1ICC AVR的概述365
9.1.1介绍ImageCraft的ICC AVR365
9.1.2ICC AVR中的文件类型及其扩展名365
9.1.3附注和扩充366
9.2ImageCraft的ICC AVR编译器安装367
9.2.1安装SETUP.EXE程序367
9.2.2对安装完成的软件进行注册367
9.3ICC AVR导游368
9.3.1起步368
9.3.2C程序的剖析369
9.4ICC AVR的IDE环境370
9.4.1编译一个单独的文件370
9.4.2创建一个新的工程370
9.4.3工程管理371
9.4.4编辑窗口371
9.4.5应用构筑向导371
9.4.6状态窗口371
9.4.7终端仿真371
9.5C库函数与启动文件372
9.5.1启动文件372
9.5.2常用库函数372
9.5.3字符类型库373
9.5.4浮点运算库374
9.5.5标准输入/输出库375
9.5.6标准库和内存分配函数376
9.5.7字符串函数377
9.5.8变量参数函数379
9.5.9堆栈检查函数379
9.6AVR硬件访问的编程380
9.6.1访问AVR的底层硬件380
9.6.2位操作380
9.6.3程序存储器和常量数据381
9.6.4字符串382
9.6.5堆栈383
9.6.6在线汇编383
9.6.7I/O寄存器384
9.6.8绝对内存地址384
9.6.9C任务385
9.6.10中断操作386
9.6.11访问UART387
9.6.12访问EEPROM387
9.6.13访问SPI388
9.6.14相对转移/调用的地址范围388
9.6.15C的运行结构388
9.6.16汇编界面和调用规则389
9.6.17函数返回非整型值390
9.6.18程序和数据区的使用390
9.6.19编程区域391
9.6.20调试391
9.7应用举例*392
9.7.1读/写口392
9.7.2延时函数392
9.7.3读/写EEPROM392
9.7.4AVR的PB口变速移位393
9.7.5音符声程序393
9.7.68字循环移位显示程序394
9.7.7锯齿波程序395
9.7.8正三角波程序396
9.7.9梯形波程序396
附录1AT89系列单片机简介398
附录2AT94K系列现场可编程系统标准集成电路401
附录3指令集综合404
附录4AVR单片机选型表408
参 考 文 献412 |
|
|
|