//此程序是读STC全球唯一号发送到串口
#include <reg51.h> //波特率2400,下载后可以按下复位
typedef unsigned int u16;
typedef unsigned char u8;
#define ID_ADDR_RAM 0x1F0 //读RAM的8位,只有最后七字节是全球 ID唯一号(STC89C52RC为例,其它型号可以查地址)
#define ID_ROM_RAM 0x1FF8 //读ROM的8位,只有最后七字节是全球 ID唯一号(STC89C52RC为例,其它型号可以查地址)
u8 idata *iptr;
u8 code *stcid;
void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xF3;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void main(void)
{ u8 i;
InitUART();
{
iptr=ID_ADDR_RAM; //从ROM区读取ID号
for (i=0; i<8; i++) //读7个字节
{
SendOneByte(*iptr++); //发送ID到串口
// stcid=ID_ROM_RAM+i; //从ROM区读取ID号
// SendOneByte(*stcid); //发送ID到串口
}
}
while(1);
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
}
else
TI = 0;
}
其它型号,请查ROM地址,在最后七个字节位置,
其它型号,请查RAM地址,在最后七个字节位置,(下载时要钩选,在代码后添加ID号)
#include <reg51.h> //波特率2400,下载后可以按下复位
typedef unsigned int u16;
typedef unsigned char u8;
#define ID_ADDR_RAM 0x1F0 //读RAM的8位,只有最后七字节是全球 ID唯一号(STC89C52RC为例,其它型号可以查地址)
#define ID_ROM_RAM 0x1FF8 //读ROM的8位,只有最后七字节是全球 ID唯一号(STC89C52RC为例,其它型号可以查地址)
u8 idata *iptr;
u8 code *stcid;
void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xF3;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void main(void)
{ u8 i;
InitUART();
{
iptr=ID_ADDR_RAM; //从ROM区读取ID号
for (i=0; i<8; i++) //读7个字节
{
SendOneByte(*iptr++); //发送ID到串口
// stcid=ID_ROM_RAM+i; //从ROM区读取ID号
// SendOneByte(*stcid); //发送ID到串口
}
}
while(1);
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
}
else
TI = 0;
}
其它型号,请查ROM地址,在最后七个字节位置,
其它型号,请查RAM地址,在最后七个字节位置,(下载时要钩选,在代码后添加ID号)