51单片机汇编教程,51单片机汇编指令集
51单片机汇编编程
1:
KEY1 EQU P2.2
KEY2 EQU P2.1
KEY3 EQU P2.0
RED EQU P1.4
YELLOW EQU P1.5
GREEN EQU P1.6
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
SETB RED
SETB YELLOW
SETB GREEN
LP:
JB KEY1,LP1
CLR RED
SJMP LP
LP1:
JB KEY2,LP2
CLR YELLOW
SJMP LP
LP2:
JB KEY3,MAIN
CLR GREEN
SJMP LP
END
2:
KEY1 EQU P2.2
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV R0,#0
LP:
JB KEY1,DISP
JNB KEY1,$
INC R0
CJNE R0,#10,DISP
MOV R0,#0
DISP:
MOV DPTR,#LEDTAB
MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
SJMP LP
TABLE: ; 共阴极数码管显示代码表
DB 3FH,06H,5BH,4FH,66H ;01234
DB 6DH,7DH,07H,7FH,6fh ;56789
END
51单片机中如何用汇编语言编写流水灯
流水灯就是51单片机控制led灯依次点亮的控制方式。具体程序如下:
ORG 0000H;复位启动
AJMP START;
ORG 001BH;T1中断
AJMP T1INT;
;定义变量========================
YSJSEQU 30H;延时计数器
LEDEQU 31H;LED控制缓冲器
;主程序==========================
START:MOV LED,#0FEH;初始化数据
MOV YSJS,#0;
MOV TMOD,#10H;定时器1工作于方式1,16位定时器
MOV TL1,#0B0H;设置定时初值
MOV TH1,#3CH;定时时间=50mS
SETB ET1;使能定时器1中断
SETB TR1;启动定时器1
SETB EA;开总中断
MOV P1,LED;初始化流水灯
LOOP:JMP LOOP;循环等待中断
T1INT:PUSH PSW;定时器1中断程序
PUSH ACC;保护现场
MOV TH1,#3CH;定时时间=50mS
MOV TL1,#0B0H;
INC YSJS;
PUSH ACC;保护ACC
MOV A,YSJI;
CJNE A,#2,QT1;50mS*2=100mS
MOV P1,LED;
MOV A,LED;
RL A;累加器A的值循环左移1位
MOV LED,A;
MOV YSJS,#0;
QT1:POP ACC;恢复现场
POP PSW;
RETI;返回主程序
END;汇编程序结束
扩展资料:
实现流水灯的三个方法:
第一种,总线方法实现流水灯。这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,加上延时函数,即可控制每个LED灯的亮灭。
第二种,移位方法实现流水灯采用循环程序结构编程。首先在程序开始给P1.0口送一个低电平,其它位为高。然后延时一段时间再让低电平往高位移动,这样就实现“流水”的效果了。
第三种,库函数实现流水灯。利用左移函数进行。
51单片机教程,要通俗易懂版的
我是一名单片机工程师,下面的讲解你参考一下.
.
51单片机共有40只引脚.下面这个就是最小系统原理图,就是靠这四个部分,这个单片机就可以运行起来了.(看下面的数字标记,1234)
.
.
我们来一,一讲解一下:
1 第一部分:电源组(标记为1的部分)
.
40脚接电源5V(右上角),
20脚接电源负极(左下角),
在单片机里面,负极也可以叫GND或者”地”,
我们在单片机的应用中,习惯说负极为”地”,上面GND就是英文ground的缩写,翻译过来就是”地”的意思.
.
.
2 第二部分:晶振组(标记为2的部分)
.
11.0592M晶振Y1与单片机的18,19脚并联,因为这两只脚,就是晶振的工作引脚.
22p电容C2一端接18脚,一端接地.
22p电容C3一端接19脚,一端接地.
这两个电容,我们在10~30P之间选择都是可以的,主要作用是,过滤掉晶振部分的高频信号,让晶振工作的时候更加稳定.
.
.
3 第三部分:复位组(标记为3的部分)
10u电容C1正极接电源5V,C1负极接单片机的复位脚,第9脚.
1K电阻R17一端接单片机的复位脚,第9脚,一端接地.
就是通过这个10u和1k,就可以让单片机一开始供电时候,单片机自动复位,从零开始执行程序,这个就是复位的概念.
.
.
4 第四部分:其它功能组(标记为4的部分)
这个脚是存储器使用选择脚,当这个脚接”地”时,那么就是告诉单片机,选择使用外部存储器,当这个脚接”5V”时,说明单片机使用内部存储器.
如果选择外部的存储器,太浪费单片机仅有的资源,所以这一脚永远接电源5V(如上图所示),使用单片机的内部存储器.
5 如果内部存储器不够容量,最多选择更高级的容量,就可以解决容量不够的问题了,就是这么简单。如果你想学习更多单片机和程序的知识,百度一下:单片机教程刘思源
就看到有全套视频教程了。希望同学们喜欢了
资源提取码:cabe
满意的朋友请点赞,谢谢!