单片机欲程单片机之友Te1:053186213622 前言 基于本人学习单片机的痛苦经历,特编写本教程,以此献给广大 的单片机初学者,希望您能从中受益。 作者提示:本教程乃最通俗易懂之单片机教材也,如果您还是看 不懂,请千万不要涉足此行,以免误入歧途,耽误您的前程** 拿到这本教程您首先就会想,什么是IAP教学法?是不是一种什么全新的教学方法?当然不是 我可没有那么大的本事,其实这只是我杜撰的一个新名词,意思就是 In Applications Program(在应 用中编程),当然这只是针对单片机教学,说法是否正确,还得您说了算。 至于为什么要提这种说法,那我倒想说几句。大家都知道,学习电子技术是一件非常无聊和枯燥 的事情,为什么会有这种想法,就是因为我们传统的教学方法只重理论而忽略了实践,要一个人记住那 些空洞而有无聊的理论知识实在不是一件容易的事,好在我们总算熬过来了,不管如何,也多多少少的 学习了一些电子基础知识 接下来我们应该进一步掌握些什么知识呢,凡涉足此行的朋友都知道,那就是单片机。不过这可 不是一件容易的事,倒不是因为单片机很难学,而实在是我们身边很难找到一本专为单片机入门者而编 写的教材。翻一下传统的单片机教材,都好象是为已经懂单片机的人而写的,一般总是以单片机的结构 为主线,先讲硬件原理,然后是指令,接着讲软件编程,再是系统扩展和外围器件,最后举一些实例(随 便说一点:很多书中的实例都是有错误的),很少涉及单片机的基础知识,如果按照此种学习方法,想 进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。孰不知,单片机不象模拟电路 和数字电路那样,只要搞懂了电路原理,再按照产品要求设计好相应的电路就可以了。它是一种以简单 的硬件结构,复杂而有灵活的软件系统来完成设计的通用性产品,不同的设计者只会使用其不同的功能, 几乎没有人会把它的全部指令都使用起来,所以学习使用单片机只能靠循序渐进的积累,而不可能先把 它全部掌握了再去做产品开发(当然天才就例外了**)。 基于以上原因,本人想尝试一种全新的单片机教学方法,打破传统的循序渐进式的教学方法,以 单片机的应用为蓝本,结合基本的工业控制系统和实践工作中的具体应用,不分先后顺序,将各条指令 贯串于一个又一个的实验中,通过所见即所得的实验来讲解各种指令的编程方法,顺便讲解相关的基本 概念,使您尽快地熟悉单片机应用的基本步骤,掌握软件编程的基本方法 本教程分为上、下两册,上册部分主要教您掌握单片机开发的基本步骤和软硬件的编程与设计, 如果您学完了上册部分就能成为单片机的入门者,完全可以进行一般产品的开发:下册部分是单片机应 用的提高部分,主要学习单片机的系统扩展(比如:ROM和RAM存储器的扩展,并行口的扩展,串行口 的扩展,AD和D/A与单片机的接口)以及相关开发工具和软件的使用(包括 KELL O51的应用与调试 技巧,硬件仿真器的使用)等等,如果您学完了下册部分,那就得恭喜您成为了单片机开发的高手了 不过单片机的技术是在不断的发展和提高的,您也不要太骄傲哦! 为了尽量把最新的单片机知识和应用成果收录进我们的教程,希望您能不吝赐教,共同来努力把 我们的教程不断的改进和完善。还是那句题外话,技术是靠不断的积累和交流才会进步的,固封自守只 会更加落后 由于时间和精力的限制,我还是希望在您学习本教程之前,自己先熟悉一点相关的电子技术知识, 特别是数字电路基础,这对您学习中碰到的相关概念会有很大的帮助 单片机之友 金0531-86213622 单片机之友QQ:280919249
单片机教程 单片机之友 0531-86213622 2 前 言 基于本人学习单片机的痛苦经历,特编写本教程,以此献给广大 的单片机初学者,希望您能从中受益。 作者提示:本教程乃最通俗易懂之单片机教材也,如果您还是看 不懂,请千万不要涉足此行,以免误入歧途,耽误您的前程*_* 拿到这本教程您首先就会想,什么是 IAP 教学法?是不是一种什么全新的教学方法?当然不是, 我可没有那么大的本事,其实这只是我杜撰的一个新名词,意思就是 In Applications Program(在应 用中编程),当然这只是针对单片机教学,说法是否正确,还得您说了算。 至于为什么要提这种说法,那我倒想说几句。大家都知道,学习电子技术是一件非常无聊和枯燥 的事情,为什么会有这种想法,就是因为我们传统的教学方法只重理论而忽略了实践,要一个人记住那 些空洞而有无聊的理论知识实在不是一件容易的事,好在我们总算熬过来了,不管如何,也多多少少的 学习了一些电子基础知识。 接下来我们应该进一步掌握些什么知识呢,凡涉足此行的朋友都知道,那就是单片机。不过这可 不是一件容易的事,倒不是因为单片机很难学,而实在是我们身边很难找到一本专为单片机入门者而编 写的教材。翻一下传统的单片机教材,都好象是为已经懂单片机的人而写的,一般总是以单片机的结构 为主线,先讲硬件原理,然后是指令,接着讲软件编程,再是系统扩展和外围器件,最后举一些实例(随 便说一点:很多书中的实例都是有错误的),很少涉及单片机的基础知识,如果按照此种学习方法,想 进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。孰不知,单片机不象模拟电路 和数字电路那样,只要搞懂了电路原理,再按照产品要求设计好相应的电路就可以了。它是一种以简单 的硬件结构,复杂而有灵活的软件系统来完成设计的通用性产品,不同的设计者只会使用其不同的功能, 几乎没有人会把它的全部指令都使用起来,所以学习使用单片机只能靠循序渐进的积累,而不可能先把 它全部掌握了再去做产品开发(当然天才就例外了*_*)。 基于以上原因,本人想尝试一种全新的单片机教学方法,打破传统的循序渐进式的教学方法,以 单片机的应用为蓝本,结合基本的工业控制系统和实践工作中的具体应用,不分先后顺序,将各条指令 贯串于一个又一个的实验中,通过所见即所得的实验来讲解各种指令的编程方法,顺便讲解相关的基本 概念,使您尽快地熟悉单片机应用的基本步骤,掌握软件编程的基本方法。 本教程分为上、下两册,上册部分主要教您掌握单片机开发的基本步骤和软硬件的编程与设计, 如果您学完了上册部分就能成为单片机的入门者,完全可以进行一般产品的开发;下册部分是单片机应 用的提高部分,主要学习单片机的系统扩展(比如:ROM 和 RAM 存储器的扩展,并行口的扩展,串行口 的扩展,A/D 和 D/A 与单片机的接口)以及相关开发工具和软件的使用(包括 KELL C51 的应用与调试 技巧,硬件仿真器的使用)等等,如果您学完了下册部分,那就得恭喜您成为了单片机开发的高手了, 不过单片机的技术是在不断的发展和提高的,您也不要太骄傲哦! 为了尽量把最新的单片机知识和应用成果收录进我们的教程,希望您能不吝赐教,共同来努力把 我们的教程不断的改进和完善。还是那句题外话,技术是靠不断的积累和交流才会进步的,固封自守只 会更加落后。 由于时间和精力的限制,我还是希望在您学习本教程之前,自己先熟悉一点相关的电子技术知识, 特别是数字电路基础,这对您学习中碰到的相关概念会有很大的帮助。 单片机之友 QQ:280919249 单片机之友 Tel:053186213622
51单片机多功能实验板 单片机之友提供 http://www.mcufriend.com http:/mcufriend.wy8.net Q:280919249 CO XO :「1:2: a 153681y DD RI DDDDDDD 本学习板专为单片机爱好者学习MCS-51系列单片机而设计.可直接的实验有 点亮LED2.各种跑马灯3.数码管显示数字和字母4.数码管动态刷新显 5·查询方式按键6.中断方式按键7.蜂鸣器发声8.单片机奏乐9.外部事件计数 10.TTL电平串行通讯11.标准电平串行通讯12.IIC总线存储器读写 13.IIC总线时钟芯片操作14.单片机口线有否上拉的区别15.显示驱动芯片的始能和禁止
51单片机多功能实验板�� 本学习板专为单片机爱好者学习MCS-51系列单片机 而设计.可直接的实验有:��� 9.外部事件计数����2.各种跑马灯 10.TTL电平串行通讯����3.数码管显示数字和字母 11.标准电平串行通讯����4.数码管动态刷新显示 12.IIC总线存储器读写����5.查询方式按键 13.IIC总线时钟芯片操作����6.中断方式按键 14.单片机口线有否上拉的区别����7.蜂鸣器发声 15.显示驱动芯片的始能和禁止����8.单片机奏乐���� 2.各种跑马灯 1. 点亮LED 2.各种跑马灯 3.数码管显示数字和字母 4.数码管动态刷新显示 5.查询方式按键 6.中断方式按键 7.蜂鸣器发声 8.单片机奏乐 9.外部事件计数 10.TTL电平串行通讯 11.标准电平串行通讯 12.IIC总线存储器读写 13.IIC总线时钟芯片操作 14.单片机口线有否上拉的区别 15.显示驱动芯片的始能和禁止 9.外部事件计数 10.TTL电平串行通讯 11.标准电平串行通讯 12.IIC总线存储器读写 13.IIC总线时钟芯片操作 14.单片机口线有否上拉的区别 15.显示驱动芯片的始能和禁止 http:// mcufriend.wy8.net 单片机之友提供 http://www.mcufriend.com QQ:280919249
51单片机编程器 ………… ⊥ LHAHHHHHAHHHHE LAAALAAHRLAAHLRHSHHA HHH还H RRRFFRFHHH 详细介绍可查询 http://mcufriend.wy8.net n d. co 支持的芯片型号 支持目前最为经典和市场占有量最大的 ATMEL公司生产的AT89C51、C52、C55和 最新的s51、S52:AT89C1051、2051、4051等芯片。 特别适合于渴望学习51单片机又想尽量减小学习投入的网友
51单片机编程器�� 详细介绍可查询 http://mcufriend.wy8.net http://www.mcufriend.com 支持的芯片型号 支持目前最为经典和市场占有量最大的ATMEL公司生产的AT89C51、C52、C55和 最新的S51、S52; AT89C1051、2051、4051等芯片。 特别适合于渴望学习51单片机又想尽量减小学习投入的网友
51单片机多功能试验板 51单片机试验板,是一款用于51系列单片机的试验工具 实验板采用灵活的结构化、总线式设计,试验涵盖面广,针对性强。 结构化、总线式设计使板子具有更多升级,配合不断推出的功能插件板, *采用结构化、总线式设计,便于扩展更多功能插件板,完成更多试验 完成更多试验和功能评估,保证潮流性,并使板子永不过时。 配套51单片机学习教程和DEM0程序,给你更多研究上的帮助。 功能特性 *PCB布线合理、精美,器件焊接精美 *复位电路采用阻容和DS1232两种方式,可以通过跳线选择 可以提供高复位和低复位两种电平复位,适应更多MCU(比如AVR单片机) *采用便携变压器供电(9VDC或12VDC),电源具有防接反功能、 并留有5V电源接线插座,使用更方便 具有看门狗功能(采用DS1232芯片) *清看门狗信号跳线功能(采用DS1232芯片) *8只LED,红绿两种颜色间隔焊接,可以做流水灯和霓虹灯试验等 *8只按键,可练习键盘扫描 *具有RS232串口通讯(采用MAⅩ232,非一般的三级管电路,通讯更稳定)功能 *1只有源蜂鸣器,可做报警试验和音乐试验 *I2C总线器件AT24C01数据存储器 *DS1302时钟芯片,可完成复杂时间试验,预留有芯片的后备电源插座 *4只数码管,采用动态扫描驱动控制(74HC573+ULN2003) *所有的I0口都用拨码开关引出,便于灵活扩展控制插件板 *40线总线插座,用于扩展 *EA脚采用跳线控制 *PSEN脚采用跳线控制 *具有ISP程序下载接口 *采用优质40脚活动锁紧座,取放芯片更方便 *丰富的配套教材、资料文档
配套51单片机学习教程和DEMO程序,给你更多研究上的帮助。 功能特性 *PCB布线合理、精美,器件焊接精美 *采用结构化、总线式设计,便于扩展更多功能插件板,完成更多试验 *具有看门狗功能(采用DS1232芯片) *清看门狗信号跳线功能(采用DS1232芯片) *8只LED,红绿两种颜色间隔焊接,可以做流水灯和霓虹灯试验等 *8只按键,可练习键盘扫描 *具有RS232串口通讯(采用MAX232,非一般的三级管电路,通讯更稳定)功能 *1只有源蜂鸣器,可做报警试验和音乐试验 *I2C总线器件AT24C01数据存储器 *DS1302时钟芯片,可完成复杂时间试验,预留有芯片的后备电源插座 *4只数码管,采用动态扫描驱动控制(74HC573+ULN2003) *所有的IO口都用拨码开关引出,便于灵活扩展控制插件板 *40线总线插座,用于扩展 *EA脚采用跳线控制 *PSEN脚采用跳线控制 *具有ISP程序下载接口 *采用优质40脚活动锁紧座,取放芯片更方便 *丰富的配套教材、资料文档 51单片机试验板,是一款用 于51系列单片机的试验工具。 实验板采用灵活的结构化、总线式设计,试验涵盖面 广,针对性强。 结构化、总线式设计使板子具有更多升级,配合不断推出的功能插件板, 完成 更多试验和功能评估,保证潮流性,并使板子永不过时。 *复位电路采用阻容和DS1232两种方式,可以通过跳线选择, 可以提供高复位和低复位两种电平复位,适应更 多MCU(比如AVR单片机) * 采用便携变压器供电(9VDC或12VDC),电源具有防接反功能、 并留有5V电源接线插座,使用更方便 51单片机多功能试验板
开发板将单片机实验板、编程器、ISP下载线进行合理的组合, 开发板上自带MCU采用了串口在系统 开发系统摆脱了传统、繁锁的单片机学习方式,将当今最流行 51最经济有效的学习方案完美地 集成在了同一个系统中,是一个快捷、高效、灵活的单片机学习、 开发方案。具有非凡的性价比, 51开发实验板 是单片机爱好者快速掌握51系列单片机不可多得的工具 既适合初学者入门学习,也适合专业人员开发51单片机产品的需求,还适用于渴望快速学习和掌握 单片机应用技术的所有人员。 编控制配合串行下载编程控制软件,无需各种编程器可轻松地将编译好的代码下载到开发板上的 CPU中进行验证或演示,试验过程中无需拔插任何电缆和芯片,整个过程只需利用鼠标操作即可, 方便快捷。烧写完毕即可自动演示,比ISP使用更方便。同时也可以使用预留的ISP接口 连接ⅠSP下载头,对其他MCU进行在系统编程(ISP- I n System Progra m m i n g),对于产品的软件调试或升级,提供快捷的方案。这样一来 开发系统又可以作为单独的ISP下载线使用了。 本开发系统的阻容元件、三极管为贴片封装,结构更紧凑,性能更稳定可靠开发系统提供了丰富的 硬件资源和接口,随机提供了大量的开发源代码,将有助于初学者更好的学习单片机,轻松地迈入 单片机的殿堂,领悟单片机给我们带来的无穷魅力。所有实验例程均提供详细源代码,并且附带 详细的注解说明。开发板的程序和原理图请参考配套光盘
开发板将单片机实验板、编程器、ISP下载线进行合理的组合, 开发板上自带MCU采用了串口在系统 开发系统摆脱了传统、繁锁的单片机学习方式,将当今最流行、 51最经济有效的学习方案完美地 集成在了同一个系统中,是一个快捷、高效、灵活的单片机学习、 开发方案。具有非凡的性价比, 是单片机爱好者快速掌握51系列单片机不可多得的工具... 既适合初学者入门学习,也适合专业人员开发51单片机产品的需求,还适用于渴望快速学习和掌握 单片机应用技术的所有人员。 编控制配合串行下载编程控制软件,无需各种编程器可轻松地将编译好的代码下载到开发板上的 CPU中进行验证或演示,试验过程中无需拔插任何电缆和芯片,整个过程只需利用鼠标操作即可, 方便快捷。烧写完毕即可自动演示,比ISP使用更方便。同时也可以使用预留的ISP接口 连接ISP下载头,对其他MCU进行在系统编程(ISP-In System Programming),对于产品的软件调试或升级,提供快捷的方案。这样一来, 开发系统又可以作为单独的ISP下载线使用了。 本开发系统的阻容元件、三极管为贴片封装,结构更紧凑,性能更稳定可靠开发系统提供了丰富的 硬件资源和接口,随机提供了大量的开发源代码,将有助于初学者更好的学习单片机,轻松地迈入 单片机的殿堂,领悟单片机给我们带来的无穷魅力。所有实验例程均提供详细源代码,并且附带 详细的注解说明。开发板的程序和原理图请参考配套光盘
板载实验资源和接口如 sTC89C51RC单片机 8路LED 4位LED数码管 电器控制 4x4矩阵键盘 8位拨码开 花红外接收头 字符型液晶接口 位串行AD转换 16K ts的I2C串行数据存储器24C16 申话机的模拟攒机电路 电话振铃检测电路 串数号蟲酸电路是接装主电话 手机用的。 125KHz的非接触LC卡读卡模按键发出的DTMF信号),可以用来进行电话或手机的远程控制 MAX 专用串口通讯电路 ISP下载接口 笄芟菝陋带的实验项目 2:拨码开关输入用LED提示 3 亮数 6:4位数的计数器(即0-9999的计数器) 7:定时器实验 8:实用单片机电子钟的制作 13:饗悬類掣耋 13:很电袤集品模影至集袋出的电话号码 控制开发板的LED 2串口通信实验 1§:樊觜鹄外线分祈序 8:3¥25乙的翡莠∑BM的应用程序 21:MCU内看门狗的使用 莉角柔规禁的硬件资源和提供的实验程序稍加修改就可以开发更加复的程序或产品 (1):射频感应 (2):智 智能门禁 (3):巡更管理系统 (4) (5):防盗门,保险柜,密码箱 (6) 外个人识别 (7) 车(机动车辆)防 (8):其它一些需要身份识别和保密的……
板载实验资源和接口如下: STC89C51RC单片机 8 路LED 4位LED数码管 一路继电器控制 蜂鸣器 4x4矩阵键盘 8位拨码开关 一体化红外接收头 16*2字符型液晶接口 ADC0832 2路8位串行AD转换 16K bits的I2C串行数据存储器 24C16 电话机的模拟攒机电路 电话振铃检测电路 电话拨号电路(DTMF发送)拨打电话或手机用的。 DTMF接收电路(可以接收手机或电话按键发出的DTMF信号),可以用来进行电话或手机的远程控制 125KHZ的非接触IC卡读卡模块 MAX232专用串口通讯电路 ISP下载接口 外扩接口 开发板附带的实验项目: 1:跑马灯 2:拨码开关输入用LED提示 3:点亮数码管 4:10路抢答器 5:100位计数器 6:4位数的计数器(即0-9999的计数器) 7:定时器实验 8:实用单片机电子钟的制作 9:频率计 10:继电器控制实验 11:按键检测子程序 12:16*2 LCD字符液晶模块显示程序 13:用实验板拨打电话或手机,LCD显示拨出的电话号码 14:用电话或手机远程控制开发板的LED灯 15:I2C存储器读写实验 16:RS232串口通信实验 17:模数转换(AD)程序 18:实用的红外线分析仪 19:读125KHZ的非接触IC卡程序 20:STC51MCU的内部E2PROM的应用程序 21:MCU内看门狗的使用 开发系统的特色: 利用本开发系统的硬件资源和提供的实验程序稍加修改就可以开发更加复杂的程序或产品 如:绕线机或其他产品上用的计数器;带万年历的电子时钟;电压表;数据采集器;报警器, 当有情况时,可以通过预先存储的电话号码,自动拨打电话报警;电话远程控制电器;密码门锁; 还有现在最流行的用非接触IC卡(也称射频卡或感应卡)做的产品: (1):射频感应门锁 (2):智能小区智能门禁 (3):巡更管理系统 (4):考勤系统 (5):防盗门,保险柜,密码箱 (6):野外个人识别 (7):汽车(机动车辆)防盗 (8):其它一些需要身份识别和保密的…… 红外线一体接收头 125KHZ非接触IC卡 TTL电平232输出的125K非接触IC卡只读卡头 WG26输出的125K非接触IC卡只读卡头
单片机歆程 MCS-51系列) 第一课单片机的概述 因为我们的主要课程是单片机的应用,本来不想讲解单片机的历史与发展(这话说现状更确切 些),但为了兼顾大多数朋友,我还是简单的介绍一下这方面的相关知识 单片机的由来 单片机,专业名称— Micro Controller unit(微控制器件),它是由大名鼎鼎的 INTEL公司发明的, 最早的系列是MCS-48,后来有了MCS-51,现在还有MCS-96系列,我们经常说的51系列单片机就是 MCS-51,它是一种8位的单片机,而MCS-96系列则是一种16位的单片机,至于它们之间有何区别,我 们以后会讲到。 后来 INTEL公司把它的核心技术转让给了世界上很多的小公司(不过,再小也有几个亿的销售/ 年哦),所以世界上就有许多公司生产51系列兼容单片机,比如飞利浦的87LPC系列,伟邦的W78L 系列,达拉斯的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系列是不通用的,它的一条指令的 运行速度可以达到纳秒级(即每秒100000000,是8位单片机中的高端产品。由于它的出色性能, 目前应用范围越来越广,大有取代51系列的趋势,所以学完了51系列的,看来必须学会AVR的才行, 可叹知识爆炸,人生苦短。说完了AVR的,再来说说另一种一PIC系列单片机,它是美国 MICROCHIP公 司,唉,又是老美,叫微芯公司的生产的另一种8位单片机,它采用的也是RISC的指令集,它的指令 系统和开发工具与51系列更是不同,但由于它的低价格和出色性能,目前国内使用的人越来越多,国 内也有很多的公司在推广它,不过它的影响力远没有51系列的大,所以作为初学者,51系列当然(不, 绝对)是首选。 以上几种只是比较多见的系列,其实世界上还有许多的公司生产各种各样的单片机,比如: MOTOROLA的MC68H系列(老牌的单片机),TI的MSP43C系列(极低功耗的单片机),还有日本的 TOSHIBA 日立的 HITACH,德国的西门子 SIEMENS等等,它们都有各自的结构体系,并不与51系列兼容。为了不 搞大家的脑筋,这里就不介绍了,等大家入门了以后自己再去研究它吧!现在我们还是回来了解一下 51系列单片机到底是个什么东西,它有那些部分组成,请接着往下看: 三.单片机的结构及组成 单片机到底是一种什么东东,它究竟能做什么呢?其实它就是一种能进行数学和逻辑运算,根据 不同使用对象完成不同控制任务的面向控制而设计的集成电路,此话好象有点绕口,没关系,大家都应 该知道我们经常使用的电脑吧,在电脑上,我们可以用不同的软件在相同的硬件上实现不同的工作。比 如我们用WORD可以打字,用 PROTEL可以设计图纸等等,单片机其实也是如此,同样的芯片可以根据我 单片机之友QQ:280919249
单片机教程 (MCS-51 系列) 5 第一课 单片机的概述 因为我们的主要课程是单片机的应用,本来不想讲解单片机的历史与发展(这话说现状更确切 些),但为了兼顾大多数朋友,我还是简单的介绍一下这方面的相关知识。 一.单片机的由来 单片机,专业名称—Micro Controller Unit(微控制器件),它是由大名鼎鼎的 INTEL 公司发明的, 最早的系列是 MCS-48,后来有了 MCS-51,现在还有 MCS-96 系列,我们经常说的 51 系列单片机就是 MCS-51,它是一种 8 位的单片机,而 MCS-96 系列则是一种 16 位的单片机,至于它们之间有何区别,我 们以后会讲到。 后来 INTEL 公司把它的核心技术转让给了世界上很多的小公司(不过,再小也有几个亿的销售/ 年哦),所以世界上就有许多公司生产 51 系列兼容单片机,比如飞利浦的 87 LPC 系列,伟邦的 W78L 系列,达拉斯的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 系列(极低功耗的单片机),还有日本的 TOSHIBA, 日立的 HITACH,德国的西门子 SIEMENS 等等,它们都有各自的结构体系,并不与 51 系列兼容。为了不 搞大家的脑筋,这里就不介绍了,等大家入门了以后自己再去研究它吧!现在我们还是回来了解一下 51 系列单片机到底是个什么东西,它有那些部分组成,请接着往下看: 三.单片机的结构及组成 单片机到底是一种什么东东,它究竟能做什么呢?其实它就是一种能进行数学和逻辑运算,根据 不同使用对象完成不同控制任务的面向控制而设计的集成电路,此话好象有点绕口,没关系,大家都应 该知道我们经常使用的电脑吧,在电脑上,我们可以用不同的软件在相同的硬件上实现不同的工作。比 如我们用 WORD 可以打字,用 PROTEL 可以设计图纸等等,单片机其实也是如此,同样的芯片可以根据我 单片机之友 QQ:280919249
单片机程 MCS-51系列) 们不同的要求做出截然不同的产品,只不过电脑是面向应用的,而单片机是面向控制的,比如控制一个 指示灯的亮和灭,控制一台电机的启动和停止等等 那么它的内部究竟由哪些部件组成的呢?大家都知道我们的电脑有很多的零件,比如CPU(中央 处理器),RAM(内存),ROM(程序存储器),输入输出设备(并行串行口)等等,在单片机中这些部件 都有,而且还把它们全部做到了一块芯片上(这就是单片机名称的由来)。 讲到这里,您一定会想,这么多零件集成在一块芯片上,那为什么单片机的价格会这么便宜(89s51 每块才10元左右),其实原因很简单—功能有强弱,就象我们平时用的PLC,控制一台数控机床要用 128点的,而控制一台电机有几点的就足够了,另外这种芯片的产量很大,技术也非常的成熟,自然价 格也就很低了。 那么单片机是如何来工作的,我们学习单片机又需要做哪些准备呢?对于一个初学者来说这是很 有必要了解的 四.学习单片机的准备工作 首先您需要一台电脑,这是最基本的,配置嘛,P2以上的就可以了;然后您需要一套开发单片机 的软件,这个软件叫 KEIL C51,它是美国 Keil software公司专门为MCS-51系列单片机开发的第三方 软件,它的免费测试版可在wwwkeil.com上下载,也可以在各种单片机网站上下载,最新版本是V7.09, 安装时选择 Uvision2,虽然有K代码的限制,但足以满足我们学习的需要;其次,您还需要一台编程 器,它是一种把程序写进单片机芯片的设备,这种设备品种很多,操作也很简单,大家既可以买现成的 产品(价格从200多元到2000多元的都有),也可以自己制作;有了这两样东西还不行,为了看到程序 执行的结果,我们还需要一块实验板。 不过为了节约大家的学习费用,同时也为了让大家能比校容易地入门单 片机,我特地为这欲程设计制作了一豪实验系统。具体内容请大家看下面 的奧验系统介鲳。 食统的单片机奥验过翟部是先用 KEIL O51其他的单片机开墩件把源 代码汇編成HX或BIN文件;然后用编程器把汇编文件施写入单片机中;再 把单片机插入脚验板中,寸能看到软件的执行结果。对于一个单片机初学者 来說,不仅非常的麻烦,而且必须配置一豪编器和验瓤,就目前市场上 最宜的编程器来说,投资也要500多元。如此一来,得很多学单片机, 但又不丸花太多的亟好者而步。 好在现在出现了一种支持在能下的单片机,只演足一定的外部永件, 就能够直接把汇编的程序下敢到目标单片机中。经过风复的实验,我们开 设计了这样的一豪实验系统,它采用了一豪亮源代码編楫、款件汇编、程序 下载于一体的专业软件,果用具有在能下敢功能的 FLASH ROM单片机8952, 单片机之友QQ:280919249
单片机教程 (MCS-51 系列) 6 们不同的要求做出截然不同的产品,只不过电脑是面向应用的,而单片机是面向控制的,比如控制一个 指示灯的亮和灭,控制一台电机的启动和停止等等。 那么它的内部究竟由哪些部件组成的呢?大家都知道我们的电脑有很多的零件,比如 CPU(中央 处理器),RAM(内存),ROM(程序存储器),输入输出设备(并行串行口)等等,在单片机中这些部件 都有,而且还把它们全部做到了一块芯片上(这就是单片机名称的由来)。 讲到这里,您一定会想,这么多零件集成在一块芯片上,那为什么单片机的价格会这么便宜(89S51 每块才 10 元左右),其实原因很简单----功能有强弱,就象我们平时用的 PLC,控制一台数控机床要用 128 点的,而控制一台电机有几点的就足够了,另外这种芯片的产量很大,技术也非常的成熟,自然价 格也就很低了。 那么单片机是如何来工作的,我们学习单片机又需要做哪些准备呢?对于一个初学者来说这是很 有必要了解的: 四.学习单片机的准备工作 首先您需要一台电脑,这是最基本的,配置嘛,P2 以上的就可以了;然后您需要一套开发单片机 的软件,这个软件叫 KEIL C51,它是美国 Keil Software 公司专门为 MCS-51 系列单片机开发的第三方 软件,它的免费测试版可在www.keil.com 上下载,也可以在各种单片机网站上下载,最新版本是 V7.09, 安装时选择 Uvision2,虽然有 2K 代码的限制,但足以满足我们学习的需要;其次,您还需要一台编程 器,它是一种把程序写进单片机芯片的设备,这种设备品种很多,操作也很简单,大家既可以买现成的 产品(价格从 200 多元到 2000 多元的都有),也可以自己制作;有了这两样东西还不行,为了看到程序 执行的结果,我们还需要一块实验板。 不过为了节约大家的学习费用,同时也为了让大家能比较容易地入门单 片机,我特地为这套教程设计制作了一套实验系统。具体内容请大家看下面 的实验系统介绍。 传统的单片机实验过程都是先用 KEIL C51 或其他的单片机开发软件把源 代码汇编成 HEX 或 BIN 文件;然后用编程器把汇编文件烧写入单片机中;再 把单片机插入实验板中,才能看到软件的执行结果。对于一个单片机初学者 来说,不仅非常的麻烦,而且必须配置一套编程器和实验板,就目前市场上 最便宜的编程器来说,投资也要 500 多元。如此一来,使得很多想学单片机, 但又不想花太多钱的爱好者忘而却步。 好在现在出现了一种支持在线下载的单片机,只要满足一定的外部条件, 就能够直接把汇编的程序下载到目标单片机中。经过反复的实验,我们开发 设计了这样的一套实验系统,它采用了一套集源代码编辑、软件汇编、程序 下载于一体的专业软件,采用具有在线下载功能的 FLASH ROM 单片机 89S52, 单片机之友 QQ:280919249
单片机程 MCS-51系列) 配合本款程,可以完成程中的每一个实验。这样既尝了添置编程器和 仿真器亭设鲁的昂贵费用,又可以直接在臭验概上看到程序孰行的结果,頁 由于采用的是 FLASH ROM的夺器,増次數可以达到1000次以上。具体 电路在教程的最后面附录中。 为了尽量降低大家的学习费用,我们采用了模块化的设计方法,在之学习 上册时只需购买实验系能的主机部分,包括了8个光二极管,2个款码管, 4个动能按能,1个蜂鸣器,一个串行花片和成品外客,完全可以做上册中的 每一个实验 当开始学习下册时如果鼎要可以开购买扩展模块,现在开墩的扩展棋换 包括A(TC0831)和D/A(MAX517)鞭换,外部RAM(6264)和外部ROM(29F020) 存储器,16*16汉字显示胤阵,I2C总能(24001)和温度鞭换(DS18B20),日 历时钟(DS1302)和液晶字带桃换(T6963驱勃的240*128中文形点阵)普。 如果你把这些部学食了,那就得恭喜之。因为已经基本些会了使用MCS-51 系列单片机。 四.第1课习题 1.单片机的分类有几种 2.单片机与计算机有什么区别? 单片机之友QQ:280919249
单片机教程 (MCS-51 系列) 7 配合本教程,可以完成教程中的每一个实验。这样既免去了您添置编程器和 仿真器等设备的昂贵费用,又可以直接在实验板上看到程序执行的结果,更 由于采用的是 FLASH ROM 的存储器,烧写次数可以达到 1000 次以上。具体 电路图在教程的最后面附录中。 为了尽量降低大家的学习费用,我们采用了模块化的设计方法,在您学习 上册时只需购买实验系统的主机部分,包括了 8 个发光二极管,2 个数码管, 4 个功能按键,1 个蜂鸣器,一个串行芯片和成品外客,完全可以做上册中的 每一个实验。 当您开始学习下册时如果需要可以再购买扩展模块,现在开发的扩展模块 包括 A/D(TLC0831)和 D/A(MAX517)转换,外部 RAM(6264)和外部 ROM(29F020) 存储器,16*16 汉字显示点阵,I2C 总线(24C01)和温度转换(DS18B20),日 历时钟(DS1302)和液晶字符模块(T6963 驱动的 240*128 中文图形点阵)等。 如果你把这些都学会了,那就得恭喜您,因为您已经基本学会了使用 MCS-51 系列单片机。 四.第 1 课习题 1.单片机的分类有几种? 2.单片机与计算机有什么区别? 单片机之友 QQ:280919249
单片机程 MCS-51系列) 单片机硬件结构和开发过程 从这一课开始,我们就要正式开始学习单片机了(如果你还没准备好,我们也不等了)。前面我 们曾经提到过单片机的内部结构是由CPU、ROM、RAM等等组成,它们的内部结构我们以后再讲,这一课 让我们先来看看它的外部引脚(既硬件结构),看下面的图,这就是我们要实验用的89c51单片机的外 部引脚图,给大家简单介绍一下。 单片机的引脚功能 m日m89c51 xyn EA/PP R/P36 42 1.VCC(40):电源+5V 2.VSS(20):接地,也就是GND。 3.ⅪTLI(19)和ⅪTL2(18):振荡电路。 单片机是一种时序电路,必须有脉冲信号才能工作,在它的内部有一个时钟产生电路,有两种 振荡方式,一种是内部振荡方式,只要接上两个电容和一个晶振即可:另一种是外部振荡方式,采用外 部振荡方式时,需在XTL2上加外部时钟信号(详细的内容将在以后的课程中专门介绍)。 4.PSEN(29):片外ROM选通信号,低电平有效。 5.ALE/PROG(30):地址锁存信号输出端/ EPROM编程脉冲输入端 至于它们的作用我们暂时不去管它,等以后学到相关的知识时再来研究它。这也许就是本教程区 别于其他教材的最大特点-先实践后理论,尽量用实验结果来总结理论知识,因为单片机是一种通用 的产品,它的功能设计是为了满足大多数使用者的要求,换句话说,不同的使用者只会使用其相关的功 能,几乎不可能把全部的功能都用起来,因此我们完全不必象学习其他电子技术那样,把单片机的全部 知识都搞懂了再去开发产品。这话前面好象说过了! 6.RST/PD(9):复位信号输入端/备用电源输入端 什么是复位信号,为什么要加复位信号?当然也暂时不去管它 7. EA/VPP(31):内/外部ROM选择端。 在30、9脚的功能上不知大家注意没有,都有一个/,什么意思呢?这是引脚的第二功能,也就是 说,该引脚既可以作前面的功能,也可以作后面的功能,至于它是如何工作的,我们暂时也别去研究它 单片机之友QQ:280919249
单片机教程 (MCS-51 系列) 8 单片机硬件结构和开发过程 从这一课开始,我们就要正式开始学习单片机了(如果你还没准备好,我们也不等了☺)。前面我 们曾经提到过单片机的内部结构是由 CPU、ROM、RAM 等等组成,它们的内部结构我们以后再讲,这一课 让我们先来看看它的外部引脚(既硬件结构),看下面的图,这就是我们要实验用的 89C51 单片机的外 部引脚图,给大家简单介绍一下。 一.单片机的引脚功能 1. VCC(40):电源+5V。 2. VSS(20):接地,也就是 GND。 3. XTL1(19)和 XTL2(18):振荡电路。 单片机是一种时序电路,必须有脉冲信号才能工作,在它的内部有一个时钟产生电路,有两种 振荡方式,一种是内部振荡方式,只要接上两个电容和一个晶振即可;另一种是外部振荡方式,采用外 部振荡方式时,需在 XTL2 上加外部时钟信号(详细的内容将在以后的课程中专门介绍)。 4. PSEN(29):片外 ROM 选通信号,低电平有效。 5. ALE/PROG(30):地址锁存信号输出端/EPROM 编程脉冲输入端。 至于它们的作用我们暂时不去管它,等以后学到相关的知识时再来研究它。这也许就是本教程区 别于其他教材的最大特点----先实践后理论,尽量用实验结果来总结理论知识,因为单片机是一种通用 的产品,它的功能设计是为了满足大多数使用者的要求,换句话说,不同的使用者只会使用其相关的功 能,几乎不可能把全部的功能都用起来,因此我们完全不必象学习其他电子技术那样,把单片机的全部 知识都搞懂了再去开发产品。这话前面好象说过了! 6. RST/VPD(9):复位信号输入端/备用电源输入端。 什么是复位信号,为什么要加复位信号?当然也暂时不去管它。 7. EA/VPP(31):内/外部 ROM 选择端。 在 30、9 脚的功能上不知大家注意没有,都有一个/,什么意思呢?这是引脚的第二功能,也就是 说,该引脚既可以作前面的功能,也可以作后面的功能,至于它是如何工作的,我们暂时也别去研究它。 单片机之友 QQ:280919249