本帖最后由 阿杰爱学单片机 于 2024-8-28 07:13 编辑
第十集 数码管的动态显示
动态显示原理
取数码管公共端COM输出高电平,其余COM端输出低电平
再在断码端口输出断码,
依次循环,并延时1ms,利用人眼视觉暂留,就可以看到显示多位数了
为啥一定是一ms,不太了解2ms,或者500微秒不行吗
前几节的没有弄明白补一下数组
数组格式
变量类型 XX数组名[数组大小]={数组内容};
应用数组的方法,数组名[索引];索引就是数组内每位数的序号,数组从0开始
冲哥教的数组嵌套 数组名[数组名[索引]];感觉像套娃
下面是我写的代码,应该没问题,昨天那个数码管,不知道咋了用不了,就没用了
- u8 Num;
-
- SEG_Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- COM_Tab[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
- SEG_BUFF[]={1,2,3,4,5,6,7,8};
-
- void main(void) //主函数(程序从这里执行)
- {
- SYS_Init(); // STC32初始化
- MyUSB_Init(); //USB初始化
- GPIO_Init(); //IO口初始化
- while(1)
- {
- if( DeviceState != DEVSTATE_CONFIGURED ) //
- continue;
- if( bUsbOutReady )
- {
- usb_OUT_done();
- }
-
- P0=COM_Tab[Num];
- P2=SEG_Tab[SEG_BUFF[Num]];
- delay_ms(5);
- Num++;
- if(Num==8)
- {
- Num=0;
- }
- }
- }
复制代码
|