注释代码#include <REGX51.H> #include <tm1638.h> unsigned char num[8]; int main(void) { unsigned char i; init_TM1638(); Write_DATA(i<<1,tab[0]); while(1) { i=Read_key(); num[i]++; while(Read_key()==i); if(num[i]>15) num[i]=0; Write_DATA(i*2,tab[num[i]]); Write_allLED(1<<i); } } }
时间: 2024-04-16 22:25:40 浏览: 16
这段代码使用了REGX51库和tm1638库来控制TM1638数码管和按键。代码中定义了一个名为num的无符号字符数组用于存储每个按键对应的计数值。
在主函数中,首先调用了init_TM1638()函数初始化TM1638。然后使用Write_DATA函数将tab[0]写入到i<<1位置,这个位置是TM1638数码管的位置。
接下来进入一个无限循环,通过Read_key函数读取当前按下的键值并赋值给变量i。然后将num[i]自增1,并使用while循环等待按键松开,确保只计数一次。如果num[i]大于15,则将其重置为0。
接下来使用Write_DATA函数将tab[num[i]]写入到i*2位置,更新TM1638上对应按键的数码管显示。最后调用Write_allLED函数将1左移i位的值写入到LED控制寄存器,点亮对应按键的LED灯。
整个程序将不断循环检测按键,并实时更新数码管和LED显示。
请注意,此代码中使用的库和函数可能是特定于某个硬件平台或编译器的,请确保你的环境中有相应的库文件和函数定义。
相关问题
#include <REGX52.H>跟#include<Reg52.h>
这两个头文件都是51单片机的头文件,但是它们的文件名大小写不同。其中,`#include <REGX52.H>`是一些厂家提供的头文件,而`#include<Reg52.h>`是Keil提供的头文件。两个头文件的功能是相同的,都可以用于51单片机的编程。因此,你可以根据自己的需要选择其中一个头文件进行使用。
#include<REGX51.H> #include<intrins.h> #define uchar unsigned char #define uint unsigned int什么意思
这段代码是一个基于51单片机的C语言程序,其中:
- `#include<REGX51.H>` 是包含了51单片机的头文件,可以使用其中定义的寄存器及功能;
- `#include<intrins.h>` 是包含了汇编语言的头文件,可以使用其中定义的内嵌汇编函数;
- `#define uchar unsigned char` 定义了一个名为`uchar`的宏,表示无符号字符类型;
- `#define uint unsigned int` 定义了一个名为`uint`的宏,表示无符号整数类型。