单片机培训教材_第1页
单片机培训教材_第2页
单片机培训教材_第3页
单片机培训教材_第4页
单片机培训教材_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2007 (教师组)单片机培训计划一、培训对象:电子专业及相关专业的教师二、培训课时:18个课时三、培训地点:多媒体教室和电子实训室(主要)四、培训目的:众所周知,电子行业已经完成了产业升级,从一般的硬件技术发展到以软件的二 次开发技术,电子产品已经走向了智能化,微型化的道路,而单片机技术正是这一变化的代表 性技术,它是计算机技术和电子技术的结合,是电子技术的发展方向,是电子产业升级的产物。 因此特举办此单片机培训,目的是和大家一起走进单片机技术门槛,本次培训属于入门级基础 培训。五、培训内容:第一章单片机系统制作概述(1课时)第二章单片机的外部结构(引脚功能)(2个课时)第三章发光二极管和数

2、码管显示原理(1课时)第四章单片机的工作条件(1课时)第五章指令系统(2个课时)第六章延时子程序的设计(1课时)第七章KEIL C51软件的使用(一个课时+自学)第八章单片机最小系统制作(6个课时)附件学习:其他外围器件的相关知识六、培训器材:单片机散件一套(大概30元左右)清单如下:数码管:共阴极2只(分立)电解电容:10UF的一只30PF的电容2只220欧的电阻9只4.7K的电阻一只1.2K的电阻一只4.7K的排阻一只,12MHZ的晶振一只有源5V蜂名器一只AT89S51单片机一片常开按钮开关1只紧锁座一只(方便芯取下来的,绿色的)发光二极管(5MM红色)8只万能板电路版15*17CMS8

3、550三极管一只5V电池盒一只,导线若干。笔记本电脑、编程器及相关软件培训讲义一份第一章单片机系统制作概述单片机是一门实践性很强的课程(是半软半硬的东西),所以必须是理论联系实践,我试过很多 种教学法,还是觉得“任务教学法”的效果最好。同时我也接触了德国最先进的教学法:行动导向教 学法。因此本人的课程将按行动导向教学法中的项目教学法“任务教学法”这个教学思路来编写。完 全按照人的认知规律来组织教学,注重对学者的能力的培养。也是我提到的“学习的知识不如学习知 识的能力重要”。单片机是一个很多人都想学习的东西,但是如果没有必要的条件是很难学会单片机的。我建议大 家需要准备学习单片机的条件是:1、要

4、有一台电脑,P4更好。2、要有一个编程器,用来把编译好的程序写入单片机的ROM里面,把写好后的芯片插到试验板上 面进行试验。专业的1000元以上,中等的400800元,低档的150元左右,一些网上销售的一些 杂类的也有80100元左右的。4、要有一个硬件单片机试验板,作为单片机试验的外围电路部分。商品化的一般是200500元钱, 复杂的就更是天价了。5、要有几个用来试验的单片机芯片,比如应用的比较广泛的89C51,89S51,89S52等,一般的市 场零售价是79元不等。如果买2片的话在20元左右即可。以上提到的我们学校都为大家准备好了,请大家放心学习,下面我们来谈谈学习的相关内容。教学目的:

5、了解单片机开发过程学会制作和开发单片机系统教学重点:单片机系统制作过程教具:单片机系统套件(散件)实验系统一套教学方法:任务教学法教学步骤确定任务开发单片机最小系统任务分析:该系统具有的功能:具有2位LED数码管显示功能。八路发光二极管显示各种流水灯。可以完成各种奏乐,报警等发声音类实验。复位功能知识准备单片机的外部结构(引脚功能)发光二极管和数码管显示原理其它外围器件的相关知识,三极管,蜂鸣器,语音片/音乐片.排阻.晶振.单片机工作条件指令代码延时程序程序编码 KEIL C51开发平台的使用方法。软件仿真和硬件仿真单片机系统的调试方法工具及材料准备(1)编程器采用AE综合系统单片机最小系统套

6、件电烙铁,万用表,万能板,导线若干等电脑及Keil软件制作过程清理制作套件依据任务功能设计原理图把原理图转变成电路图,并画在万能板上焊接元器件并检查线路程序设计软件仿真用编程器把程序输入到单片机中通电,观看结果自我评价产品老师综合点评以上是我们的主要学习内容和学习方法。下节课开始是我们的理论学习。第二章单片机的外部结构(引脚功能)一、教学目的:掌握单片机的引脚功能二、教学重点:单片机的P0、P1、P2、P3 口的使用和区别三、教学步骤:(1)单片机(AT89S51)外观单片机(AT89S51)的引脚功能图Plot pi. 1 r Pl.2 匚 Pi L FJ.4 fl i L Pfc.t c

