芯源电子—大屏幕 LED 显示屏设计/制造 单片机和嵌入式系统开发
上海芯源电子电器设计中心 :13564769866
2
致广大新老朋友
应广大朋友的要求 这次又对教程做了比较大的改动 把大家提
出的错误的地方做了修改
另外加入了一些新的内容 因为现在自
己在做产品
所以没太多的时间来解释大家学习中的问题 请大家
自己到
电子爱好者网站—www.entui.com/bbs/index.asp 或我主
持的网站
电子爱好者园地 www.fj136.com/bbs/index.asp 去提
问
我会经常去那儿 看到了会给大家作解释
发个广告
我们现在生产的产品 如果那位有需要 可记得一定
要来找我哦
联系方法在下面 够多了吧 不要说找不到哦 呵呵
室内全彩屏
室内外条屏
芯源电子—大屏幕 LED 显示屏设计/制造 单片机和嵌入式系统开发
上海芯源电子电器设计中心 :13564769866
3
前 言
基于本人学习单片机的痛苦经历
特编写本教程 以此献给广大
的单片机初学者
希望您能从中受益
作者提示
本教程乃最通俗易懂之单片机教材 如果您还是看不
懂
请千万不要涉足此行 以免误入歧途 耽误您的前程*^*
拿到这本教程您首先就会想 什么是 IAP 教学法 是不是一种什么全新的教学方法 当然不是
我可没有那么大的本事 其实这只是我杜撰的一个名词 意思就是 In Applications Program 在应用
中编程
,当然这只是针对单片机教学 说法是否正确 还得您说了算
至于为什么要提这种说法
那我倒想说几句 大家都知道 学习电子技术是一件非常无聊和枯燥
的事情
为什么会有这种想法 就是因为我们传统的教学方法只重理论而忽略了实践 要一个人记住那
些空洞而有无聊的理论知识实在不是一件容易的事
好在我们总算熬过来了 不管如何 也多多少少的
学习了一些电子基础知识
接下来我们应该进一步掌握些什么知识呢
凡涉足此行的朋友都知道 那就是单片机 不过这可
不是一件容易的事
倒不是因为单片机很难学 而实在是我们身边很难找到一本专为单片机入门者而编
写的教材
翻一下传统的单片机教材 都好象是为已经懂单片机的人而写的 一般总是以单片机的结构
为主线
先讲硬件原理 然后是指令 接着讲软件编程 再是系统扩展和外围器件 最后举一些实例 随
便说一点
很多书中的实例都是有问题 的 很少涉及单片机的基础知识 如果按照此种学习方法
想进行产品开发 就必须先把所有的知识全部掌握了才可以进行实际应用 孰不知 单片机不象模拟电
路和数字电路那样
只要搞懂了电路原理 再按照产品要求设计好相应的电路就可以了 它是一种以简
单的硬件结构
复杂而有灵活的软件系统来完成设计的通用性产品 不同的设计者只会使用其不同的功
能
几乎没有人会把它的全部指令都使用起来 所以学习使用单片机只能靠循序渐进的积累 而不可能
先把它全部掌握了再去做产品开发
当然天才就例外了*^*
基于以上原因
我们尝试了一种全新的单片机教学方法 打破传统的循序渐进式的教学方法 以
单片机的应用为基础
结合基本的工业控制系统和实践工作中的具体应用 不分先后顺序 将各条指令
贯串于一个又一个的实验中
通过所见即所得的实验来讲解各种指令的编程方法 顺便讲解相关的基本
概念
使您尽快地熟悉单片机应用的基本步骤 掌握软件编程的基本方法
本教程分为上
下两册 上册部分主要教您掌握单片机开发的基本步骤和软硬件的编程与设计
如果您学完了上册部分就能成为单片机的入门者 完全可以进行一般产品的开发 下册部分是单片机应
用的提高部分
主要学习单片机的系统扩展 比如 ROM 和 RAM 存储器的扩展 并行口的扩展 串行口
的扩展
A/D 和 D/A 与单片机的接口 以及相关开发工具和软件的使用 包括 KELL C51 的应用与调试
技巧
硬件仿真器的使用 等等 如果您学完了下册部分 那就得恭喜您成为了单片机开发的高手了
不过单片机的技术是在不断的发展和提高的 您也不要太骄傲哦
为了尽量把最新的单片机知识和应用成果收录进我们的教程
希望您能不吝赐教 共同来努力把
我们的教程不断的改进和完善
还是那句题外话 技术是靠不断的积累和交流才会进步的 固封自守只
会更加落后
由于时间和精力的限制
我还是希望在您学习本教程之前 自己先熟悉一点相关的电子技术知识
特别是数字电路基础 这对您学习中碰到的相关概念会有很大的帮助
芯源电子—大屏幕 LED 显示屏设计/制造 单片机和嵌入式系统开发
上海芯源电子电器设计中心 :13564769866
4
目录
上册
第一课 单片机的概述 6
第二课 单片机的硬件结构与开发过程
9
第三课 单片机的内部结构
一 半导体存储器 11
第四课 单片机的内部结构
二 工作寄存器 15
第五课 单片机的内部结构
三 时序与时钟 18
第六课 单片机的内部结构
四 并行口 20
第七课 单片机的内部结构
五 数据与地址 24
第八课 单片机的内部结构
六 特殊功能存储器 27
第九课 单片机的工作方式
29
第十课 单片机的寻址
32
第十一课 单片机的指令
一 数据传递类指令 35
第十二课 单片机的指令
二 数据传递类指令 38
第十三课 单片机的指令
三 算术逻辑运算类指令 42
第十四课 单片机的指令
四 控制转移类指令 47
第十五课 单片机的指令
五 位及位操作指令 51
第十六课 单片机的程序设计方法
55
第十七课 单片机的定时
计数器 64
第十八课 单片机的中断系统
68
第十九课 单片机的定时/中断实验
一 73
第二十课 单片机的定时/中断实验
二 78
第二十一课 键盘接口及编程方法
一 独立式按键 81
第二十二课 键盘接口及编程方法
二 矩阵式按键 87
第二十三课 单片机显示器接口及编程方法
90
第二十四课 数码管的静态扫描与编程方法
94
芯源电子—大屏幕 LED 显示屏设计/制造 单片机和嵌入式系统开发
上海芯源电子电器设计中心 :13564769866
5
下册
第二十五课 程序存储器的扩展及编程方法 一 2
第二十六课 程序存储器的扩展及编程方法
二 6
第二十七课 数据存储器的扩展及编程方法
一 8
第二十八课 数据存储器的扩展及编程方法
二 12
第二十九课 I2C 总线原理及编程方法
16
第三十课 串行接口的原理及编程方法
一 20
第三十一课 串行接口的原理及编程方法
二 25
第三十二课 多机通讯的原理及编程方法
一 28
第三十三课 多机通讯的原理及编程方法
二 32
第三十四课 定时/计数器的扩展及编程方法
36
第三十五课 中断的扩展及编程方法
41
第三十六课 D/A 转换的原理及编程方法
一 45
第三十七课 D/A 转换的原理及编程方法
二 50
第三十八课 A/D 转换的原理及编程方法
一 54
第三十八课 A/D 转换的原理及编程方法
二 58
第三十九课 看门狗原理和单片机的可靠性设计
62
第四十课 键盘的扩展及编程方法
66
第四十一课 显示器的扩展及编程方法
70
第四十二课 单片机专用键显芯片的设计方法及编程原理
75
第四十三课 实时时钟的原理及编程方法
一 79
第四十四课 实时时钟的原理及编程方法
二 83
第四十五课 单片机汉字显示系统的原理
86
第四十六课 单片机汉字点阵屏的实验
91
第四十七课 液晶显示器的原理和编程方法
一 94
第四十八课 液晶显示器的原理和编程方法
二 96
芯源电子—大屏幕 LED 显示屏设计/制造 单片机和嵌入式系统开发
上海芯源电子电器设计中心 :13564769866
6
第一课 单片机的概述
因为我们的主要课程是单片机的应用
本来不想讲解单片机的历史与发展 这话说现状更确切
些
但为了兼顾大多数朋友 我还是简单的介绍一下这方面的相关知识
一
单片机的由来
单片机
专业名称—Micro Controller Unit(微控制器件) 它是由大名鼎鼎的 INTEL 公司发明的
最早的系列是 MCS-48 后来有了 MCS-51 我们经常说的 51 系列单片机就是 MCS-51 micro controller
system
它是一种 8 位的单片机 8 位是什么意思 我们以后再讲
后来 INTEL 公司把它的核心技术转让给了世界上很多的小公司
不过 再小也有几个亿的销售/
年哦
所以世界上就有许多公司生产 51 系列兼容单片机 比如飞利浦的 87LPC 系列 华邦的 W78 系列
达拉斯的 DS87 系列 现代的 GSM97 系列等等 目前在我国比较流行的就是美国 ATMEL 公司的 89C51
它是一种带 Flash ROM 的单片机 至于什么是 Flash ROM 我在这儿先不作介绍 等以后大家学到相
关的知识时自然就会明白
我们的讲座就是以该型号的单片机来作实验的 讲到这里 也许有的人会
问
我平时在各种书上看到全是讲解 8031 8051 等型号的单片机 它们又有什么不同呢 其实它们同
属于一个系列
只是 89C51 的单片机更新型一点(事实上,89C51 目前正在用 89S51 代替 我们的实验系
统采用就是 89S52 的
兼容 89C52) 这里随便说一下 目前国内的单片机教材都是以 8051 为蓝本的
尽管其内核也是 51 系列的 但毕竟 8051 的单片机已经属于淘汰产品 在市场上也很少见到了 所以由
此感叹
国内的高等教育是如此的跟不上时代的发展需要 这话可能会引起很多人的不满,所以大家别
说是我讲的哦
二
主要单片机的分类
接着上面的话题 再给大家介绍一下我们经常在各种刊物上看到的 AVR 系列和 PIC 系列单片机是
怎么回事
以便让大家对单片机的发展有一个较全面的认识 在没有学习单片机之前 这是一个令很多
初学者非常困惑的问题
这么多的单片机我该先学哪一种呢
AVR 系列单片机也是 ATMEL 公司生产的一种 8 位单片机
它采用的是一种叫 RISC 精简指令集单
片机
的结构 所以它的技术和 51 系列有所不同 开发设备也和 51 系列是不通用的 它的一条指令的
运行速度可以达到纳秒级
即每秒 1000000000 次 是 8 位单片机中的高端产品 由于它的出色性能
目前应用范围越来越广 大有取代 51 系列的趋势 所以学完了 51 系列的 看来必须学会 AVR 的才行
可叹知识爆炸 人生苦短 说完了 AVR 的 再来说说另一种--PIC 系列单片机 它是美国 MICROCHIP 公
司 唉 又是老美 叫微芯公司的生产的另一种 8 位单片机 它采用的也是 RISC 的指令集 它的指令
系统和开发工具与 51 系列更是不同
但由于它的低价格和出色性能 目前国内使用的人越来越多 国
内也有很多的公司在推广它
不过它的影响力远没有 51 系列的大 所以作为初学者 51 系列当然是首
选
以上几种只是比较多见的系列
其实世界上还有许多的公司生产各种各样的单片机 比如
MOTOROLA 的MC68H 系列 老牌的单片机 TI 的 MSP430C 系列 极低功耗的单片机 德国的西门子 SIEMENS
等等
它们都有各自的结构体系 并不与 51 系列兼容 为了不搞大家的脑筋 这里就不介绍了 等大
家入了门以后自己去研究它吧
我们还是回来了解一下 51 系列单片机到底是个什么东西 它有那些部
分组成
请接着往下看
三
单片机的结构及组成
单片机到底是一种什么 DD
它究竟能做什么呢 其实它就是一种能进行数学和逻辑运算 根据不
同使用对象完成不同控制任务的面向控制而设计的集成电路
此话好象有点绕口 没关系 大家都应该
知道我们经常使用的电脑吧
在电脑上 我们可以用不同的软件在相同的硬件上实现不同的工作 比如
我们用 WORD 可以打字
用 PROTEL 可以设计图纸等等 单片机其实也是如此 同样的芯片可以根据我们
不同的要求做出截然不同的产品
只不过电脑是面向应用的 而单片机是面向控制的 比如控制一个指