数码管中的16个字符
代码语言:javascript复制uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
延时函数(使用之前先声明一遍)
代码语言:javascript复制void delay(uint);
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
点亮第一个二级管
代码语言:javascript复制#include
//点亮第一个发光二级管
sbit D1=P1^0;//P1是P1口,P1^0代表D1,D1为自己命名的变量
main()
{
D1=0;//把高变频变成低电频
}
点亮多个二级管
代码语言:javascript复制#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);//此处设置一个死循环,让程序停留在这里,防止跑飞。
}
流水灯傻瓜式亮灯
代码语言:javascript复制#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上的位置
定时器函数定义
代码语言:javascript复制void init()//初始化函数
{
TMOD=0x01;//设置定时器0为工作方式1(0000 0001)
TH0=(65536-45872)/256//装初值50ms一次中断
TL0=(65536-45872)%6;
EA=1;//开总中断
ET0=01;//开定时器0中断
}
中断服务程序
代码语言:javascript复制中断程序
void 函数名() interrupt 中断号 using 工作组
{
中断服务程序内容
}
eg:
void T1_time() interrupt 3
{
TH1=(65536-10000)/256;
TL1=(65536-10000)%6;
}