1 / 17

实验三、单片机 I/O 实验 一、实验目的 : 1 .学习 P1 口的使用方法; 2 .学习延时子程序的编写和使用; 3 .了解 LED 动态显示电路结构,掌握 LED 动态显示方法。

实验三、单片机 I/O 实验 一、实验目的 : 1 .学习 P1 口的使用方法; 2 .学习延时子程序的编写和使用; 3 .了解 LED 动态显示电路结构,掌握 LED 动态显示方法。 4 .学习继电器控制的基本方法和经验。 二、实验仪器 : 1 . C51 实验开发板 1 块 2 .直流稳压电源( DF 1731 SB 3A ) 一台 3 . PC 机 一台 4 .仿真器( EASYPROBE ) 1 只. CPU 89C51 ( 接仿真头 ). P1. 三、实验内容 :. 1 、 指示灯循环显示:

reed
Download Presentation

实验三、单片机 I/O 实验 一、实验目的 : 1 .学习 P1 口的使用方法; 2 .学习延时子程序的编写和使用; 3 .了解 LED 动态显示电路结构,掌握 LED 动态显示方法。

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 实验三、单片机I/O实验 一、实验目的: 1.学习P1口的使用方法; 2.学习延时子程序的编写和使用; 3.了解LED动态显示电路结构,掌握LED动态显示方法。 4.学习继电器控制的基本方法和经验。 二、实验仪器: 1.C51实验开发板 1块 2.直流稳压电源(DF 1731 SB 3A) 一台 3.PC机 一台 4.仿真器(EASYPROBE) 1只

  2. CPU 89C51 (接仿真头) P1 三、实验内容: 1、 指示灯循环显示: (1)实验要求:P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 (2)电路及连线如下:

  3. (3)运行程序TP1A,观察现象。 TP1A程序: ORG 0000H LJMP START ORG 0040H START:MOV A,#0FEH ; LOOP: MOV P1,A ;点亮1只LED RL A ;左循环 LCALL DELAY ;延时1秒 SJMP LOOP DELAY: MOV R5,#0AH MOV R6,#00H DELAY1:MOV R7,#0B3H DJNZ R7,$ DJNZ R6,DELAY1 DJNZ R5,DELAY1 RET END

  4. (4)修改程序TP1A,使指示灯左循环。 (5)*修改程序TP1A,使指示灯两两右循环。 (6)*修改程序TP1A,使指示灯从两边向中间循环。 (7)*修改程序TP1A,使指示灯从中间向两边循环。 (8)*修改程序TP1A,使指示灯右循环间隔时间为0.1秒。

  5. P1 CPU 89C51 (接仿真头) P2 2、   输入/输出实验: (1)实验要求:P1做输入口,连接至DIP开关接口JP4,P2口输出连接至8只发光二极管接口JP8,编写程序读取开关状态,将此状态在发光二极管上显示出来。 (2)电路及连线如下:

  6. (3)运行程序TP1B,观察现象。 TP1B程序: ORG 0000H LJMP START ORG 0040H START:MOV P1,#0FFH ; 因P1是准双向口,所以把P1口 ;作为输入口时,应先置高电平 MOV A,P1 ;读开关状态 MOV P2,A ;把读入的数据输出到P2口输出至指示灯 AJMP START END

  7. 3、七段LED动态显示输出: (1)电路及连线如下:

  8. (2)实验要求1: 编写程序,从左到右显示“1”、“2”、“3”、“4”,调整延时时间(1s,0.1s,0.0125s,1/160s),观察显示效果。 参考程序:

  9. ORG 0000H LJMP START ORG 0040H START:MOV R7,#04H ;灯数 MOV R6,#0FEH ;起始灯位,1号灯 MOV R0,#00H MOV DPTR,#TAB ; LOOP: MOV A,R7 ; MOVC A,@A+DPTR ;读字段码 MOV P2,#60H ;字段码地址 MOVX @R0,A ;输出字段码 MOV A,R6 MOV P2,#80H ;灯位控制地址 MOVX @R0,A ;输出灯位控制 RL A ;灯位右移 MOV R6,A ; LCALL DELAY ;延时 DJNZ R7,LOOP ;灯数计数 SJMP START DELAY:… TAB:DB 00H,66H,4FH,5BH,06H

  10. (3)实验要求2: 编写程序,显示秒计数值(10进制方式)。 参考程序: ORG 0000H LJMP START ORG 0040H START:MOV R7,#04H MOV R1,#30H LOOP1: MOV @R1,#00H ;30H~33H清零 INC R1 DJNZ R7,LOOP1

  11. MOV R5,#00H MOV R1,#30H MOV R0,#00H MOV DPTR,#TAB ; MOV R6,#0FEH ;起始灯位,1号灯 LOOP:MOV A,@R1 ;显示 MOVC A ,@A+DPTR ;读字段码 MOV P2 ,#60H ;字段码地址 MOVX @R0,A ;输出字段码 MOV A,R6 MOV P2 ,#80H ;灯位控制地址 MOVX @R0,A ;输出灯位控制 RL A ;灯位右移 MOV R6,A INC R1 CJNE R1,#34H,MM MOV R1,#30H MM: PUSH 01H

  12. LCALL DELAY ;延时 INC R5 CJNE R5,#160,NEXT MOV R5,#00H MOV R1,#33H ;计时 MOV R7,#4 INC @R1 LOOP3:MOV A,@R1 CJNE A,#0AH,NEXT MOV @R1,#00H DEC R1 INC @R1 DJNZ R7,LOOP3 NEXT:POP 01H SJMP LOOP

  13. DELAY: ;MOV R5,# 0AH MOV R4,# 10H DELAY1:MOV R3,#0B3H DJNZ R3,$ DJNZ R4,DELAY1 ;DJNZ R5,DELAY1 RET TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END (4)修改程序,变为16进制方式显示: (5)修改程序,变为“分秒”方式显示:

  14. 4、  P3口输出控制继电器: (1)实验要求:利用P3.5输出高低,控制继电器的开合,实现对外部装置的控制。 (2)实验电路及连线:

  15. TP3R程序: ORG 0000H LJMP START ORG 0040H START:MOV SP,#60H JD: CPL P3.5 ;继电器状态(吸合/分开)切换 LCALL DELAY ;延时 NOP SJMP JD DELAY: MOV R5,# 0AH MOV R6,# 00H DELAY1:MOV R7,# 0B3H DJNZ R7,$ DJNZ R6,DELAY1 DJNZ R5,DELAY1 RET END

  16. 5、键盘扫描输入(下次做) C51实验开发板上有个16键的键盘,试编写键盘扫描程序

More Related