![](https://csdnimg.cn/release/download_crawler_static/87992261/bg7.jpg)
在本课题中,数码管要显示 A - G , 1 - 7, 1. - 7. ,所以段码比较另类。num[0]
的值是没用到的,起占位作用。
uchar code num[]={0x00, //共阴极数码管段选码
0x77,0x7c,0x39,0x5e,0x79,0x71,0x3d, //a - g
0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, //1 - 7
0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87 //1. - 7.
};
编写程序时,要根据实际情况来编写:
比如 16 个按键不能够把低中高音都全部表示完全,只能选取合适的部分。
我让第一行的按键 触发低音 4 - 7,第二行触发中音 1 - 4,第三行触发中音 5 - 7
和高音 1,第四行触发高音 2 - 5。这样设置能弹奏大部分曲目。
以下是控制数码管的代码片段:
if(x == 1)
P0 = num[3 + y] ; //低音 4 - 7
else if(x == 2)
P0 = num[7 + y]; //中音 1 - 4
else if(x == 3)
P0 = num[11 + y]; //中音 5 - 7 和 高音 1
else if(x == 4)
P0 = num[15 + y]; //高音 2 - 5
LED 灯: