把下述代码添加注释#include "reg51.h" unsigned char led_mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71}; unsigned char count = 0; sbit P04 = P0^4; int0_key() interrupt 0{ P04 = !P04; } int1_key() interrupt 2{ P2 = led_mod[count]; if (++count>=0x10) count=0; } void main(){ IT0=IT1=EX0=EX1=EA=1; P2 = 0; while(1); }
时间: 2024-04-06 14:28:46 浏览: 22
// 引入reg51头文件
#include "reg51.h"
// 定义LED显示模式数组
unsigned char led_mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};
// 定义计数器
unsigned char count = 0;
// 定义P0.4引脚的别名
sbit P04 = P0^4;
// 定义外部中断0的中断函数
int0_key() interrupt 0{
P04 = !P04;
}
// 定义外部中断1的中断函数
int1_key() interrupt 2{
// 在LED数码管上显示计数器对应的值
P2 = led_mod[count];
// 计数器加1,当达到0x10时,重新计数
if (++count>=0x10) count=0;
}
void main(){
// 开启外部中断0和1,以及总中断
IT0=IT1=EX0=EX1=EA=1;
// 初始化LED数码管
P2 = 0;
// 进入死循环
while(1);
}
相关问题
unsigned int hex_num=0x12345678 把他变成0x78563412
要将unsigned int类型的变量hex_num从0x12345678转换成0x78563412,可以按照以下步骤进行:
1. 将hex_num的字节序列翻转,可以使用std::reverse函数来实现。
2. 将翻转后的字节序列中的相应字节进行交换,可以使用std::swap函数来实现。
以下是一个示例代码,可以实现将unsigned int类型的变量hex_num从0x12345678转换成0x78563412:
```cpp
#include <algorithm>
int main()
{
unsigned int hex_num = 0x12345678; // 待转换的unsigned int类型变量
std::reverse((unsigned char*)&hex_num, ((unsigned char*)&hex_num) + sizeof(hex_num)); // 将字节序翻转
std::swap(((unsigned char*)&hex_num)[0], ((unsigned char*)&hex_num)[3]); // 交换相应的字节
std::swap(((unsigned char*)&hex_num)[1], ((unsigned char*)&hex_num)[2]); // 交换相应的字节
return 0;
}
```
在这个示例代码中,我们使用了std::reverse函数将hex_num的字节序列翻转,并使用std::swap函数交换了翻转后的字节序列中的相应字节。最终得到的hex_num变量的值为0x78563412,即将0x12345678翻转、交换字节后得到的值。请注意,这种方法是基于字节操作的,可能不太适用于大端和小端存储的机器上。
unsigned char g_Key_Count=0; unsigned char g_Key_Back=0; unsigned char Temp_key=0; unsigned char value_key=0; #define Key_NONE 0x00
这段代码定义了4个无符号字符变量g_Key_Count、g_Key_Back、Temp_key和value_key,并且定义了一个宏Key_NONE,其值为0x00。
这些变量用于处理按键输入。g_Key_Count用于计数按键按下的时间,g_Key_Back用于记录上一次按键的状态,Temp_key用于暂存当前按键的状态,value_key用于存储最终的按键值。
宏Key_NONE表示没有按键按下。