注释代码#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 14:25:40 浏览: 135
单片机reg52.h
4星 · 用户满意度95%
这段代码使用了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显示。
请注意,此代码中使用的库和函数可能是特定于某个硬件平台或编译器的,请确保你的环境中有相应的库文件和函数定义。
阅读全文