51单片机c语言经典小程序
Lesson3.1
#include//调用头文件
sbit dula=P2^6;//段定义端口
sbit wela=P2^7;//位定义端口
void main()
{
wela=1;//打开位端口
P0=0xc0;//赋值,决定显示位
wela=0;//关闭为端口
dula=1;//打开断断口
P0=0x06;//赋值,决定显示数值
dula=0;//关闭断断口
while(1);//进入死循环,防止出现乱码
}
Lesson3.2
#include
#define uint unsigned int
#define uchar unsigned char //宏定义
sbit dula=P2^6;//段定义端口
sbit wela=P2^7;//位定义端口
uchar num;//定义全局变量
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//数值代码
void delay(uint z);//延时函数声明
void main()
{
wela=1;///打开为端口
P0=0xea;//赋值,决定显示位
wela=0;//关闭为端口
while(1)//进入死循环
{
for(num=0;num<16;num++)
{
dula=1;//打开位端口
P0=table[num];//显示数值
dula=0;//关闭为端口
delay(1000);//延时
}
}
}
void delay(uint z)//掩饰函数体
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
Lesson3.3
#include
#define uint unsigned int
#define uchar unsigned char //宏定义
sbit dula=P2^6; //
sbit wela=P2^7;
sbit d1=P1^0;//LED控制端口
uchar num;//全局变量
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//数值段代码
void delay(uint z);//延时函数声明
void main()
{
EA=1;//开总中断
EX0=1;//开外部中断0
//IT0=1;//
TCON=0x01;//打开计数器,开始加数直到加满,执行中断
wela=1;/P0=0xea;
wela=0;
while(1)
{
for(num=0;num<16;num++)
{
d1=1;//LED关闭
dula=1;//段控制打开
P0=table[num];//显示数值代码赋值
dula=0;//关闭段控制端
delay(1000);//延时
}
}
}
void delay(uint z)//延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void exter0() interrupt 0//中断函数
{
d1=0;//执行中断,关闭LED
}
Lesson3.4
#include
#define uint unsigned int
#define uchar unsigned char //宏定义
sbit dula=P2^6;
sbit wela=P2^7;
sbit d1=P1^0;//LE灯控制端口
uchar num;
u