对以下代码进行解释void display P2=0x00; P1=0xFF; switchScanTime -----------数码管第1位------------- case 1 P2=SEG_TabNum10; P1=0xFE; break; -----------数码管第2位------------- case 2 P2=SEG_T
这段代码是用来显示数码管上的数字的。函数名为display,没有返回值(void)。
首先,代码将P2设置为0x00,P1设置为0xFF,这是为了控制数码管的显示。
然后,根据变量ScanTime的值进行判断。如果ScanTime的值为1,表示显示数码管的第一位数字,代码将Num除以10得到的商作为索引从SEG_Tab数组中获取对应的数码管段码,并将其赋值给P2。同时,将P1的值设置为0xFE,表示选中数码管的第一位。
如果ScanTime的值为2,表示显示数码管的第二位数字,代码将Num除以10得到的余数作为索引从SEG_Tab数组中获取对应的数码管段码,并将其赋值给P2。同时,将P1的值设置为0xFD,表示选中数码管的第二位。
最后,如果ScanTime的值不是1或2,则不执行任何操作。
接着,代码将ScanTime自增1,并进行判断。如果ScanTime的值大于2,则将其重新设置为1,实现循环扫描。
总结起来,这段代码根据ScanTime的值选择要显示的数码管位,并将对应的数码管段码输出到P2,同时选中对应的数码管位。然后,通过不断增加ScanTime的值,实现数码管的循环扫描显示
原文地址: https://www.cveoy.top/t/topic/hUhX 著作权归作者所有。请勿转载和采集!