uchar code *ROM_Addr;
INT_CLKO = 0;
CLK_DIV = 0;
P3M0 = 0x00;
P3M1 = 0x00;
ROM_Addr = 0x0FF9;
for(i = 0; i < 7; i++)
{
PlayCharacter(HEXtoASCII(*ROM_Addr >> 4));
PlayCharacter(HEXtoASCII(*ROM_Addr & 0xF));
_nop()_;
ROM_Addr++;
}
uchar HEXtoASCII(uchar Date)
{
Date &= 0x0F;
if(Date <= 9)
{
return (Date + '0');
}
else
{
return (Date - 10 + 'A');
}
}
都是STC的代码
HEXtoASCII()是16进制数转ASCII码
真没啥难的,就是太怪了,烧录软件上能显示出全部14个ID码,用这个代码只能显示8个ID码。
用示波器看了看,检查了主时钟,没问题,定时器T0工作正常。
前面还有个数组定义在CODE区,这个会影响到ROM_addr?
const uchar code A[7][2] = {0xFB,0xFB,0xFC,0xFC,0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE};
芯片的硬件版本7.2.5Q
[ 此帖被BG1TRP在2020-01-21 11:43重新编辑 ]