实验二发光二极管实验1.docx

上传人:b****5 文档编号:27584595 上传时间:2023-07-03 格式:DOCX 页数:34 大小:109.23KB
下载 相关 举报
实验二发光二极管实验1.docx_第1页
第1页 / 共34页
实验二发光二极管实验1.docx_第2页
第2页 / 共34页
实验二发光二极管实验1.docx_第3页
第3页 / 共34页
实验二发光二极管实验1.docx_第4页
第4页 / 共34页
实验二发光二极管实验1.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

实验二发光二极管实验1.docx

《实验二发光二极管实验1.docx》由会员分享,可在线阅读,更多相关《实验二发光二极管实验1.docx(34页珍藏版)》请在冰豆网上搜索。

实验二发光二极管实验1.docx

实验二发光二极管实验1

 

实验二发光二极管实验

 

一、实验目的

 

1、掌握AT89C51单片机IO口的输入输出。

 

2、掌握用查表方式实现AT89C51单片机IO口的控制。

 

3、练习单片机简单延时子程序的编写。

 

4、熟练运用Proteus设计、仿真AT89C51系统。

 

二、实验原理

 

1、单片机最小系统由单片机芯片、时钟电路以及复位电路构成。

 

2、I/O口

 

P0口:

8位双向I/O口。

在访问外部存储器时,P0口可用于分时传送低8位地址总线和8位数据总线。

能驱动8个LSTTL门。

P1口:

8位准双向I/O口(“准双向”是指该口内部有固定的上拉电阻)。

能驱

动4个LSTTL门。

 

P2

口:

8

位准双向I/O

口。

在访问外部存储器时,

P2口可用于高8位地址总

线。

能驱动4个LSTTL门。

P3

口:

8

位准双向I/O

口。

能驱动4个LSTTL门。

P3口还有第二功能。

P1

口作为输出口时与一般的双向口使用方法相同。

P1口用为输入口时,必须

先对它置“1”。

若不先对它置“1”,读入的数据可能是不正确的。

 

三、设计步骤:

 

【PROTEUS电路设计】

 

在ISIS中进行电路图设计,发光二极管流水灯实验装置电路原理图如下图所示。

 

1、按照元件清单从PROTEUS库中选取元器件,进行第2、3、4、5、6步,完成原理图。

 

元件名称所属类所属子类

 

AT89C51(单片机)MicroprocessorICs8051Family

 

RES(电阻)ResistorsGeneric

 

RX8(8排阻)ResistorsResistorPacks

 

LED-YELLOW(黄色发光二极管)OptoelectronicsLEDs

 

CAP(电容)CapacitorsGeneric

 

CAP-ELEC(电解电容)CapacitorsGeneric

 

CRYSTAL(晶振)Miscellaneous--

 

SWITCH(按键)Switich&relaysSwitchs

 

2、放置元器件;

 

3、放置电源和地;

 

4、连线;

 

5、参照原理图进行元件属性设置;

 

6、电气检查。

 

【源程序设计】

 

1、流程图:

 

2、在KeilC中进行源程序设计:

 

3、编译、生成目标代码

 

【PROTUES仿真】

 

1、在AT89C51属性页中加载KeilC中生成的目标代码;

 

2、仿真、调试代码

 

3、注意使用观察窗口

 

三、背景知识(供实验内容题一所用)

 

KeilC调试软件延时方法:

 

1、首先打开“OptionsforTarget”页面,在“Xtal(MHz)”中输入选择的晶振频率。

 

2、然后,借助“states”和“sec”这两个KeilC提供的变量帮助我们调试出精确地延时时间。

如左图所示,特殊寄存器显示页面,即“Regs”页面中。

 

states含义:

其值(Value)指示了程序从开始到当前指令处所耗费的机器周期数。

 

sec含义:

其值(Value)指示了程序从开始到当前指令处所耗费的机器周期数。

 

其中:

sec=states×机器周期。

 

我们观察这两个变量,通过调整延时循环控制参数,可以得到需要的精确延时时间。

 

四、实验内容

 

1、编写延时程序,延时时间为0.1S。

 

ORG0000H

 

LJMPMAIN

 

ORG0100H

 

MAIN:

 

SETBP1^0

 

ACALLDELAY100MS

 

CLRP1^0

 

ACALLDELAY100MS

 

AJMPMAIN

 

DELAY100MS:

;0.1S延时子程序

 

MOVR7,#13H

 

DL1:

 

MOVR6,#14H

 

DL0:

 

MOVR5,#82H

 

DJNZR5,$

 

DJNZR6,DL0

 

DJNZR7,DL1

 

RET

 

END

 

2、通过AT89C51单片机控制8个发光二极管发光,实现亮点以由上到下循环移动,间隔时间为0.1S。

 

ORG0000H

 

LJMPMAIN

 

ORG0100H

 

MAIN:

 

MOVA,#0FEH

 

LOOP:

 

MOVP1,A

 

ACALLDELAY100MS

 

