《深入浅出AVR》实例6矩阵按键问题
请问傻孩子:深入浅出AVR》实例6矩阵按键中, 6个按键按下7段数码管显示ABCDEF
#define Key_A 0x0A
#define Key_B 0x0B
#define Key_C 0x0C
#define Key_D 0x0D
#define Key_E 0x0E
#define Key_F 0x0F
#define NoKey 0x00
这样能显示ABCDEF吗?
我是初学者,买了你的书,很不错。请以后多多指点。 能显示什么,取决于你的段码表里面有没有对应的内容。
比如你定义Key_A 0x0A,那么,这里0x0A实际上表示一个十进制数字10,也就是说
你的段码表(数组)在下标为10的位置应该存储着“A”的段码,这样才能完成你说
的功能。 谢谢!我明白了,还以为是用0x0A十六进制,来对应数码管的段。
我看了几本书,好像他们表示段码时都是最低位对应a段,和最高位对应a段应该都一样吧! 不明白的意思…… 那个我搞明白了。
我想问一下书中67页下面那段话什么意思?1MHZ的CPU时钟下,一个NOP是延时1MS吗?
那我用的4MHZ晶振呢? 1Mhz CPU时钟下,一个NOP是1us……
4Mhz就是 1/4us
nMhz就是 1/Nus……
你也可以这样记忆
nM就是1us可以执行 n个指令……
1ms可以执行 n 千个指令 很多例子都是这个延时程序:应该就是1MHZ下的吧?
void delay_1us(void) //1us延时函数
{
asm("nop");
}
void delay_nus(unsigned int n) //N us延时函数
{
unsigned int i=0;
for (i=0;i<n;i++)
delay_1us();
}
void delay_1ms(void) //1ms延时函数
{
unsigned int i;
for (i=0;i<1140;i++);
}
void delay_nms(unsigned int n) //N ms延时函数
{
unsigned int i=0;
for (i=0;i<n;i++)
delay_1ms();
}
我的4MHZ:
void delay_1us(void) //1us延时函数
{
asm("nop"); //0.25us
asm("nop"); //0.25us
asm("nop"); //0.25us
asm("nop"); //0.25us
}
下面这个还没搞懂:
void delay_1ms(void) //1ms延时函数
{
unsigned int i;
for (i=0;i<1140;i++);
}
页:
[1]