zl程序教程

您现在的位置是:首页 >  其他

当前栏目

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

2023-04-18 14:52:52 时间

数码管中的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
//点亮第一个发光二级管
sbit D1=P1^0;//P1是P1口,P1^0代表D1,D1为自己命名的变量
main()
{
	D1=0;//把高变频变成低电频
}

点亮多个二级管

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

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


#include  //包含头文件,在“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
#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上的位置

定时器函数定义

void init()//初始化函数
{
	TMOD=0x01;//设置定时器0为工作方式1(0000 0001)
	TH0=(65536-45872)/256//装初值50ms一次中断
	TL0=(65536-45872)%256;
	EA=1;//开总中断
	ET0=01;//开定时器0中断
}

中断服务程序

中断程序
void 函数名() interrupt 中断号 using 工作组
{
	中断服务程序内容
}

eg:
void T1_time() interrupt 3
{
	TH1=(65536-10000)/256;
	TL1=(65536-10000)%256;
}