实验报告
课程名称: 微型计算机基础 实验项目名称:流水灯左移右移实验 时间: 2014-11-05
班级:软件 x 班
姓名: xxx
学号: xxxxxxxx
实验一:流水灯左移右移实验
实验目的:初步了解单片机I/O 口的工作原理,进一步掌握51单片机的汇编指 令。
实验内容:用汇编指令对单片机I/O 口进行编程,控制8个发光二极管的流水亮 灭。
功能要求:做单一灯的左移右移,八个发光二极管LO— L7分别接在单片机的P0.0
—P0.7接口上,输出“ 0”时,发光二极管亮,开始时 P0.0-P0.1 -P0.2-P0.3 P0.7 — P0.6 ——— P0.0 亮,重复循环。
电路图如下:
和FDM.DIi fnjrxDff PD3FAC3nr M.1Hl Mj■i.?M5 ■1jEMT■TSHf ALE.FD^AISFE1GD6 iPU.FfftPT燈口姫 rz'-i/AS 甩MPP2?w^-rz FZS^tJ PZj&<1#
和
FDM.DIi fnjrxDff PD3FAC3
nr M.1
Hl Mj
■i.?
M5 ■1jE
MT
■TSHf ALE.
FD^AIS
FE1GD6 iPU.FfftPT
燈口姫 rz'-i/AS 甩MP
P2?w^-rz FZS^tJ PZj&<1# 陀T出怔
PiarKKb Fiinxe fswm Fa^irnr
F3L*Tn
P3*T1
PMjS负JI rajrrff
g r *屮换
选用的元器件:
注意事项:电路板已经焊接好,流水灯接的是P0 口,同时液晶显示模块也接在 P0 口,液
晶显示模块的使能信号接 P2.7 口,因此做次实验,应将 P2.7清零,同时P3.7应该清0,这 样LED才能正常工作。
在仿真的时候,晶振和复位电路不画出亦可,简化电路图如下:
—D1 ■ ■R1 ■il J1RP11CO'XTAL1闪 CXADG
—D1 ■ ■
R1 ■
il J1
RP1
1CO
'XTAL1
闪 CXADG
XTAL^
FOf^DH 2fl^rAD2 =0 3/AD3
R5T
印.4的中
P5FN
P2 0W8
P2-1M9 说"町I"
P2.iUA1i2
J.trfAlJ
P2 ?^15
咖甬口
PI .1
P3.1STXD
M2
J.jj匸
pi 3/hrri
PI .4
F3 4.iTQ
PI.5
旳新」
Pi ?
P3 ?jRV
1QO -
?'■:
ICO
II
LED-Mjy 「f
已经完成上面实验的同学,可以在此基础上,使用定时器来进行延时,延时时间应该稍大, 否则看不出来流水灯熄灭点亮的效果。
实验环境:硬件:PC机
软件:keil C51、Proteus 7
实验过程:
1、打开Proteus 7,按照上面的实验内容的电路图进行画图。
2、打开 Keil C51 ,
(1) 启动后,点击Project菜单新建项目,新建项目后,选择为 AT89C51 的仿真单片机的型号,单击 File选择New新建程序文件,保存后,右击 Source Group1添加入程序文件。
(2)编写程序,右击Target 1打开设置输出HEX窗口,如下图所示:
#include Hreg5
#include Hreg5
■; e f ?rt ' T t 1'
Opti oriz for TargetiJ
X
保存,(3)设置输出联EX】文件,a勾选上Output下的Create HEX Fi:,单击确定 运行程序得到HEX文件,如下图所示:
保存,
Opt ions for Target 'Target
Target Dutp-ut Listing C51A51BL51 Locate
Target Dutp-ut Listing C51
A51
BL51 Locate ] SL51 Mi 昶;
:elfrct Folder for Objects..fxecutable:?
:elfrct Folder for Objects..
fxecutable:
?EKecutaLl&:. Vdi^^iibu
J D总Vug Inform ati c
P “mW
P “mW HEX Ti:
HEX HEX-60
3、实验的程序:ORG 000HMOV A,#0FEHMOV P0, ACLR P2.7
3、实验的程序:
ORG 000H
MOV A,#0FEH
MOV P0, A
CLR P2.7
CLR P3.7
LOOP3: MOV R2,#8H
LOOP1: RL A
MOV P0,A
;使P0 口只有P0.0亮,其它不亮
;累加器循环左移
;将移动后的结果赋给 P0
LCALL DELAYDJNZ R2,LOOP1MOV R2,#8LOOP2: RR