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

上传人:scccc 文档编号:13509298 上传时间:2022-01-12 格式:DOC 页数:13 大小:258.50KB
返回 下载 相关 举报
实验二发光二极管实验1.doc_第1页
第1页 / 共13页
实验二发光二极管实验1.doc_第2页
第2页 / 共13页
实验二发光二极管实验1.doc_第3页
第3页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《实验二发光二极管实验1.doc》由会员分享,可在线阅读,更多相关《实验二发光二极管实验1.doc(13页珍藏版)》请在三一文库上搜索。

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

2、位准双向 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(单片机)

3、Microprocessor ICs8051 FamilyRES(电阻)ResistorsGenericRX8( 8 排阻)ResistorsResistor PacksLED YELLOW(黄色发光二极管)OptoelectronicsLEDsCAP(电容)CapacitorsGenericCAP-ELEC(电解电容)CapacitorsGenericCRYSTAL(晶振)Miscellaneous-SWITCH(按键)Switich&relaysSwitchs2、放置元器件;3、放置电源和地;4、连线;5、参照原理图进行元件属性设置;6、电气检查。【源程序设计】1、流程图:2、在 Keil

4、C中进行源程序设计:3、编译、生成目标代码【 PROTUES仿真】1、在 AT89C51 属性页中加载 KeilC中生成的目标代码;2、仿真、调试代码3、注意使用观察窗口三、背景知识(供实验内容题一所用)KeilC调试软件延时方法:1、首先打开“ Options for Target ”页面,在“ Xtal ( MHz)”中输入选择的晶振频率。2、然后,借助“ states”和“ sec”这两个 KeilC 提供的变量帮助我们调试出精确地延时时间。如左图所示,特殊寄存器显示页面,即“ Regs”页面中。states 含义:其值( Value)指示了程序从开始到当前指令处所耗费的机器周期数。se

5、c 含义:其值( Value)指示了程序从开始到当前指令处所耗费的机器周期数。其中: sec = states 机器周期。我们观察这两个变量,通过调整延时循环控制参数,可以得到需要的精确延时时间。四、实验内容1、编写延时程序,延时时间为0.1S 。ORG 0000HLJMP MAINORG 0100HMAIN:SETB P10ACALL DELAY100MSCLR P10ACALL DELAY100MSAJMP MAINDELAY100MS: ;0.1S延时子程序MOV R7,#13HDL1:MOV R6,#14HDL0:MOV R5,#82HDJNZ R5,$DJNZ R6,DL0DJNZ

6、R7,DL1RETEND2、通过 AT89C51 单片机控制 8 个发光二极管发光,实现亮点以由上到下循环移动,间隔时间为 0.1S。ORG 0000HLJMP MAINORG 0100HMAIN:MOV A,#0FEHLOOP:MOV P1,AACALL DELAY100MSRL AAJMP LOOPDELAY100MS: ;0.1S延时子程序MOV R7,#13HDL1:MOV R6,#14HDL0:MOV R5,#82HDJNZ R5,$DJNZ R6,DL0DJNZ R7,DL1RETEND3、通过 AT89C51 单片机控制 8 个发光二极管发光,循环实现亮点由上到下移动1次 ( 间

7、隔时间为 0.2S ,由下到上移动 1 次( 间隔时间为 0.2S ,闪烁 1 次(即先全亮0.1S, 再全灭 0.S )。ORG 0000HLJMP LOOPORG 0100HLOOP:MOV A,#7FHMOVDOWN:RL AMOV P1,AACALL DELAY100MSACALL DELAY100MSCJNE A,#7FH,MOVDOWNMOV A,#0FEHMOVUP:RR A MOV P1,AACALL DELAY100MS ACALL DELAY100MS CJNE A,#0FEH,MOVUPBLINK:MOV P1,#00H ACALL DELAY100MS MOV P1,#

8、0FFHAJMP LOOPDELAY100MS: ;0.1S延时子程序MOV R7,#13HDL1:MOV R6,#14HDL0:MOV R5,#82HDJNZ R5,$DJNZ R6,DL0DJNZ R7,DL1RETEND4、通过 AT89C51 单片机控制 8 个发光二极管发光,循环实现亮点由上到下移动 2 次 ( 间隔时间为 0.2S ,由下到上移动 2 次( 间隔时间为 0.2S ,闪烁 2 次。ORG 0000HLJMP MAINORG 0100HMAIN:MOV R4,#2LOOP1:MOV A,#7FHMOVDOWN:RL AMOV P1,AACALL DELAY100MSAC

9、ALL DELAY100MSCJNE A,#7FH,MOVDOWNDJNZ R4,LOOP1MOV R4,#2LOOP2:MOV A,#0FEHMOVUP:RR A MOV P1,AACALL DELAY100MS ACALL DELAY100MS CJNE A,#0FEH,MOVUP DJNZ R4,LOOP2 MOV R4,#2BLINK:MOV P1,#00H ACALL DELAY100MS MOV P1,#0FFH ACALL DELAY100MSDJNZ R4,BLINK AJMP MAIN DELAY100MS: ;0.1S延时子程序MOV R7,#13HDL1:MOV R6,#

10、14HDL0:MOV R5,#82HDJNZ R5,$DJNZ R6,DL0DJNZ R7,DL1RETEND5、编写程序,用查表方式实现题4 功能。ORG 0000HLJMP MAINORG 0100HMAIN:MOV R0,#0FFHLOOP:INC R0CJNE R0,#36,SHOWMOV R0,#0SHOW:MOV A,R0MOV DPTR,#TABMOVC A,A+DPTRMOV P1,AACALL DELAY100MSACALL DELAY100MSAJMP LOOPDELAY100MS: ;0.1S延时子程序MOV R7,#13HDL1:MOV R6,#14HDL0:MOV R

11、5,#82HDJNZ R5,$DJNZ R6,DL0DJNZ R7,DL1RETTAB:DB 11111110BDB 11111101BDB 11111011BDB 11110111BDB 11101111BDB 11011111BDB 10111111BDB 01111111BDB 11111110BDB 11111101BDB 11111011BDB 11110111BDB 11101111BDB 11011111BDB 10111111BDB 01111111BDB 01111111BDB 10111111BDB 11011111BDB 11101111BDB 11110111BDB 1

12、1111011BDB 11111101BDB 11111110BDB 01111111BDB 10111111BDB 11011111BDB 11101111BDB 11110111BDB 11111011BDB 11111101BDB 11111110BDB 11111111BDB 00000000BDB 11111111BDB 00000000BEND6、P2 口作为输入口,接 8 只开关。 P1 口做为输出口,接 8 只发光二极管,通过设置 8 只拨动开关的状态控制 8 只发光二极管的亮灭。(自己画硬件连线图,程序流程图如下)ORG 0000HLJMP MAINORG 0100HMAIN:MOV P2,#0FFHMOV A,P2MOV P1,AAJMP MAINEND

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1