1.轮流点亮 逐个点亮
MOV A,#11111110B
先点亮连p1.0的灯,然后是p1.1的,一直到p1.7的,然后又点亮p1.0的
LOOP:
MOV P1,A
ACALL DELAY;你建一个延时子程序使灯亮一段时间
RL A
SJMP LOOP
2.间隔点亮
MOV A,#10101010B
先点亮连p1.0,p1.2,p1.4,p1.6的灯,然后是p1.1,p1.3,p1.5,p1.7的
LOOP:
MOV P1,A
ACALL DELAY;你建一个延时子程序使灯亮保持一段时间
RL A
SJMP LOOP
3.全灭全亮
MOV A,#00000000B
先全部点亮,然后再全灭
LOOP:
MOV P1,A
ACALL DELAY;你建一个延时子程序使灯亮保持一段时间
CPL A
SJMP LOOP
C语言实现LED灯闪烁控制配套51单片机开发板。
#include //包含单片机寄存器的头文件
/****************************************
函数功能:延时一段时间
*****************************************/
void delay(void) //两个void意思分别为无需返回值,没有参数传递。
{
unsigned int i //定义无符号整数,最大取值范围65535。
for(i=0i<20000i++) //做20000次空循环。
//什么也不做,等待一个机器周期。
}
/*******************************************************
函数功能:主函数 (C语言规定必须有也只能有1个主函数)。
********************************************************/
void main(void)
{
while(1) //无限循环。
{
P0=0xfe //P1=1111 1110B, P0.0输出低电平。
delay() //延时一段时间。
P0=0xff //P1=1111 1111B, P0.0输出高电平。
delay() //延时一段时间。
}
}
单片机驱动LED灯的源程序:
#include<reg52.h>//头文件。
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P1^7//位定义。
void delay_ms(uint)//mS级带参数延时函数。
void main()
{
while(1)
{
LED1=0
delay_ms(1000)
LED1=1
delay_ms(1000)
}
}
void delay_ms(uint z) //延时子程序
{
uint x,y
for(x=zx>0x--)
for(y=110y>0y--)
}
扩展资料:
单片机应用分类:
通用型:
这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
总线型:
这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。
另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
控制型:
这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型。
通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
参考资料来源:百度百科-单片机
一、点亮一个LED灯程序:MOV A,#00FEH MOV P1,A JMP $ END
图:
二、点亮1、3、5、7LED灯
程序:MOV A,#00AAH MOV P1,A JMP $ END
图:
三、尝试让一个LED灯闪烁
程序:
STRAT:MOV A,#00FEH MOV P1,A LCALL DEL MOV A,#00FFH MOV P1,A LCALL DEL JMP STRAT
DEL:MOV R1,#127
DEL1:MOV R2,#200
DEL2:DJNZ R2,DEL2 DJNZ R1,DEL1 RET END
图:
实验三 延时子程序
实验目的:
1、学会程序的嵌套以及熟练对指令的 *** 作
实验内容:
1、延时子程序的设计
2、I/O口的应用 *** 作
实验 *** 作:
1、设计8个循环点亮的LED灯,1、2、3、4、5、6、7、8顺序点亮。
程序: ORG 0000H LJMP START ORG 0100H START: MOV A,#007FH LOOP: RL A MOV P1,A LCALL DELAY1 JMP LOOP DELAY2: MOV R1,#127 DEL1: MOV R2,#200 DEL2: DJNZ R2,DEL2 DJNZ R1,DEL1 RET END
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)