微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机汇编语言(三)

51单片机汇编语言(三)

时间:11-24 来源:互联网 点击:

dat>>

dat>>

dat>>

dat>>

12: JNB P2.5, A2 ;K2键按下转A2

13: JNB P2.6, A4 ;K3键按下转A3

14: JNB P2.7, A4 ;K4键按下转A4 键按下后转

15: JMP START ;无键按下返回 功能处理程序

16: A1: MOV R0, #8 ;设置左移位数

17: MOV A ,#0FEH ;设置左移初值

18: LOOP2: MOV P1, A ;输出至P1

19: ACALL DELAY ;调延时1秒子程序

20: RL A ;左移一位

21: DJNZ R0, LOOP2 ;判断移动位数 1号功能键

22: JMP START ;返回主程序开始处 处理程序

23: A2: MOV R0,#8 ;设置右移位数

24: MOV A ,#0FCH ;设置右移初值

25: LOOP3: RR A ;右移一位

26: MOV P1, A ;输出至P1

27: ACALL DELAY ;调延时1秒子程序

28: DJNZ R0, LOOP3 ;判断移动位数 2号功能键

29: JMP START ;返回主程序开始处 处理程序

30: A3: MOV R0,#6 ;设置闪烁次数

31: MOV A ,#0F0H ;设置初值

32: LOOP4: MOV P1, A ;输出至P1

33: ACALL DELAY ;调延时1秒子程序

34: CPL A ;反相

35: MOV P1,A ;输出

36: DJNZ R0, LOOP4 ;判断移动位数 3号功能键

37: JMP START ;返回主程序开始处 处理程序

38: A4: MOV R0,#10 ;设置闪烁次数

39: MOV A, #00H ;设置初值

40: LOOP5: MOV P1,A ;输出

41: ACALL DELAY ;调延时子程序

42: CPL A ;反相

43: MOV P1,A ;输出

44: DJNZ R0, LOOP5 ;判断闪烁次数 4号功能键

45: MP START ;返回主程序开始处 处理程序

46: DELAY1: MOV R3, #60 ;消抖延时子程序

47: D2: MOV R4, #248 ;

48: DJNZ R4, $

49: DJNZ R3, D2 消除抖动

50: RET ; 延时子程序

51: DELAY: MOV R5, #50 ;延时1秒子程序

52: DLY1: MOV R6, #100 ;

53: DLY2: MOV R7, #100 ;

54: DJNZ R7, $ ;

55: DJNZ R6, DLY2 ;

56: DJNZ R5, DLY1 ;

57: RET ; 延时子程序

58: END ; 程序结束

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top