7、p l J RST C 4帏乂心)F3 0 e (TXDJ P3. 1 r PNTfl) F3.Z C HfKnfTj ? j jj C (TO) P3 4 (T|j! P9 i (WTTj P3 6 C p,,u XTAL2 C KI散 LI GND CJ Afl2JU3 4JT5 f34B34D 153 li1 a301-2Zfl1J 1427mit槌25IT 槌319sZ2IO111 VCCPfl.O rAD .|AD1) PO r 4AO2)iPO.a |AD) PG.4 4AD4) P0.& 4ADD)PO.T MOT) :EJf/VPP ale/PROOP.T 1A1 PZ.d W

8、 PS $ MF PZ.a iAIZF 酎卫3 W U P2 2 (A10 PI.1 EM :PS.fli 4AS|.51系列单片机8031&05S及9c51/89s51 一般采用40Pin封装的双列直接DIP结构。上图是它们的引脚配置:40个引脚中,正电源和地线两根,外置 石英振荡器的时钟线两根,4组8位共32个I/O 口,中断口线与P3 口线复 用。现在我们对这些引脚的功能加以说明:1、电源引脚Vcc 40脚 正电源脚,工作电压为5V,另有AT89LV51工作电压则是2.7-6V, 引脚功能一样。GND 20 接地端外接晶体引脚Pin19:时钟XTAL1脚,Pin18:时钟XTAL2脚,X

9、TAL1是片内振荡器的反相放大 器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1, 而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时 钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。型号同样为AT89C51的芯片,在其后面还有频率编号,有12,16,20,24MHz可选。 大家在购买和选用时要注意了。如AT89C51 24PC就是最高振荡频率为24MHz,40P6 封装的普通商用芯片。3.复位RST 9在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚 时,将使单片机复位

10、,只要这个脚保持高电平,51芯片便循环复位。复位后P0-P3 口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚 由高电平变为低电平时,芯片为ROM的0000H处开始运行程序。常用的复位电路如 图2-3所小。复位操作不会对内部RAM有所影响。当8051通电,时钟电路开始工作,在RESET 引脚上出现24个时钟周期以上的高电平,系统即初始复位。什么叫复位?复位是单片 机重新执行程序代码的意思。8051的复位方式可以是自动复位,也可以是手动复位,见下图。此外,RESET/Vpd 还是一复用脚,Vcc掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数 据不丢失。4、输

11、入输出(I/O)引脚:Pin1-Pin8为输入输出脚,称为P1 口,是一个带内部上拉电阻的8位双 向I/0 口。P1 口能驱动4个LSTTL负载。通常在使用时外不需要外接上拉电阻,就 可以直接驱动发光二极管。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。 与此引脚相似的有Pin20-Pin27为P2 口。我们现在讲一个它的输出功能吧,在单片机工作时,我们可以通过用指令控制 单片机的引脚输出高电平或者低电平。如:指令CLR,清零的意思。CLR P1.0;让单片机从第一脚输出低电平。指令SETB,置1的意思。SETB P1.0 ;让单片机从第一个脚输出高电平。请问让第8个脚输出低电平的指令如

12、何写?Pin21-Pin28为输入输出脚,称为P2 口,是一个带内部上拉电阻的8 位双向I/O 口,P2 口能驱动4个LSTTL负载。端口置1时,内部上拉电阻将端口拉 到高电平,作输入用。对内部Flash程序存储器编程时,接收高8位地址和控制信息。 在访问外部程序和16位外部数据存储器时,P2 口送出高8位地址。而在访问8位地 址的外部数据存储器时其引脚上的内容在此期间不会改变。Pin39-Pin32为输入输出脚,称为P0 口,是一个8位漏极开路型双向 I/O 口。内部不带上拉电阻,当外接上拉电阻时,P0 口能以吸收电流的方式驱动八个 LSTTL负载电路。通常在使用时外接上拉电阻,用来驱动多个

13、数码管等。在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低8位)/数据总 线,不需要外接上拉电阻。例子:驱动数码管的电路Pin10-Pin17为输入输出脚,称为P3 口,是一个带内部上拉电阻的8 位双向I/O 口,(P2 口能驱动4个LSTTL负载),这8个引脚还用于专门的第二功能。 端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器 编程时,接控制信息。(P1P3端口在做输入使用时,因内部有上接电阻,被外部拉 低的引脚会输出一定的电流)。除此之外P3端口还用于一些专门功能,具体请看 表2 2.。P3引脚兼用功能P3.0串行通讯输入(RXD)P3.1串

