51单片机开发中一些常用代码块

数码管中的16个字符

uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

延时函数(使用之前先声明一遍)

void delay(uint);

void delay(uint z)
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}

点亮第一个二级管

#include<reg52.h>
//点亮第一个发光二级管
sbit D1=P1^0;//P1是P1口,P1^0代表D1,D1为自己命名的变量
main()
{
	D1=0;//把高变频变成低电频
}

点亮多个二级管

#include <reg51.h> //包含头文件,在“reg51.h”上右键单击,并打开,可以看到它里面的定义

void main()
{
	P1=0XAA;  //对P1口的八位一起操作,高低电平分配为10101010,为0的位对应的二极管被点亮。
	while(1);
}


#include <reg51.h> //包含头文件,在“reg51.h”上右键单击,并打开,可以看到它里面的定义

sbit led1=P1^0;	 //第一个led是和P1^0口连接的。
sbit led3=P1^2;
sbit led5=P1^4;
sbit led7=P1^6;

void main()
{
	led1=0;	   //参照电路图可知,P1^0为低电平,可以让led1点亮。
	led3=0;
	led5=0;
	led7=0;
	while(1);//此处设置一个死循环,让程序停留在这里,防止跑飞。
}

流水灯傻瓜式亮灯

#include<reg52.h>
#define uint unsigned int
sbit p0=P1^0;
sbit p1=P1^1;
sbit p2=P1^2;
sbit p3=P1^3;
sbit p4=P1^4;
sbit p5=P1^5;
sbit p6=P1^6;
sbit p7=P1^7;
#define uchar unsigned char
void delayms(uint);
void main()
{
	while(1)
	{
			//0xaa是1,3,5,7,0x55 2,4,6,8
	p0=1;
	p1=0;
	p2=1;
	p3=0;
	p4=1;
	p5=0;
	p6=1;
	p7=0;

	delayms(500);
	p0=0;
	p1=1;
	p2=0;
	p3=1;
	p4=0;
	p5=1;
	p6=0;
	p7=1;

	delayms(500);	
	}
}

void delayms(uint xms)
{
	uint x,y;
		for(x=xms;x>0;x--)
			for(y=110;y>0;y--);
}

P1^(0~7)发光二极管在stc上的位置

猜你喜欢

转载自blog.csdn.net/caidewei121/article/details/81220522