实验三、P1口亮灯实验
一、实验目的:
a)掌握keil及proteus的联合仿真方法
b)掌握并口的操作方法
c)掌握延时程序的编写
二、实验内容:
P1口做输出口,接八只发光二极管(低电平时发光),P0口接七段数码管,编
写程序,使发光二极管循环点亮。
请根据系统电路图,编写相应的程序并给予适
当的注释。
(一)实验要求:
z基本要求:
a)每个二极管每次点亮持续的时间约为一秒钟,假设使用的系统时钟频率为
12MHZ;
b)其中时间控制可以利用延时程序实现,也可以利用定时器实现;
c)正确连接电路,编写程序,调试运行,使发光二极管能够循环点亮;
d)通过Proteus7软件观察实验结果。
z提高要求:能够通过按键控制彩灯循环的模式。
(二)实验基本步骤:
1.打开Keil,新建工程:Project/New Project,输入工程名,并保存
2.选项选择器件:Atmel 的89C51
3.新建程序文本,并另存为该文件为汇编文件格式: (1)“File/New”,(2) File/Save
As/键入欲使用的文件名及后缀名,即“文件名.asm”。
再单击“保存”
4.添加该文件该工程:回到编辑界面后,单击“Target 1”前面的“+”号,然后
在“Source Group 1”上单击右键,单击“Add File to Group ‘Source Group 1’”
选择刚才新建的汇编文件。
5.设置工程该的options选项:projec / options for project,(1)output 选项卡中Create
HEX File 前打勾;(2)Debug 选项卡选择use“Proteus VSM simulator”。
6.用proteus的ISIS打开电路图P1.DSN
7.将proteus 里DEBUG /use remote debug monitor打勾
8.在keil的汇编文件中输入程序代码,并编译,调试。
(1)写完代码后单击“Project”
菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),编译成
功后(0个errors),(每次修改程序后都要重新编译下,才能生效)。
(2)再单击
“Debug”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷
键Ctrl+F5),点击RUN进行运行。
9.观察运行结果:在proteus中点击运行按键,观测二极管是否循环点亮。
基本要求的参考代码
ORG 0000H
MAIN
LJMP
ORG
0030H
MAIN: MOV A, #01H
LP: MOV P1,A ; 点亮LED
LCALL DELAY; 延时
RL A;否则A左移,下一个灯闪烁
SJMP LP;循环不止
Delay: MOV R5,#0FH;;延时子程序DELAY1: MOV R3, #0FFH
DEL2: MOV R4,#0FFH
DJNZ R4, $
DJNZ R3, DEL2
DJNZ R5,DELAY1
RET
END。