对以下两个不同的代码,标注注释:
时间: 2024-02-29 17:51:09 浏览: 51
代码1:
```
#include<reg52.h> //包含51单片机头文件
typedef unsigned int u16; //定义无符号整型变量u16
sbit led = P2^0; //定义led为P2口的第0位
int i = 0; //初始化i的值为0
void delay_10us(u16 ten_us) //定义延时函数,ten_us为延时时间
{
while(ten_us--); //循环执行延时操作
}
void timer1_init() //初始化定时器1
{
TMOD = 0x10; //设置定时器1为工作模式1
TH1 = 0x4C; //设置定时器1的高8位计数值
TL1 = 0x00; //设置定时器1的低8位计数值
EA = 1; //开启总中断
ET1 = 1; //开启定时器1的中断
TR1 = 1; //启动定时器1
}
void main() //主函数
{
IE=0x81; //开启外部中断0
led = 1; //led灯初始状态为亮
timer1_init(); //初始化定时器1
while(1) //进入死循环
{
if(i==10) //如果i的值等于10
{
led=!led; //取反led的值
i = 0; //将i的值设为0
}
}
}
int0_srv()interrupt 0{ //定义外部中断0的服务函数
TR1= !TR1; //控制定时器1的启动和停止
delay_10us(20000); //延时20ms
}
void T1_time() interrupt 3{ //定义定时器1的服务函数
TH1 = 0x4C; //重新设置定时器1的高8位计数值
TL1 = 0x00; //重新设置定时器1的低8位计数值
i++; //i的值加1
}
```
代码2:
```
#include <regx52.h> //包含51单片机头文件
#define uchar unsigned char //定义无符号字符变量uchar
uchar code table[] = {0xFD,0xF7,0xDF,0x7F}; //定义字符数组table
void delay(uint i) //定义延时函数,i为延时时间
{
while (i--); //循环执行延时操作
}
void main() //主函数
{
uchar i, j; //定义两个无符号字符变量i和j
while (1) //进入死循环
{
for (i = 0; i < 4; i++) //循环4次
{
P2 = table[i]; //将table数组中的值赋给P2口
delay (18000); //延时18ms
}
for (i = 2; i >0; i--) //循环2次
{
P2 = table[i]; //将table数组中的值赋给P2口
delay (18000); //延时18ms
}
}
}
```
注释已添加在代码中,希望能对你有所帮助。
阅读全文