led.c
来自「自己的平时一些制作 现在整理一下 与大家一起分享」· C语言 代码 · 共 52 行
C
52 行
/*****头文件包含******/
//各种单片机的寄存器定义,方便我门使用者,..
//只需要知道这些名字就可以了,其他的具体地址在这里定义好了..
//没必要一个一个记。
/********************/
#include <reg51.h>
/*******定义一个跑马灯的特征表************/
unsigned char code design[32]={ 0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,
0xBF,0x7F,0x7F,0xBF,0xDF,0xEF,0xF7,
0xFB,0xFD,0xFE,0xFF,0xFF,0xFE,0xFC,
0xF8,0xF0,0xE0,0xC0,0x80,0x0,0xE7,0xDB,
0xBD,0x7E,0xFF
};
//定义一个循环变量。
unsigned char n;
/******定时器初始化函数*********/
void Init_Timer(void)
{
TMOD=0x11; //定时器方式控制字 T0 :16位定时 T1:16位定时
TH0=0x3C; //定时器0高位
TL0=0xB0; //定时器0低位
EA=1; //开CPU中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器0
}
/*******定时器0中断服务程序********/
//在定时器0工作在16定时器时,需要手动载入定时常数..
//..这里在中断服务程序中加入这样一个定时常数的载入
/***************/
void timer0 (void) interrupt 1 using 1
{
TH0=0x3C; //定时常数的重新载入,定时50ms
TL0=0xB0;
n=(n+1)%32; //切换马灯的显示状态
P2=0xFF; //让所有led使能工作
P0=design[n]; //切换led显示内容
}
/*******主函数********/
//除了初始化函数之外..
//就是一个while死循环
//最简单的一个结构
/***************/
main()
{
Init_Timer(); //初始化函数
while(1); //while 死循环
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?