|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
内容简介
! W7 C e# h# F- A1 A 《Atmega128单片机入门与提高》以引导读者快速掌握对ATmega128/128L单片机的编程为目的,详细介绍了涉及编程的ATmega128/128L单片机内部结构和外围接口的特点、性能及其指令系统。在此基础上,又介绍了ICCAVR 6.31A、GCCAVR、CodeVision AVR、IAR等集成开发环境编译器使用C语言的相关知识以及AVR Studio调试环境。书中穿插大量的实用程序,并在最后一章给出了许多综合实例;实例程序全部用C语言编写,且已全部在ICCAVR 6.31A开发环境上编译通过。《Atmega128单片机入门与提高》配光盘1张,包含书中全部实例程序的源代码以及一些相关的学习资料。% b8 F' m9 a' J/ t) I7 @/ F3 U
《Atmega128单片机入门与提高》适合于ATmega128单片机的初学者以及有一定单片机与嵌入式系统应用基础的电子工程技术人员阅读,也可作为高等院校电子信息、自动控制等专业教学和科研开发的参考书。
j: L" p. G3 F3 f9 y- Z: P5 m% C, {' @3 |7 G2 Q/ R
. o: [' U$ c. b' }1 S3 t) z7 M
目录 ' ]9 r+ T* L1 w+ `5 b$ Q! h
第1章 单片机概述3 t6 J4 A- x" c. R% G5 X
1.1 单片机发展概述/ G6 g* e% A( G! d
1.2 嵌入式系统与单片机
0 Z9 E$ M2 l+ _1 Z- l1.3 AVR单片机概述
( ?( C7 l- v6 k1 `# S0 q2 y1.4 AVR单片机的主要特点
& E' {6 \2 `; V% D8 H/ g1.5 AVR单片机最小系统$ f' {) G6 @ V5 D# C7 y% y' G
1.6 AVR单片机实验系统概述4 I( U/ ?; _' d9 u" ^* h
f4 l) b2 y8 [3 n第2章 ATmega128硬件结构
4 }& \" H0 A# W! @- D( R2.1 概述
v; O) N* ]7 X3 ~2.1.1 结构和主要特点' `5 `' X" N4 v, U: d( j
2.1.2 主要性能
2 h6 N7 ?$ v/ F, S) m9 n7 m" p2.1.3 封装和引脚
5 ^$ @3 h8 g, Z: k; `$ ^( _' A2.1.4 指令系统- K$ w! Q, E% }5 L
2.2 内核& t. l6 G1 z- `! |
2.2.1 结构概述
" P8 r$ d' y) S. Z W6 H: [2.2.2 微控制器mcu
* Z/ k L) z3 S( M2.2.3 指令执行时序+ D1 A* B. w( D/ _
2.2.4 复位和中断处理
+ v3 E( n; c2 S; I# i8 V2.3 存储器结构5 R# r9 A/ A t0 D! M6 M
2.3.1 系统内可编程的Flash程序存储器
$ N, S. V% D7 n/ d* [8 W/ R' S. p: |, Z2.3.2 SRAM数据存储器1 P( e' y0 W, O& o1 w2 K& @
2.3.3 I/O寄存器
2 Y" G. d l6 M- S2.4 I/O端口描述
& r! C$ ?: P- y% T! O2.4.1 作为通用数字I/O的端口
. J Q1 h3 W. J0 c4 f2.4.2 数字输入使能和睡眠模式
$ T0 _. |0 z, Z% X: u2.4.3 端口的第2功能
0 U) o) S1 q- y$ I1 i, ?) K8 | U2.5 时钟系统
! I# a1 C' m1 R! s% \) U$ X2.5.1 时钟系统和时钟分配
) A0 z0 [. @# {9 k. M2.5.2 时钟源
" f7 a; n1 B- ]; p5 x; c2.5.3 外部晶振8 g8 x3 m; `6 z# ~
2.5.4 外部低频晶振' L: D/ \) @: V' m# S+ D5 J B
2.5.5 外部RC振荡器& t$ _- f+ M+ M( I. B! k# \" O* {
2.5.6 可校准的片内RC振荡器 [, v! _8 v$ ]6 a
2.5.7 外部时钟源/ c' t( Y" f5 O8 V0 _
2.5.8 定时器/计时器振荡器
# t) u9 m: o8 F9 x+ j0 h) R2.5.9 系统时钟分频控制寄存器XDIV8 p, B* w: n) F+ Z# ]' I' r K
2.6 定时器/计数器
* g- J7 c: \% \6 J5 \, u4 n" B2.6.1 定时器/计数器预分频器: R3 ~: y8 m/ p1 G! p. v" e
2.6.2 8位定时器/计数器T/C0
: l9 |4 S h8 \5 k5 i2 N2.6.3 16位定时器/计数器$ Z) S i" c/ B( u8 T" M2 z; v
2.6.4 8位定时器/计时器T/C21 i2 d2 C) {8 {. a
2.6.5 输出比较调制器
7 v7 v/ H0 ^! b5 x7 ^; m, U2.7 中断系统! Q4 U( u+ r% i2 N. g
2.7.1 复位和中断向量表的移动5 B7 V: J/ a. P% H* [% m
2.7.2 在应用区和Boot区之间移动中断
" X z. `4 y9 n: n; \% {& c2.8 同步串行通信SPI% _( H- r$ D1 v7 t3 {- n# ^% o+ }
2.8.1 SPI接口控制与数据传输过程+ b/ L8 l' b! T3 R4 l& @; u [
2.8.2 与SPI接口相关的寄存器
: v2 I/ C- b& j' Q( [: [2.9 通用同步和异步串行接收器和转发器0 W! W# b! Q) m# Y0 q1 Q
2.9.1 概述
" S7 |6 Q& k& e+ y5 H5 ?. C- p2.9.2 串行时钟发生
$ z* n+ |+ e0 X* R. w8 V) b2.9.3 数据帧格式4 {9 s" H! s) S3 ~; N
2.9.4 USART的初始化- }5 V4 U) |2 Y) i1 w) o) p! q
2.9.5 发送数据; E8 p& o3 X. ^% G
2.9.6 数据接收) T5 M, U3 u2 Q) z* n( b
2.9.7 异步串行数据的硬件扫描检测和接收时序
- y$ P3 o( M( B* J2 |2.9.8 多处理器通信模式
8 q: B5 ~6 {8 D+ g U# [2.9.9 USART寄存器
0 ]4 S! t# Z! l# O/ z% M, X2.9.10 设置波特率与偏差
% D* h% i4 l! ~/ d8 p7 n" c2.10 TWI总线接口4 ]: x( J: j' T' e- d
2.10.1 两线串行接口总线4 P9 k0 z) N# X( ~0 R
2.10.2 TWI模块
$ g: C- q0 Q8 s4 K) T, R; r2.10.3 TWI 寄存器
! B3 I7 ]& {; F, }7 h2.10.4 使用TWI总线
9 x& h+ t' Y. n2.10.5 多主机系统和仲裁. d1 k3 }4 q. l* O0 ^) }3 d
2.11 模拟比较器
0 H% u/ n* c5 j, ?2.12 模/数转换器ADC接口
: r0 ?0 T$ x, Q# @9 P2.12.1 特点
9 t- k( P; Z0 g! X2.12.2 操作过程
- \4 k8 \1 a [" p2.12.3 启动ADC转换: i* i# x; p6 e- w
2.12.4 预分频和转换时序6 \% l4 c+ W2 i2 M' D6 ^3 d0 O* E
2.12.5 差分增益通道
7 i2 J# M4 o* V2 F: X2.12.6 输入通道和基准电源的选择
+ l* g9 d8 s D' N8 U& u4 S( }+ K, ~2.12.7 ADC噪声抑制器, U0 C8 \' j) F, E% c6 C4 j# S9 C+ o
2.12.8 ADC 转换结果
8 l# U* Q% a& A& C& a2.12.9 有关的I/O寄存器
- e/ V/ a. N; ^; H2.13 电源管理和休眠模式
) F4 k5 g: t5 ~* o. V2.13.1 MCU 控制寄存器——MCUCR" d% G, w8 ]/ l8 t G
2.13.2 功耗最小化; H7 o# g4 Q, w8 I
2.14 调试端口$ D1 n/ N/ z- R3 Y1 p4 z. e
2.14.1 JTAG接口
3 ?" _ z, h; q& k6 s" J2.14.2 JTAG在线仿真调试
8 H0 x7 G! s! w' Z2.14.3 JTAG程序下载功能
4 P. q% w- P0 p' N5 `: [! @2.14.4 JTAG边界扫描
4 V3 m! Z2 a9 Q( x2.14.5 ATmega128 边界扫描次序: [+ L& |+ x( w: M1 k; E
2.15 系统复位与看门狗
* @; \' c# [; d" b# ]+ J/ n2.15.1 复位源# y$ H$ X3 P- j$ z3 H
2.15.2 MCU控制和状态寄存器——MCUCSR8 r) M' c0 r( S; D
2.15.3 片内基准电压
9 T! A' Y, r- {( Q0 D" p2.15.4 看门狗定时器
# L/ z* [* T+ o* r- z, Y. _4 T2.16 M103模式8 ^% y; F+ J+ d& J) E4 q: @
2.16.1 ATmega103与ATmega128的兼容性; p! {2 H Z. j4 I! _
2.16.2 ATmega103兼容模式% Z5 a8 _$ n9 g& B9 D
2.17 熔丝位
% k; ~( N* H) x( K6 \2.18 引导加载及自编程# J; R J- [5 x. B* D9 ?0 _6 F
2.18.1 引导加载的过程
1 F3 Z/ B+ ]& ?: K2.18.2 相关I/O寄存器
$ O: ?' ?$ P$ c1 s! y2.18.3 Flash的自编程/ @0 B& F4 t: [$ K" E: c1 M
2.18.4 一个简单的引导程序汇编代码
& z! u, l4 ?5 p" l! K4 R2.19 数据存储器读/写访问
, |- ^& N' O3 t2.19.1 EEPROM读/写访问
& n$ m9 k3 [0 K5 [$ U2 H+ k! H2.19.2 寄存器描述6 w/ D5 h- ~2 a% h
) D) S7 m; [/ ]$ J+ g3 f& [4 X第3章 指令系统1 |# S3 C+ U. i- f1 D, l3 b
3.1 概述 q8 p# t9 v! [ W, W, R7 i q, S; r
3.1.1 指令表
: V" Q) j. A# _, G. w3.1.2 指令中使用的符号' j0 v( v) d" K! T# e/ x
3.1.3 寻址方式和寻址空间
?! g6 R4 ?% F) b( [3.2 算术和逻辑指令7 \% T/ }( p" A$ P& b
3.2.1 加法指令
. l7 u: C: Q5 T4 |/ k, u+ U3.2.2 减法指令
; W& o* X' O! L" X. D3.2.3 取反码指令* O5 D+ h5 s2 l# x$ I6 i i
3.2.4 取补指令
" J. H0 s6 n. a! A- v L3.2.5 比较指令3 S! l# c- x7 s- W' \/ x; }9 Y* z3 O- W
3.2.6 逻辑“与”指令
) J& K9 s- L: e1 a6 F3.2.7 逻辑“或”指令
+ u# |' Q i- P" S. G- j C3.2.8 逻辑“异或”指令8 w: X `. Z% n+ g, S# H% S% n; e
3.2.9 乘法指令
- z6 ^: T# a( x+ f' b3.3 跳转指令
W) L$ J! ^6 h0 F/ h- c- g& X3.3.1 无条件跳转指令
2 a+ o; {6 P0 s3.3.2 条件跳转指令
5 C6 y4 T3 n7 ~4 i: m1 \3.3.3 测试条件符合跳行跳转指令! ]4 u+ [! E: n. S& g( R
3.3.4 子程序调用和返回指令
+ x1 r8 Z8 z0 x, Y" h r3.4 数据传送指令
' i% b; K4 m1 \" O+ v6 { e3.4.1 直接数据传送指令' X) T1 y- M3 _7 A. K- d( \& C( K
3.4.2 间接数据传送指令
8 U- X5 d, g9 V; o1 g. G' k3.4.3 从程序存储器直接取数据指令: s+ C& ^" a# ^- T9 O7 R. y+ D
3.4.4 写程序存储器指令* ~$ m- w. \4 L* _1 k7 d0 t- ~
3.4.5 I/O口数据传送+ v5 b8 O6 r0 g% g4 r
3.4.6 堆栈操作指令! M1 L7 J9 n: U1 e) [% p4 x6 u
3.5 位指令和位测试指令8 Q/ Q3 ]8 [( M
3.5.1 带进位逻辑操作指令
4 @9 y/ t5 B; O* u/ ^8 {2 }3.5.2 位变量传送指令
! ~0 |2 I1 z: F3.5.3 位变量修改指令
# f" S7 @ j' r' d: j7 Q3.6 MCU控制指令. y7 j2 J6 g, j e+ A8 m
3.7 AVR汇编语言系统2 F2 ^7 K; R9 V0 W1 g3 X
3.7.1 汇编语言语句格式
' O- w% [3 g* L; f x6 s3.7.2 汇编器伪指令: F7 [7 q1 J& {6 ?: T4 w
3.7.3 表达式
# a' t+ ^4 v$ W. `3 G( ~* M5 }0 c1 o, r; Z0 \
第4章 AVR单片机开发工具9 |# \, o( u j4 D' z! G( ^
4.1 AVR Studio集成开发环境
/ M8 d" `: i2 w1 ]" z6 v& e' q4.1.1 汇编程序编译器AVR Assembler& E/ e8 O/ b: E6 \3 Z
4.1.2 仿真调试2 K& A, t0 }' f" y) F
4.1.3 程序下载$ R: ?" l! `/ U7 z
4.2 ICCAVR集成开发环境7 d$ ~2 L9 S( B3 k/ W# f
4.2.1 安装ICCAVR编译器
7 M7 e" ]$ k6 t, D. y, O- T4.2.2 ICCAVR介绍6 ` W$ z; o, W& R1 N
4.2.3 ICCAVR导游5 a9 T8 \5 K! X2 C# q6 f
4.2.4 C库函数与启动文件
* ~/ K1 {" O, \5 ?/ D3 g4.2.5 访问AVR硬件的编程; q1 ^9 D5 P, i% U$ z: M
4.3 其他主流AVR单片机开发环境
! K7 p0 {3 M; \4 _3 ~+ w0 a9 ?4.3.1 GCCAVR开发环境2 x9 V! Q& s: A1 D# m' j
4.3.2 CodeVision AVR集成开发环境
- h2 u4 L9 o: _5 G7 ]7 w+ f4.3.3 IAR集成开发环境
8 ]" ^2 W$ _3 ~) {& h4 q2 \) D/ X) A& O
第5章 ICCAVR的C语言基础
: t2 Q! H/ Z2 Y& C( o5.1 C语言概述
7 p! k, ?) [/ I. ?5.1.1 发展过程
/ |# W$ s" G _8 B+ X5.1.2 特点7 Q# C$ F; I1 m' e2 n1 _, ?4 _
5.1.3 C源程序的结构特点4 i! b- h0 w. M5 q, {% i$ M! ?& H
5.1.4 字符集
% M% I4 }" D$ |. \) A- C, T3 ^! i5.1.5 C语言词汇! Z6 C6 g, R2 o) d/ H$ m
5.2 C语言基础
6 S+ D& I) k s- z! E5.2.1 数据类型
: \6 }( Y5 W# Y t; f5.2.2 算术运算符和算术表达式
% x, ?. N& Y' ?2 ]+ v, \) _$ @5.2.3 关系运算符和表达式
% R7 L4 Q9 D# h" l" s5.2.4 逻辑运算符和表达式0 Z( C) j$ h! P3 g* O
5.3 控制语句
1 w5 M+ Q; p! [0 ~: |( X! p5.3.1 if语句0 S( e9 q1 {6 L a H$ A: W
5.3.2 条件运算符和条件表达式
, q5 H4 F I6 P" T; \5.3.3 switch语句
# U* I/ _: r% `* E( \. I5.3.4 goto语句和goto语句构成循环
. [0 q6 m2 q B0 g. M' U5.3.5 while语句
8 s/ Y& f0 Y. O3 P& U! d3 n. C5.3.6 dowhile语句3 |- D0 U, [0 ?4 y6 P
5.3.7 for语句
, O i- A" }4 N# J3 S6 `5 \. F0 d5.3.8 循环的嵌套和几种循环的比较/ c2 Y! @; }7 D' }/ A
5.3.9 break和continue语句
0 i- [/ U$ K3 Y& G- L# g6 g5.4 数组
" ]* M! V# U% r, u+ Y, {5.4.1 一维数组的定义和引用
/ o3 O: G. |+ i0 ]/ f* ]+ x5.4.2 二维数组的定义和引用8 U8 I; h3 r- I
5.4.3 字符数组# ^: p5 S/ k1 M5 i
5.5 函数
; u, e5 ~9 p1 h. {" t& O5.5.1 概述" e6 C1 H1 H! m/ z- [- p
5.5.2 函数定义的一般形式- |- U7 F4 m" Q' K4 u/ L2 S
5.5.3 函数的参数和函数的值
1 x6 ^! Q3 H8 r5.5.4 函数的调用# V3 {2 V- s2 @
5.5.5 函数的嵌套调用
6 h$ W2 @, D& F5 p5.5.6 函数的递归调用
: M" ]( s' z' o- g: I! t5.5.7 数组作为函数参数) R5 m; l T. p/ {( T; K& {6 n' j0 |
5.5.8 局部变量和全局变量
4 {3 J6 j, b# D$ l$ }5.5.9 变量的存储类别! G) ^; T' K' g( B$ c7 u1 B
5.5.10 中断服务函数
/ [2 F& f7 |" }, \6 l+ _5.6 指 针0 A! u1 s5 D) @! }, n+ K: o ^
5.6.1 地址指针的基本概念
8 P* ?* R( K i7 {5.6.2 变量的指针和指向变量的指针变量3 W; g& v: o6 g8 k! T1 }
5.6.3 数组指针和指向数组的指针变量' P- Y0 N. j& b+ b5 I9 T' j9 r* q
5.6.4 字符串的指针指向字符串的指针变量* X0 |$ ^8 P6 J1 n' _+ F& ?
5.6.5 函数指针变量
K8 ]5 F; B+ L) @: M% y* D5.6.6 指针数组和指向指针的指针
& h& i& I9 |7 [) G7 d5.6.7 有关指针的数据类型和指针运算的小结
9 K5 {: I$ F" f5 {0 I9 H5.7 结构体与共用体
; N- o: v# S4 p( l! b H5.7.1 定义结构的一般形式
3 `3 r. Q& d% j Y5.7.2 结构类型变量的说明3 v9 s9 L% O2 I, L
5.7.3 结构变量成员的表示方法6 t# q8 j/ ]& y: g c+ r5 q
5.7.4 结构变量的初始化
* G# T0 D q" @1 V5.7.5 结构数组的定义
* s* ~* R, ]/ w5.7.6 结构指针变量的说明和使用
# O9 f' B4 U# {7 ?5.7.7 共用体( ~, o6 {& S o$ f, a& y
5.7.8 枚举类型# j2 r6 R: A2 F3 ?7 f- [
5.7.9 类型定义符typedef
1 M+ N! h2 }* T) m6 c) @8 o: ]5.8 位运算0 t7 K- r8 j9 m
5.8.1 位运算符
" m x# j I6 A5.8.2 位域
]: c, P8 A- j, x5.9 编译预处理; i" t" o t/ h& A
5.9.1 概述4 @- s- [ ]7 Q* k: r& x7 K
5.9.2 宏定义
$ [5 v0 {; R1 h% H. V5.9.3 文件包含6 E1 S) f9 ~: o* G ~+ ?7 c, W
5.9.4 条件编译. Y3 l2 ]' O/ _% g; x& Q
5.10 ICCAVR附注与扩充: X7 ~) i; M$ `3 C% |
) z" \8 Y$ `- {% N第6章 ATmega128基础实例+ T1 }0 Q. F) }
6.1 发光二极管应用实验
! Q5 p. S0 x+ V# b7 G6.1.1 实例功能2 j9 B$ t# ?3 Z" t
6.1.2 器件和原理5 n) G- \7 }5 t( j4 J* f
6.1.3 硬件电路
6 H& \* ^) E5 d4 b% t3 n6.1.4 程序设计
% a* e @& d; |5 v/ k- |6.2 键盘电路应用实例/ |+ j, q6 Y4 L4 Q( P' {! w
6.2.1 实例功能
- g% u T4 E+ F" M6.2.2 器件和原理3 I) p3 {4 Z% F' v+ I1 c
6.2.3 程序设计
" j" L0 \! H2 O; y! }6.3 LED数码管应用实例8 f( l& ~* r, @; z( I: {( m
6.3.1 实例功能
( P! s8 P, R$ b1 l) I# j- H6.3.2 器件和原理# z7 I2 s# x; v- T- V; d
6.3.3 硬件电路
_; U! ?$ D5 [: o6.3.4 程序设计
, e# F1 c/ z; t) @8 P+ c% q6.4 片内EEPROM应用实例 O) n' |' K$ l7 A
6.4.1 实例功能
( t6 ^! R. E p6 }! o" _6.4.2 ATmega128片内EEPROM内部寄存器$ x& K. _3 a+ o( A+ Y/ m. L
6.4.3 硬件原理图0 A6 F3 A7 v' O J. k, m
6.5 PWM应用实例! ^9 p% U3 U$ R$ Y6 B7 i
6.5.1 脉冲宽度控制PWM的工作原理: i* [8 Q7 M- b6 z2 A0 Z" B
6.5.2 ATmega128内部PWM模块
# L) l: ^5 w' {" |9 M6.5.3 利用T/C0的PWM模块产生锯齿波
* c0 e6 R9 s: b6.6 ADC应用实例
7 E/ ^2 x/ ~& M# N& e" w, ?6.6.1 实例功能 }5 \" P& N* @" C" c/ W2 Z: O
6.6.2 ATmega128片内ADC内部寄存器
/ o' u/ b, n$ Y5 E$ z6.6.3 硬件原理图
- z# m4 r) P+ ^6.6.4 程序设计
: C( T' B; ]* f5 b+ O, y6 Y6.7 串行口应用实例; p6 a3 n; ]% J4 `8 l' S. S
6.7.1 实例功能
1 p e9 M( x8 r- N2 E ~6.7.2 硬件电路
( {5 I8 u" r, p! Y6.7.3 程序设计$ w! i2 B8 S0 F; D& B7 t4 [' [
6.8 定时器应用实例
8 N6 J- H7 A3 S6.8.1 实例功能/ o0 C: ^/ ^8 v9 J. o3 s
6.8.2 硬件原理图
8 B6 \* |) r$ l/ `* ?5 y: t6.8.3 程序设计, K) Q9 \% D1 c: c w- I! ^
$ x# N8 h, `' K+ n' @& X7 l
第7章 ATmega128高级应用实例( X9 N1 Q: V3 x2 \* }
7.1 LCD显示屏应用实例1 g7 \0 S9 v$ y6 Y/ B" o, Z7 Y! W
7.1.1 液晶显示概述
. J! v4 \) y+ |# e8 m, O: I+ u& T# n7.1.2 1602字符型LCD概述2 B/ T) j: ~' R- q$ f
7.1.3 1602 LCD的软硬件设计, |4 e& U; x3 q6 g
7.1.4 128×64点阵型LCD应用实例
3 }. C( Q% M" k) n- Q2 B# Y1 j7.2 单总线数字温度传感器DS18B20应用实例
- H o6 f$ Q4 I& `/ D/ D7.2.1 单总线技术概述+ `( z# d0 l: |0 z
7.2.2 单总线温度传感器DS18B20概述
: t! j+ O" _2 N1 ~8 `7 c& L* N% P7.2.3 DS18B20的软/硬件设计+ E5 n! Q) U+ S7 b
7.3 I2C总线软/硬件设计实例9 S& y* o4 K; U
7.3.1 I2C串行总线概述
, l5 ~+ ]& K# U" h+ J3 |% L7.3.2 I2C总线器件工作原理及时序
, f5 G1 J& d) Q6 x$ {7.3.3 AT24C系列存储器的软/硬件设计
9 C- ?( J. v: z8 I2 Z1 Q( t5 F7.4 93CXX系列存储器应用实例( n- E' Y A0 ]% L' Q9 ]& C. O* T
7.4.1 SPI总线概述0 K$ z" _' E& k
7.4.2 93C46存储器的软/硬件设计6 b9 g1 m9 \' }# ]* X
7.5 DS1302时钟芯片应用实例2 z d# U) ]) z5 X# y
7.5.1 实时时钟概述
# ~8 Y& x! u0 g. e6 l( \% q7.5.2 DS1302的软/硬件设计实例
5 K% R4 ^' }* B, j6 T M7.6 红外遥控软件解码应用实例" j$ }" ?* F, v9 {! I
7.6.1 红外遥控概述( `9 W6 F' F$ h. T. d, U' V, J. w
7.6.2 SAA3010红外接收的软件解码应用实例
3 _5 ?5 G4 c9 y. C X. e! { t7.7 步进电动机应用软/硬件设计实例
6 F' {) h& t8 D: |7.7.1 步进电动机概述5 g6 N, T0 d! k5 L$ d/ s+ H! ~8 h
7.7.2 步进电动机的控制
) Q F. A8 I1 V2 x/ H' n; m7.7.3 步进电动机的应用设计
& O9 x2 V+ s$ v" F4 [5 b# m7.8 U盘存储器应用实例+ ]- Z1 }, o6 o& K/ [5 Y
7.8.1 USB概述# q5 Z3 W3 `6 R. U; H( y$ I
7.8.2 USB总线接口芯片CH3756 p7 l* T$ ?, L* V! D) ~7 X
7.8.3 U盘存储器的应用设计
0 | A3 k% _4 Z6 ?7.9 GSM模块应用实例
( n$ j! n% w1 p- q1 [$ V5 K7.9.1 GSM概述. N, P+ s9 Q; e1 [
7.9.2 西门子TC35模块概述
3 E" k. e/ Y6 v5 Z9 p) G' u6 R7.10 D/A软硬件设计实例
7 r7 S9 ]7 J! g* D7 K6 c1 S5 T2 x7.10.1 D/A转换原理及主要技术指标
/ t) N4 x6 B7 I) g, v8 Q7 u7.10.2 DAC0832芯片及与单片机的接口实例
" o6 @4 W# m1 F3 |& |8 U8 @3 v, e7.11 GPS模块应用实例
( ~. q5 v8 a0 N% S1 J: k7.11.1 GPS概述
! n: w. A+ H) ~7.11.2 ublox LEA4S模块概述
1 `6 e, X1 S4 P7.11.3 GPS的应用设计
! R+ j' F6 O# }0 E3 Y/ b5 U1 f; l7.12 LED点阵显示屏的应用实例
' @! O7 W( G2 o1 j- w3 f7.12.1 LED点阵的种类及结构
( }- P* Y) |3 t3 W# p7.12.2 8×8单色点阵LED的工作原理% C" m7 b1 v6 e: y% E5 Q$ z* d7 Y
7.12.3 LED点阵显示屏的系统设计
& ]. U, ~$ M5 N- M% l9 w1 T/ }参考文献6 q4 v8 }# a* E# G' [5 z
7 O8 n: e K) } ^+ e
+ p' r7 V3 L1 P0 e7 U
, C; x9 p; [, ^! E5 Z, B前言+ Y1 i5 P& E& {( ]) F
单片机又称单片微控制器,其实质是把一个微型计算机系统集成到一个芯片上。它的优点是体积小,重量轻,价格便宜;现在通用的单片机按位数可分为4位机、8位机、16位机和32位机等。ATmega128/128L是Atmel公司推出的一款采用低功耗CMOS工艺生产的新型AVR高档8位单片机,是基于RISC(Reduced Instruction Set Computer)架构的新型的单片机,芯片内部集成了128 KB F1ash的存储器和丰富的硬件接口电路,是AVR高档单片机MEGA系列中资源最丰富、性能最强大的单片机;再加上AVR单片机的系统内可编程特性,从而无须购买昂贵的仿真器和编程器也可进行单片机嵌入式系统的设计和开发,同时也为单片机的初学者提供了非常方便、简捷的学习开发环境。另外,掌握了ATmegal28单片机的性能和使用技巧,就可以很容易地了解和掌握其他AVR高档单片机。 9 d: ]) l8 B# C& S
+ [5 I' Z& t" e1 N" c- n3 i
+ V7 I# ]* i. J, B/ ]6 M
精彩书摘 8 o+ q0 m' b" u: [
第1章 单片机概述' O0 V3 X& F" Z+ W1 G7 P1 N6 P$ U
单片机(Single Chip Microcomputer)也称为单片微电脑或单片微型计算机,国际上统称为微控制器(Microcontroller,MCU或μC),是一类内部集成了计算机核心技术的智能芯片。在单片机产生之前,完成一项稍复杂的功能往往需要一块大而复杂的模拟电路,要花费巨大的精力去调试、完善。随着科技的不断进步,现在只要一块几厘米见方的单片机,写入简单的程序,就可以使电路简单很多。相信读者在使用并掌握了单片机技术后,不管在今后开发或是工作上,一定会带来意想不到的惊喜。" A8 B; e+ }. f$ J
1.1 单片机发展概述# t% X! K" t9 V0 j( q
单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC这3大阶段:2 e, q; v$ B1 [/ \
①SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。+ ]6 g, x% t, j
②MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数前Philips公司半导体部(现称NXP公司)。前Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和前Philips的历史功绩。: ^" J* l8 u) W
③单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素就是寻求应用系统在芯片上的最大化解决,因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统 |
|