51单片机 流水灯 实验(汇编) 联系客服

发布时间 : 星期五 文章51单片机 流水灯 实验(汇编)更新完毕开始阅读683c1fa3a4e9856a561252d380eb6294dd8822d6

实验一 单片机I/O并口视觉实验(流水灯)(仅供参考)

开课学院及实验室:xxxx 实验时间 : xxxx年 xx月 xx日 学 生 姓 名 学生所在学院 课 程 名 称 实验项目名称 xx 学 号 xx 微处理器与微计算机系统 单片机I/O并口视觉实验 (流水灯) 指 导 教 师 xx 项 目 学 分 xx 成 绩 年级/专业/班 课 程 代 码 项 目 代 码 xx 4-1 实验目的

1、了解简单单片机应用系统的设计方法。

2、掌握应用KEIL软件编辑、编译源程序的操作方法。 3、掌握应用PROTEUS仿真软件的操作方法。 4、掌握C51的编程方法。 5、培养良好的实验习惯。

实验内容

1、AT89S52为主控芯片,用PROTEUS仿真设计简单单片机应用系统。 2、编程实现8个发光LED“流水”的现象。

实验原理

1、流水灯

(1)实验原理图

(2)流程图:(我自己没画好请自行画)此处略去

(2)实验程序 1、单灯流水灯

ORG 000H

MOV R7,#0FEH ;初始:11111110 LOOP:

MOV P1,R7 LCALL DELAY MOV A,R7

RL A ;左移 MOV R7,A SJMP LOOP DELAY:

MOV R6,#4H ;最外层4次 DE1:

MOV R5,#250 ;次外层250次 DE2:

MOV R4,#250 ;最外层250次 DJNZ R4,$ DJNZ R5,DE2

DJNZ R6,DE1 ;共:2us*4*250*250=0.5s RET END 2、来回灯 ORG 000H LL:

MOV R7,#0FEH;左移初始化 MOV R1,#7 LOOPL:

MOV P1,R7 LCALL DELAY MOV A,R7

RL A MOV R7,A

DJNZ R1,LOOPL ;左移7次后跳至右移 LR:

MOV R2,#07FH;右移初始化 MOV R1,#7 LOOPR:

MOV P1,R2 LCALL DELAY MOV A,R2

RR A MOV R2,A

DJNZ R1,LOOPR ;右移7次后跳至左移 JJM:

SJMP LL

DELAY:

MOV R6,#4H DE1:

MOV R5,#250 DE2:

MOV R4,#250 DJNZ R4,$ DJNZ R5,DE2

DJNZ R6,DE1 RET END

3、自定义灯 ORG 000H MAIN:

MOV DPTR,#TAB MOV R0,#0 MOV R1,#18 MLOOP:

MOV A,R0

MOVC A,@A+DPTR MOV P1,A CALL DELAY INC R0

DJNZ R1,MLOOP JMP MAIN

TAB:DB 0E7H, 0DBH, 0BDH, 07EH, 0F0H, 0E1H, 0C3H, 087H, 00FH, 087H, 0C3H, 0E1H, 000H, 0FFH, 000H, 0FFH, 000H, 0FFH DELAY:

MOV R6,#4H DE1:

MOV R5,#250 DE2:

MOV R4,#250 DJNZ R4,$ DJNZ R5,DE2

DJNZ R6,DE1 RET END 4、级联

ORG 000H

/********R7为灯的寄存**********/ /*R1控制灯的次数R2控制循环几次*/

/*********单灯两次*************/

MOV R2,#2 DANDENG:

MOV R7,#0FEH MOV R1,#8 LOOP1:

MOV P1,R7 LCALL DELAY MOV A,R7

RL A MOV R7,A

DJNZ R1,LOOP1 DJNZ R2,DANDENG

/*********来回一次**************/ LAIHUI:

MOV R7,#0FEH MOV R1,#7 LOOPLL:

MOV P1,R7 LCALL DELAY MOV A,R7

RL A MOV R7,A

DJNZ R1,LOOPLL LR:

;MOV R2,#07FH MOV R1,#8 LOOPRR:

MOV P1,R7 LCALL DELAY MOV A,R7

RR A MOV R7,A

DJNZ R1,LOOPRR

/**********自定义一次************/ ZIDINGYI:

MOV DPTR,#TAB MOV R0,#0 MOV R1,#18 MMLOOP:

MOV A,R0

MOVC A,@A+DPTR MOV P1,A CALL DELAY INC R0

DJNZ R1,MMLOOP

TAB:DB 0E7H, 0DBH, 0BDH, 07EH, 0F0H, 0E1H, 0C3H, 087H, 00FH, 087H, 0C3H, 0E1H, 000H, 0FFH, 000H, 0FFH, 000H, 0FFH LOOPALL:

SJMP DANDENG DELAY:

MOV R6,#4H DE1:

MOV R5,#250 DE2:

MOV R4,#250 DJNZ R4,$ DJNZ R5,DE2

DJNZ R6,DE1 RET END

实验总结

1、实验中出现的问题,如何解决

2、心得体会