RLA

 

AJMPLOOP

 

DELAY100MS:

;0.1S延时子程序

 

MOVR7,#13H

 

DL1:

 

MOVR6,#14H

 

DL0:

 

MOVR5,#82H

 

DJNZR5,$

 

DJNZR6,DL0

 

DJNZR7,DL1

 

RET

 

END

 

3、通过AT89C51单片机控制8个发光二极管发光,循环实现亮点由上到下移动1

次(间隔时间为0.2S,由下到上移动1次(间隔时间为0.2S,闪烁1次(即先全亮

0.1S,再全灭0.S)。

 

ORG0000H

 

LJMPLOOP

 

ORG0100H

 

LOOP:

 

MOVA,#7FH

 

MOVDOWN:

 

RLA

 

MOVP1,A

 

ACALLDELAY100MS

 

ACALLDELAY100MS

 

CJNEA,#7FH,MOVDOWN

 

MOVA,#0FEH

 

MOVUP:

 

RRAMOVP1,A

ACALLDELAY100MSACALLDELAY100MSCJNEA,#0FEH,MOVUP

BLINK:

 

MOVP1,#00HACALLDELAY100MSMOVP1,#0FFH

AJMPLOOP

 

DELAY100MS:

;0.1S延时子程序

 

MOVR7,#13H

 

DL1:

 

MOVR6,#14H

 

DL0:

 

MOVR5,#82H

 

DJNZR5,$

 

DJNZR6,DL0

 

DJNZR7,DL1

 

RET

 

END

 

4、通过AT89C51单片机控制8个发光二极管发光,循环实现亮点由上到下移动2次(间隔时间为0.2S,由下到上移动2次(间隔时间为0.2S,闪烁2次。

 

ORG0000H

 

LJMPMAIN

 

ORG0100H

 

MAIN:

 

MOVR4,#2

 

LOOP1:

 

MOVA,#7FH

 

MOVDOWN:

 

RLA

 

MOVP1,A

 

ACALLDELAY100MS

 

ACALLDELAY100MS

 

CJNEA,#7FH,MOVDOWN

 

DJNZR4,LOOP1

 

MOVR4,#2

 

LOOP2:

 

MOVA,#0FEH

 

MOVUP:

 

RRAMOVP1,A

ACALLDELAY100MSACALLDELAY100MSCJNEA,#0FEH,MOVUPDJNZR4,LOOP2MOVR4,#2

BLINK:

 

MOVP1,#00HACALLDELAY100MSMOVP1,#0FFHACALLDELAY100MS

DJNZR4,BLINKAJMPMAINDELAY100MS:

;0.1S延时子程序

 

MOVR7,#13H

 

DL1:

 

MOVR6,#14H

 

DL0:

 

MOVR5,#82H

 

DJNZR5,$

 

DJNZR6,DL0

 

DJNZR7,DL1

 

RET

 

END

 

5、编写程序,用查表方式实现题4功能。

 

ORG0000H

 

LJMPMAIN

 

ORG0100H

 

MAIN:

 

MOVR0,#0FFH

 

LOOP:

 

INCR0

 

CJNER0,#36,SHOW

 

MOVR0,#0

 

SHOW:

 

MOVA,R0

 

MOVDPTR,#TAB

 

MOVCA,@A+DPTR

 

MOVP1,A

 

ACALLDELAY100MS

 

ACALLDELAY100MS

 

AJMPLOOP

 

DELAY100MS:

;0.1S延时子程序

 

MOVR7,#13H

 

DL1:

 

MOVR6,#14H

 

DL0:

 

MOVR5,#82H

 

DJNZR5,$

 

DJNZR6,DL0

 

DJNZR7,DL1

 

RET

 

TAB:

 

DB11111110B

 

DB11111101B

 

DB11111011B

 

DB11110111B

 

DB11101111B

 

DB11011111B

 

DB10111111B

 

DB01111111B

 

DB11111110B

 

DB11111101B

 

DB11111011B

 

DB11110111B

 

DB11101111B

 

DB11011111B

 

DB10111111B

 

DB01111111B

 

DB01111111B

 

DB10111111B

 

DB11011111B

 

DB11101111B

 

DB11110111B

 

DB11111011B

 

DB11111101B

 

DB11111110B

 

DB01111111B

 

DB10111111B

 

DB11011111B

 

DB11101111B

 

DB11110111B

 

DB11111011B

 

DB11111101B

 

DB11111110B

 

DB11111111B

 

DB00000000B

 

DB11111111B

 

DB00000000B

 

END

 

6、P2口作为输入口,接8只开关。

P1口做为输出口,接8只发光二极管,通过设置8只拨动开关的状态控制8只发光二极管的亮灭。

(自己画硬件连线图,程序流程图如下)

 

ORG0000H

 

LJMPMAIN

 

ORG0100H

 

MAIN:

 

MOVP2,#0FFH

 

MOVA,P2

 

MOVP1,A

 

AJMPMAIN

 

END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1