1 / 18
文档名称:

实验二P1口控制LED发光二极管.doc

格式:doc   页数:18
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验二P1口控制LED发光二极管.doc

上传人:yunde112 2014/5/11 文件大小:0 KB

下载得到文件列表

实验二P1口控制LED发光二极管.doc

文档介绍

文档介绍:实验二 P1口控制LED发光二极管
一、实验目的
1、进一步熟练Proteus及Keil软件的基本操作
2、掌握8051单片机P1口的使用方法
3、掌握LED发光二极管的原理及使用方法
4、学习汇编程序的调试及仿真方法
二、实验电路
三、实验内容及步骤:
要求:8个LED发光二极管循环左移显示(发光的移位),间隔时间为一秒。
1、使用Proteus画出电路原理图
2、在Keil uVision中完成程序编辑、调试及编译,
3、进行Protues与Keil uVision联动的相关设置:
4、在Proteus中仿真运行。
四、思考
将本实验的实验现象改为“不发光二极管循环移位”。
将本实验的实验现象改为“”。
参考程序:
ORG 0
LJMP MAIN
ORG 30H
MAIN: MOV A,#0FEH
LOOP: MOV P1,A
LCALL DELAY
RL A
SJMP LOOP
DELAY: MOV R7,#20H
DELAY1:MOV R6,#200
DELAY2:MOV R5,#123
DJNZ R5,$
DJNZ R6,DELAY2
DJNZ R7,DELAY1
RET
END
实验三数码管静态显示实验
一、实验目的
1、进一步熟悉51系列单片机
2、了解8051单片机P0口的使用方法
3、掌握共阴极数码管的原理及使用方法
4、学习8051的编程、调试、编译、仿真。
二、实验电路
图3 数码管静态显示电路原理图
注:-CAT-GRN。
三、要求及步骤:
要求:在七段数码管上以递增方式循环显示数字0—9,间隔时间为一秒。
1、使用Proteus画出电路原理图
2、在Keil uVision中完成程序编辑、调试及编译,
3、进行Protues与Keil uVision联动的相关设置:
4、在Proteus中仿真运行。
四、思考
1、为什么要将P0口各引脚通过电阻R3-R9接到电源?
2、如何在共阴数码管上循环显示十六进制数字0—F(不区分字母的大小写)?
3、怎样修改程序使数字以递减方式循环显示?
4、若用共阳极数码管应如何修改电路和程序,才能完成本实验的功能?
参考程序:
ORG 00H
LJMP START
ORG 30H
START: MOV DPTR,#TABLE
S1: MOV R4,#00H
S2: MOV A,R4
MOVC A,***@A+DPTR
MOV P0,A
LCALL DELAY
INC R4
CJNE R4,#0AH,S2
SJMP S1
DELAY: MOV R5,#20 ;延时子程序
D2: MOV R6,#200
D1: MOV R7,#123
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
TABLE: DB 3FH,06H,5BH,4FH,66H ;段码表
DB 6DH,7DH,07H,7FH,6FH

END
实验四基本输入/输出实验
一、实验目的
1、进一步熟悉8051单片机并行I/O口的使用方法
3、掌握并行I/O口输入/输出操作的方法
4、学习8051的编程、调试、编译、仿真。
二、实验电路
图4 并行I/O口基本输入/输出
注:按钮要从元件库选择Switches & Relays类中的BUTTON。
三、要求及步骤:
要求:在按钮动作的控制下,将十六进制数字0-F循环显示在数码管上(每按一次按钮,显示的数字加1)。
1、使用Proteus画出电路原理图
2、在Keil uVision中完成程序编辑、调试及编译,
3、进行Protues与Keil uVision联动的相关设置:
4、在Proteus中仿真运行。
四、思考
1、如何检测按钮是否按下?
2、怎样修改程序,可以使数字0-F在按钮控制下,以递减方式循环显示?
3、若在P0口接8个LED,如何实现每按一次按钮,点亮的LED左移一位(8个LED中只有一个点亮)?
参考程序:
ORG 00H
LJMP START
ORG 30H

START: MOV P1,#01H
MOV DPTR,#TABLE
MOV R4,#00H
CLR A
MOVC A,***@A+DPTR
MOV P0,A
LOOP: MOV A,P1
ANL A,#01H
JZ LOOP
LOOP1: MOV A,P1
ANL A,#01H
JNZ LOOP1