14、行通讯输出(TXD)P3.2外部中断0 ( INT0)P3.3外部中断1 (INT1)P3.4定时器0输入(T0)P3.5定时器1输入(T1)P3.6外部数据存储器写选通WRP3.7外部数据存储器写选通RD5、什么叫上拉电阻?上拉电阻简单来说就是把电平拉高,通常用4.7 10K的电阻接到Vcc电源,下拉 电阻则是把电平拉低,电阻接到GND地线上。具体说明也不是这里要讨论的,接下来 还是接着看其它的引脚功能吧。6、其它的控制或复用引脚ALE/PROG 30访问外部存储器时,ALE (地址锁存允许)的输出用于锁存地址 的低位字节。即使不访问外部存储器,ALE端仍以不变的频率输出脉冲信号(此频率是

15、振荡器频率的1/6)。在访问外部数据存储器时,出现一个ALE脉冲。对Flash存储器编 程时,这个引脚用于输入编程脉冲PROGPSEN 29该引是外部程序存储器的选通信号输出端。当AT89C51由外部程序存 储器取指令或常数时,每个机器周期输出2个脉冲即两次有效。但访问外部数据存储器 时,将不会有脉冲输出。(3) EA/Vpp 31外部访问允许端。当该引脚访问外部程序存储器时,应输入低电平。 要使AT89S51只访问外部程序存储器(地址为0000H-FFFFH),这时该引脚必须保持低 电平。对Flash存储器编程时,用于施加Vpp编程电压。看到这您对AT89S51引脚的功能应该有了一定的了解了

16、,引脚在编程和校验时的 时序我们在这里就不做详细的探讨,通常情况下我们也没有必要去撑握它,除非你想自 己开发编程器。第三章发光二极管和数码管显示原理1、什么是发光二极管发光二极管在日常生活电器中无处不在,它能够发光,有红色、绿色和黄色等,有直径3mm、5mm和2X5mm长 方型的的。与普通二极管一样,发光二极管也是由半导体材料制成的,也具有单向导电的性质,即只有接对极性才 能发光。发光二极管符号比一般二极管多了两个箭头,示意能够发光。通常发光二极管用来作电路工作状态的指示, 它比小灯泡的耗电低得多,而且寿命也长得多。用发光二极管,还可以构成电子显示屏,证券交易所里的显示屏就 是由发光二极管点阵

17、构成的,只是因为各种色彩都是由红绿蓝构成,而蓝色发光二极管在以前还未大量生产出来, 所以一般的电子显示屏都不能显示出真彩色。发光二极管的发光颜色一般和它本身的颜色相同,但是近年来出现了透明色的发光管,它也能发出红黄绿等颜色的 光,只有通电了才能知道。辨别发光二极管正负极的方法,有实验法和目测法。实验法就是通电看看能不能发光, 若不能就是极性接错或是发光管损坏。注意发光二极管是一种电流型器件,虽然在它的两端直接接上3V的电压后能够发光,但容易损坏,在实际使用中 一定要串接限流电阻,工作电流根据型号不同一般为1mA到3OmA。另外,由于发光二极管的导通电压一般为1. 7V 以上,所以一节1. 5V

18、的电池不能点亮发光二极管。同样,一般万用表的RX1档到RX1K档均不能测试发光二极管, 而RX10K档由于使用15V的电池,能把有的发光管点亮。用眼睛来观察发光二极管,可以发现内部的两个电极一大一小。一般来说,电极较小、个头较矮的一个是发光 二极管的正极,电极较大的一个是它的负极。若是新买来的发光管,管脚较长的一个是正极。这是发光二极管:LED下面来看看这个电路,当开关J1打开时,没有电流流过发光二极管,发光二极管不亮。VCC当开关J1合上时,有电流流过发光二极管,发光二极管点亮。VCC300。1、什么是数码管LED许多电子产品上都有跳动的数码来指示电器的工作状态,其实数码管显示的数码均是由八

19、个发光二极管构成的。 每段上加上合适的电压,该段就点亮。LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8 字加一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫共阴的,那么应用时这个脚就分别 的接VCC和GND。再把多个这样的8字装在一起就成了多位的数码管了。外形如下:共阳型就是八个发光管的正极都连在一起,作为一条引线。 内部结构共阴型就是七个发光管的负极都连在一起,作为一条引线。引脚图AG段用于显示数字,字符的笔画,(dp显示小数点),每一段控制AGdp的亮与来.COM引脚连通,作为公用端分析下图,请说明显示09十个数字时,开关如何设置Key = G合上用

20、”1”表示,打开用”0”表示.开关设置状态如下所示”:J1J2J3J4J5J6J7显示111111000110000111011121111001301111410110115001111161110000071111111811110119第四章单片机的工作条件单片机要想正常工作,必须具备以下工作条件:电源 VCC +5V 40 脚接地GND 0V 20脚复位电路:RES引脚维持高电平时间不能少于24个振荡周期,单片机保持在复位状 态(时钟周期=12X振荡周期,振荡周期=1/f)。时钟电路:单片机的工作是在统一时钟下工作的,所以必须有时钟电路。存储器控制电路:第31脚EA端。当EA输入端输入

