项,就可以看到程序运行后的结果,其结果如下图所示
至此,我们在Keil C51上做了一个完整工程的全过程。但这只是纯软件的开发过程,如何使用程序下载器看一看程序运行的结果呢?
10)单击“Project”菜单,再在下拉菜单中单击“”
在下图中,单击“Output”中单击“Create HEX File” 选项,使程序编译后产生HEX代码,供下载器软件使用。把程序下载到AT89S51单片机中。
第三章 AT89S51单片机下载器软件使用
AT89S51单片机下载器是专门用于下载程序到单片机系统中,该软件使用方便。启动软件之后进入下面的界面(如图所示):
图
在上图中:
1. 界面右边为操作状态显示区;
2. 界面左上为下载芯片选择区,该软件支持多种芯片的程序在线下载,对系统板上的单
片机AT89S51是其中一种,软件默认情况下为AT89S51单片机。 3. 界面左边为在线下载的操作区,它可以提供如下的操作
(1). 初始化:启动AT89S51单片机进入ISP下载状态,若启动成功,则状态显示区
就会显示如图所示的文字。否则,不成功会有“初始化失败”的字样提示。
图
(2). 特征字:点击一下检测器件,会读出单片机的芯片的特征字,对于AT89S51
单片机的特征字为:1E 51 06。
(3). 擦除器件:是把单片机的内容擦除干净,即单片机内部ROM的内容全为FFH。 (4). 写器件:把代码区中的程序代码下载到单片机的内部ROM中。注意在编程之前,
要对单片机芯片进行擦除操作。
(5). 效验数据:是经过编程之后,对下载到单片机内部ROM中的内容与代码区的内
容相比较,若程序下载过程中完全正确,则提示校验正确,否则提示出现错误。那就得需要重新下载程序到ROM中。
(6). 自动:提供了从内部ROM从擦除到编程,最后到校验这三个过程。 (7). 读器件:从单片机内部ROM中读取内容到代码显示区中。
. 实验任务
第四章 1.实验及实践课题闪烁灯
1如图4.1.1所示:在端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为秒。
2. 电路原理图
图4.1.1
3. 系统板上硬件连线
把“单片机系统”区域中的端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。
4. 程序设计内容
(1). 延时程序的设计方法
作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体介绍其原理:
498*20+2*20+2=10002
如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒 机器周期 微秒
MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个 2×248 (498 DJNZ R6,D1 2个 2×20=40 10002
因此,上面的延时程序时间为。
由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。如本实验要求秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如下:
DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248
DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2). 输出控制
如图1所示,当端口输出高电平,即=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当端口输出低电平,即=0时,发光二极管L1亮;我们可以使用SETB 指令使端口输出高电平,使用CLR 指令使端口输出低电平。
5.
程序框图
如图4.1.2所示
6.
汇编源程序
ORG 0000H START: CLR
LCALL DELAY SETB
LCALL DELAY LJMP START DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET
END
7. C语言源程序
#include <> sbit L1=P1^0;
void delay02s(void)
4.2.1
图4.1.2
延时子程序,延时秒
;