21、高电平时,CPU可以访问片 内程序存储器4KB的地址范围,若PC值超出4KB范围时,将自动转向访问片外 程序存储器。当EA输入低电平时,则只能访问片外程序存储器,不论片内是否有 程序存储器。基于此,我们在设计时一般都让EA端接高电平。单片机内部必须具有相应的程序。综上述,单片机必须至少具备以下电路:INT1CP3.3)INT0(P3.2)TI(K3.5)T0(P3.4)虱气T7CTALIXTAI2RifSETKD(P3,7)WRg6)a0.i_2.3, W1 1 1 1 1 1 1 FFPFFFPPFg(ADD) PO.1(AD1 P0.2(AU2) P0.3(AD3) FO”A

22、D0 PO.5(AD5) P0.6(AU6) P0.7(AD7)P2.0(A8) P2.1(A9)P2.(A12)P2.5(A13)理忒Al硕P2.7CA151EAAT vuv GND HXD(P3.U) TXP(P3.1) ALETQGPSEN1020I 1。r-nr3oovccGKDAT89S51第五章指令系统在讲指令系统前我们先来复习一下数制的概念。十进制(Decimal)基数是10,它有10个数字符号(数码),即0,1,2,3,4,5,6,7,8,9。其中最 大数码是基数减1,即9,最小数码是0。二进制(Binary)基数是2,它只有两个数字符号,即0和1。这就是说,如果在给定的数中,

23、除0和1 外还有其它数,例如1012,它就决不会是一个二进制数。3、十六进制(Hexadecilnal)基数是16,它有16个数字符号,除了十进制中的10个数可用外,还使用了 6个英文 字母。它的 16 个数字依次是 0,l,2,3,4,5,6,7,8,9,A,B,C,D,E,F。 其中A至F分别代表十进制数的10至15,最大的数字也是基数减1。4、二进制数与十六进制数的相互转换。(1)、二进制转换为十六进制:整数部分,从低位开始,小数部分,从高位开始,每四位一组(不够四位的补0),转 换为对应的十六进制数。例:(1 0001 0011.1100 0111)2=(113.C7)H(2)、十六进

24、制转换为二进制:将十六进制数的每一位分别转换为对应的四位二进制数。例:(3E9D)H=(11 1110 1001 1101)B例:(2ABE)H= 0010 1010 1011 1110B以后我们在单片机编程方面采用十六进制,这个请大家注意了!MCS-51系列单片机的指令系统共有111条指令,其中49条是单字节指令,45条是双 字节指令,17条是三字节指令。MCS-51的指令系统共有33个功能,用汇编编程时只需 要42个助记符就能指明这33个功能操作。指令格式:MCS-51汇编语言指令格式与其他微机的指令格式一样,均由以下几部分组 成:标号:操作码操作数,操作数;注释如:START: MOVP

25、1,#0FFH ;把立即数 0FFH送到 P1 口。标号:又称为指令地址符号,是地址的符号化,一般由1到6个字符组成,以字母开头 的字母数字串,与操作码之间用冒号分开。操作码:是由助记符表示的字符串,它规定了指令的操作功能。如:MOV 操作数:是指参加操作的数据和数据的地址。注释:是为该条指令作说明,以便于阅读。注意:中表示为可选项。操作数可以为1、2、3个,也可以没有。不同功能的指令,操作数作用不同,如:传送指令多数有两个操作数,写在左面的 是目的操作数(表示操作结果存放的单元地址),写在右面的称为源操作数(指出操作 数的来源)。操作码和操作数之间必须用空格分隔,操作数与操作数之间必须用逗号

26、“,” 分隔。带方括号项可有可无,称为可选项。操作码是指令的核心不可缺少。1、指令分类MCS-51的111条指令分为下面5类:(1)数据传送类指令29条,分为片内RAM,片外RAM、程序存储器的传送指令, 交换及堆栈操作指令。算术运算类24条,分为加,带进位加,减,乘,除,加1,减1指令。逻辑运算类24条,分为逻辑与、或、异或、移位指令。控制程序转移类17条,分为无条件转移与调用,条件转移,空操作指令。布尔变量操作类17条,分为数据传送、位与、位或,位转移指令。2、指令代码:数据传送类MOV传送数据指令格式:MOV A,#DATA将立即数DATA送到累加器A中。例:MOV P1,#111111

27、10B 把立即数 11111110B传送到 P1 口。MOVX片外数据存储器传送数据指令格式:MOVX A,DPTR; 将 DPTR指向的地址单元中的内容传送至A中。例:MOV DPTR,#1000H;将地址1000H传送到数据指针DPTR中。MOVX A,DPTR; 将DPTR指向的地址单元(1110H)中的内容传送至A 中。MOVC程序存储器传送数据指令格式:MOVC A,A+DPTR;例:MOV A,#00HMOV DPTR,#1000H;将地址1000H传送到数据指针DPTR中。MOVC A,A+DPTR;把累加器A的值和DPTR的值相加得到值作为地址,把 这个程序存储器的地址单元中的

28、内容传送到A中。算术运算指令ADD不带进位的加法类指令指令格式:ADD A,#DATA把立即数DATA和累加器A的内容相加得到的值 存放到累加器A中。A+DATA-A例:SETB C;让累加器C置1MOV A,#01H;A=01HADD A,#01H;A=02HADDC 带进位的加法类指令指令格式:ADDC A,#DATA;把立即数DATA和累加器A的内容相加,再加上 进位标志C得到的值存放到累加器A中。A+DATA+C-A例:SETB C;把累加器C置1MOV A,#01H ; A=01HADDC A,#01H; A+DATA+Cf A ,A=03HSUBB带借位的减法类指令指令格式:SUB

29、B A,#DATA把累加器A的内容减去立即数DATA再减去进位 标志C得到的值存放到累加器A中。A-DATA-Cf A例:SETB C;让累加器C置1MOV A, #03H; A=03HSUBB A, #01H; A=01HINC加一指令指令格式:INC A ;把A的内容加1再存储到A中。例:MOV A,#01H; A=01HINC A ; A=02HDEC减1指令指令格式:DEC A ;把A的内容减1再存储到A中。例:MOV A,#03H ; A=03HDEC A ; A=02H逻辑运算指令CLR清零指令指令格式:CLR A ;把A的内容清零再存储到A中,A=00H。MOV A,#00000

30、001B; A=00000001BCLR A; A=00000000BCPL按位取反指令格式:CPL A;把A的内容按位取反后再存储到A中。例:MOV A,#00000001B; A=00000001BCPL A; A=11111110BANL按位取与指令格式:ANL A ;把A的内容按位取与后再存储到A中。例:MOV A,#01000001B ; A=00000001BANL A,#01001111B; A=01000001BORL按位取或指令格式:ORL A ;把A的内容按位取或后再存储到A中。例:MOV A,#00000001B ; A=00000001BORL A,#10001111B

31、; A=10001111BXRL按位取异或,相同为0,不同为1。指令格式:XRL A ;把A的内容按位取异或后再存储到A中。例:MOV A,#00000001B; A=00000001BXRL A,#00001111B; A=00001110BRL左移位指令指令格式:RL A ;把A的内容按位左移后再存储到A中。例:MOV A,#00000001B; A=00000001BRL A; A=00000010BRL A; A=00000100BRL A; A=00001000BRR右移位指令指令格式:RR A ;把A的内容按位右移后再存储到A中。例:MOV A,#00000001B ; A=100

32、00000BRRA;A=01000000BRRA;A=00100000BRRA;A=00010000B(4)位操作指令SETB置1指令,只能对位操作,不可以对字节操作。指令格式:SETB BIT ;对位BIT置1。例:SETB P1.0 ; P1.0=1CLR清零指令,可对位操作,也可对字节操作。指令格式:CLR BIT ;对位BIT置0。SETB CMOV A,#11110000BCLR CCLR ACPL取反,可对位操作,也可对字节操作。指令格式:CPL BIT ;对位BIT取反。SETB CMOV A,#11110000BCPL CCPL A控制及转移指令LJMP长跳转指令指令格式:LJ

33、MP标号;程序将跳转到标号处执行。LCALL长调用子程序指令,常与RET配合使用。指令格式:LCALL标号;调用为标号的子程序去执行。RET子程序返回指令。DJNZ条件转移类指令(自减一指令)指令格式:LOOP: DJNZ R7,LOOP执行分两步:(1)将R7的内容减一后再送到R7中。(2)判断R7是不是等于0如果是等于0,顺序执行下面的程序。如果不等于0,跳转到标号为LOOP的地方去执行。第六章 延时子程序的设计要了解延时子程序,必须明白下面的概念:1、时钟周期=12X振荡周期2、振荡周期=1/晶振频率3、指令周期=执行一条指令的时间4、每条指令的指令周期不一样,有的是一个时钟周期,有的要

34、二个,三个,甚至 四个时钟周期。如:LOOP: DJNZ R7,LOOP这条指令需要2个时钟周期。5、假设某单片机采用12MHZ的晶振组建时钟电路,请计算下面的延时子程序的 大概延时时间是多少豪秒?DELAY:MOV R7,#200D1:MOV R6,#200D2:DJNZ R6,D2;执行这条指令的次数200X200DJNZ R7,D1RET6、设某单片机采用6MHZ的晶振组建时钟电路,设计延时约50毫秒的延时子程 序。第七章KEIL C51软件的使用一、建立您的第一个C项目使用语言编写程序肯定要使用到程序编译器,以便把写好的单片机程序编译为 机器码,这样单片机才能执行编写好的程序。KEIL

35、 uVISION2是众多单片机应用开 发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑, 编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和 常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也 有很强大的功能。因此很多开发51单片机的工程师或普通的单片机爱好者,都对它 十分喜欢。以上简单介绍了 KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51 是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网 站上下载一份能编译 2K的DEMO版软件,(也可以在我的个人网站教师吧()下载一

36、个完全版来学习,可以满足一般的个人学习和小型应用 的开发。(安装的方法和普通软件相当,里面有详细的说明,这里就不做介绍了)。安装好后,你是不是迫不及待的想建立自己的第一个C程序项目呢?下面就让 我们一起来建立一个小程序项目吧。或许你手中还没有一块实验板,甚至没有一块 单片机芯片,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果,结合 平凡老师开发的LEDKEY.DLL键盘仿真实验版(加在KEIL Uvision2中的外围设备 中)可以更直观的观看结果。首先当然是运行KEIL51软件,运行几秒后,出现如图1 1的屏幕。图1 1启动时的屏幕接着按下面的步骤建立您的第一个项目:点击Proj

37、ect菜单,选择弹出的下拉式菜单中的New Project,如图1 2。接 着弹出一个标准Windows文件对话窗口,如图1 3,这个东东想必大家是见了 N 次的了,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。在 文件名中输入您的第一个C程序项目名称,这里我们用test,这是笔者惯用的 名称,大家不必照搬就是了,只要符合Windows文件规则的文件名都行。”保存” 后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后我们可以直接 点击此文件以打开先前做的项目。图 1 一2 New Project 菜单图1一3文件窗口点击保存后弹出一个对话框,选择所要的单

38、片机,这里我们选择常用的Ateml公司 的AT89C51。此时屏幕如图1 4所示。AT89C51有什么功能、特点呢?不用急,看图中 右边有简单的介绍,稍后的章节会作较详细的介绍。完成上面步骤后,我们就可以进行 程序的编写了。Select Device for Target Target 1CPUendorAtmelDeviceF:din i lyAT89C51MCS-51厂 Use Extended Linker M51) instead of BL51厂 Use Extended Assembler (AX51) instead of A51Data baseAT89C4051ATS9C51

39、11AT89C51RCAT89C52AT89C55AT89C55WDAT89F51AT89F52AT89LS51ATS9LS52ATF;yLV51AT89L28051 based Full Static CMOS controller with Three-Level Ft二32 I/O lines 2 T i mers/Coiiriters, 6 InterruptE Eornces4 K Flash Memory, 128 Bytes On-chip RAHEl e scr i p t i on :确定 取消 I首先我们要在项目中创建新的程序文件或加入旧程序文件。如果你没有现成的程 序,那

40、么就要新建一个程序文件。在KEIL中有一些程序的Demo,在这里我们还是以一 个C程序为例介绍如何新建一个C程序和如何加到您的第一个项目中吧。点击图1 5 中1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过 菜单File New或快捷键Ctrl+N来实现。好了,现在可以编写程序了,光标已出现在 文本编辑窗口中,等待我们的输入了。第一程序嘛,写个简单明了的吧。下面是经典的 一段程序,呵,如果你看过别的程序书也许也有类似的程序:图15新建程序文件点击图15中的3保存新建的程序,也可以用菜单FileSave或快捷键Ctrl+S进 行保存。因是新文件所以保存时会弹出类似图1

41、3的文件操作窗口,我们把第一个程 序命名为testl.c,保存在项目所在的目录中,这时你会发现程序单词有了不同的颜色, 说明KEIL的C语法检查生效了。如图1 6鼠标在屏幕左边的Source Groupl文件夹图 标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。我们点击Add File to Group Source Group 1弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗, 程序文件已加到项目中了。这时在Source Group1文件夹图标左边出现了一个小+号说 明,文件组中有了文件,点击它可以展开查看。图16把文件加入到项目文件组中C程序文件已被我们加到了项目中了

42、,下面就剩下编译运行了。这个项目我们只是 用作学习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它 不会生成用于芯片烧写的HEX文件,如何设置生成HEX文件就请看下面的第三课。我 们先来看图17吧,图中1、2、3都是编译按钮,不同是1是用于编译单个文件。2 是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会 再次重新编译的。3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有 改动。在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。 5是菜单中的它们,我个人就不习惯用它了。嘿嘿,这个项目只有一个文件,你按123 中的一

43、个都可以编译。按了?好快哦,呵呵。在4中可以看到编译的错误信息和使用的 系统资源情况等,以后我们要查错就靠它了。6是有一个小放大镜的按钮,这就是开启 关闭调试模式的按钮,它也存在于菜单 Debug StartStop Debug Session,快捷键为 Ctrl+F5。图17编译程序进入调试模式,软件窗口样式大致如图1 8所示。图中1为运行,当程序处于停 止状态时才有效,2为停止,程序处于运行状态时才有效。3是复位,模拟芯片的复位, 程序回到最开头处执行。按4我们可以打开5中的串行调试窗口,这个窗口我们可以看 到从51芯片的串行口输入输出的字符,这里的第一个项目也正是在这里看运行结果。 这些

44、在菜单中也有,这里不再一一介绍大家不妨找找看,其它的功能也会在后面的课程 中慢慢介绍。首先按4打开串行调试窗口,再按运行键,这时就可以看到串行调试窗口 中不断的打?quot;Hello World!。呵呵,是不是不难呀?这样就完成了您的第一个C项 目。最后我们要停止程序运行回到文件编辑模式中,就要先按停止按钮再按开启关闭调 试模式按钮。然后我们就可以进行关闭KEIL等相关操作了。到此为止,第一课已经完结了,初步学习了一些KEIL uVision2的项目文件创建、 编译、运行和软件仿真的基本操作方法。其中一直有提到一些功能的快捷键的使用,的 确在实际的开发应用中快捷键的运用可以大大提高工作的效率

45、,建议大家多多使用,还 有就是对这里所讲的操作方法举一反三用于类似的操作中。D:MyData: File Edit View Project Debug Peripherals Tools 5VC5 Window Help拿享4灵兔嫩钠M |匝同|驰阳妁JEllLoadJj-1W address: _Ll|=| Files 囹|=| testl. c 离 Serial #1令我障面罕We z4m身酉中? pRegi sterHello World!Hello World!Hello World!.)Hello World!Hello World!Hello World!-Ini x|#incl

46、ude AT89X51.H #include void main(void)带 SCON = 0k50;事 TMnn = nv?n -=55 Serial #1第八章单片机最小系统制作一、确定任务开发单片机最小系统二、任务分析:该系统具有的功能:(1)具有2位LED数码管显示功能。(2)具有八路发光二极管显示各种流水灯。(3)可以完成各种奏乐,报警等发声音类实验。(4)具有复位功能。三、功能分析(1)两位LED数码管显示功能,我们可以利用单片机的P0 口接两个数码管来 现这个功能;(2)八路发光二极管显示可以利用P1 口接八个发光二极管实现这个功能;(3)各种奏乐、报警等发声功能可以采用P2.

47、0这个引脚接一蜂鸣器来实现。(4)利用单片机的第9脚可以设计成复位系统,我们采用按键复位;利用单片 机的18、19脚可以设计成时钟电路,我们利用单片机的内部振荡方式设计 的。四、设计框图八路流水灯五、硬件电路设计根据本系统的功能,和单片机的工作条件,我们设计出下面的电路图。R5 22DDR7 220 GR6 220G1 IVCCR1 22CGPlBtTlVCC削由秘10F1BJPflElAHl:PWAfl*FWAD*PlBSHOSr网斑皿PiEflSOPflB5AD5pmstKEdT削驻追iTpistBiD AT89S51PTB1TIDATTPRfiGPgpsEsnmMB7AL5PSEiT#牌

48、璃M4P3E51L如奖心FJE7EDPZE32ULLXT衽*理舆mmu啪心六、元件清单的确定:数码管:共阴极2只(分立)电解电容:10UF的一只30PF的电容2只220欧的电阻9只4.7K的电阻一只1.2K的电阻一只4.7K的排阻一只,12MHZ的晶振一只有源5V蜂名器一只AT89S51单片机一片常开按钮开关1只紧锁座一只(方便芯取下来的,绿色的)发光二极管(5MM红色)8只万能板电路版15*17CMS8550三极管一只4. 5V电池盒一只,导线若干。七、硬件电路的焊接按照原理图把上面的元件焊接好,详细步骤省略。八、相关程序编写针对上面的电路原理图,设计出本系统的详细功能:(1)、第一个发光二

49、极管点亮,同时数码管显示“ 1”。(2)、第二个发光二极管点亮,同时数码管显示“2”。(3)、依次类推到第八个发光二极管点亮,同时数码管显示“8”。以上出现的是流水灯的效果(4)、所有的发光二极管灭了,同时数码管现实“0”。(5)、数码管显示“ 1”。(6)、数码管显示 “2、”直到“9、A、B、C、D、E、F、Y”。(7)、蜂鸣器发出九声报警声后重复上面所有步骤。(8)程序如下:ORG 0000H ;伪指令,定义下面的程序代码(机器代码)从地址 为0000H的单元存放。LJMP START;跳转到标号为START的地方去执行。ORG 0030H ;伪指令,定义下面的程序代码(机器代码)从地址

50、 为0030H的单元存放。START:MOV P1,#0FEH ;点亮第一个发光二极管。CLR P2.7;送低电平到第一个数码管,开启数码管。CLR P2.6;送低电平到第二个数码管,开启数码管。MOV P0,#06H;让数码管显示“1”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P1,#0FDH;点亮第二个发光二极管。MOV P0,#5bH;让数码管显示“2”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P1,#0FBH;点亮第三个发光二极管。MOV P0,#4fH;让数码管显示“3”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV

51、P1,#0F7H;点亮第四个发光二极管。MOV P0,#66H;让数码管显示“4”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P1,#0EFH ;点亮第五个发光二极管。MOV P0,#6dH;让数码管显示“5”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P1,#0DFH ;点亮第六个发光二极管。MOV P0,#7dH;让数码管显示“6”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P1,#0BFH ;点亮第七个发光二极管。MOV P0,#07H;让数码管显示“7” 。LCALL DELAY;调用延时子程序,起到延时的目的。MOV

52、P1,#7FH ;点亮第八个发光二极管。MOV P0,#7fH;让数码管显示“8”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P1,#00H ;灭了所有的发光二极管。MOV P0,#3FH;让数码管显示“0”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#06H;让数码管显示“1”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#5bH;让数码管显示“2”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#4fH;让数码管显示“3”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0

53、,#66H;让数码管显示“4”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#6dH;让数码管显示“5”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#7dH;让数码管显示“6”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#07H;让数码管显示“7” 。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#7fH;让数码管显示“8”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#6fH;让数码管显示“9”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P

54、0,#7fH ;让数码管显示“A”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#7fH;让数码管显示“b”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#7fH ;让数码管显示“C” 。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#7fH;让数码管显示“d”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#7fH;让数码管显示“E”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV P0,#7fH;让数码管显示“F”。LCALL DELAY;调用延时子程序,起到延时的目的。MO

55、V P0,#7fH ;让数码管显示“Y”。LCALL DELAY;调用延时子程序,起到延时的目的。MOV R4,#9;送蜂鸣器的报警次数。LOOP:SETB P2.0;不发声LCALL DELAY;调用延时子程序,起到延时的目的。CLR P2.0 ;发声。LCALL DELAY;调用延时子程序,起到延时的目的。DJNZ R4,LOOP ;发声九次后向下执行。SETB P2.0;关闭发声LJMP START;跳转到标号为START处执行,循环本程序。DELAY: MOV R7, #200;这是延时子程序。D1: MOV R6,#200D2: MOV R5,#200D3: DJNZ R5,D3DJ

56、NZ R6,D2DJNZ R7,D1RET;延时子程序返回指令。END;结束伪指令。九、利用KEIL C51软件对上面的程序进行调试和编译,产生*.HEX文件,以便用编程器 写入单片机芯片中。十、编程器的使用:用编程器把电脑里生成的*.HEX文件写到芯片中。十一、产品调试:通上4.5V (三节电池)的电源,可以调试本系统,如果没有 错误就可以正常工作了。附件:其他外围器件的相关知识一、电容二、三极管三、排阻四、蜂鸣器五、晶振六、本单片机系统的主要功能有数码管显示数字,可演示流水灯,奏乐,报警,发光二极管的工作原理、数码管的工作原理。四位数码管显示问题方案:(1)让一号数码管显示数字,其他不显示

57、,并延时关掉其他号数码管,让二号数码管显示数字关掉其他号数码管,让三号显示数字关掉其他号数码管,让四号数码管显示数字循环上面的四步七、其他基本原理和用法请自己查相关资料。下面是本人就单片机教学方法的想法,供大家讨论。论行动导向教学法在单片机教学中的应用江西省冶金工业学校刘昆山【摘要】电子行业已经完成了产业升级,且从一般的硬件技术开发升级到了软件的二次开发了,电 子产品已经走向了智能化、微型化。单片机技术作为这一产业革命的标志被中职教育提到了 学习主流上来了,然而传统的单片机教学在教学过程中遇到了前所未有困难,于是应运而生 新的教学方法“行动导向教学”在单片机中得到了具体的应用,本文着重讨论如何

58、在单片机 教学中使用行动导向教学法。【关键字】行动导向教学法,项目教学法,任务教学法,单片机技术随着经济和社会的发展,我国职业技术教育正从规模扩张型向数量扩张和质量提高并重型转变, 提高职业技术教育的质量成为当前的重要任务,其中采用先进的教学方法是提高教学质量的关键。 本文以单片机教学为例进行阐述行动导向教学法的应用。根据我的教学经验和我校的实际情况,提出了以行动导向教学法中的项目教学法在单片机教 学中的应用。单片机是一门实践性很强的课程(是半软半硬的技术),教学中必须注意理论联系实 践的教学。一、传统的单片机教学及存在的问题传统的单片机教学仍旧沿袭普通中学常用的以教师讲授知识为主的教学模式,

59、强调理论知识体 系的完整性、严密性。而对于理论知识的学习正是中职学校的学生的弱项,他们不善于逻辑思维, 不善于从理论推导得出结论,所以我们的学生普遍存在着严重的厌学情绪,使得老师抱怨现在的学 生越来越难教了,学生抱怨老师讲的理论知识枯燥乏味,什么都没听懂。传统的单片机教学是以单片机的知识结构为主线,把单片机知识系统分成硬件结构、指令系统、 软件编程、单片机系统的扩展和各种外围器件的应用,最后是讲单片机系统的开发及应用,授课的 顺序:按照此种教学结构,学生普遍感到难学,原因何在?受学生的认知 水平的限制,学生只能糊里糊涂地学完了第一部份的单片机硬件结构, 第二部份一开始就是指令系统的寻址方式,更

60、抽象。很多学生直到学完单 片机还不能理解寻址方式究竟是什么意思?为什么需要这么多寻址方式? 刚开始学当然更不懂了。但是我们还得把指令系统(111条指令)不分重 点一下子全部都学完。第三部份是编写程序。如果说前面的东西不能理 解和掌握,是靠记忆来获取的知识,而这部份的知识是需要理解和掌握的 了,如果以前没学过编程,短时间内很难掌握编程的有关知识(程序的结 构、算法等等),更不必说编程技巧了。总之,传统的教学法基本上都是以单片机知识为蓝本来学习计算机原 理,而不纯为学习单片机技术,在教材、教学过程的安排上又没有考虑人 的接受能力,使得学习的过程是一个充满不断挫折的过程,于是很多人认 为单片机入门难

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论