可行,转换开关最好用门电咯 |
一定要按住复位键,拨动编程运行切换开关。切换时,有不确定因素,可能改写了数据,先按住复位键,就不会改动了,松开就运行。 |
今天发现传送程序不稳定,字节忽多忽少。 多方查找不是波特率高了的问题,原因在于超级终端只管发,有时前后字节搞串了。 把超级终端设为2个停止位就好了。 |
这个适合于编程实验,很方便,我现在就用这个。 应用当然烧录好。 |
其实原来ATMEL,现在MicroChip的AT89S52是支持PC串口或并口编程的。是真正的烧录到AT89S52中,掉电不失的那种。 |
这种一断电,SRAM中的程序就没有了。当然可以采用外部电池来保持SRAM中的内容。 |
写入片外数据存储器起始地址为0X0000是一样的。 HEX文件处理太麻烦,用HEX2BIN.EXE转换为BIN文件(程序内存映像文件,什么附加也没有),用超级终端发送,每写一个字节,又读出发送回来。 试验完成! #include<AT892051.H> //UART init void initUart(void) { TMOD|=0x20; SCON=0x50; PCON|=0x80; TH1=0xfa; TL1=0xfa; TR1=1; ES=1; //串口中断许可 } //////////////////////////////////////uart interrupt//////////// unsigned char xdata *xpi; //写外存地址 //uart interrupt void uart(void) interrupt 4 { if(RI) { RI=0; //add your code here. *xpi = SBUF; //接收到数据 SBUF=*xpi; // 数据发送回PC xpi++; } else TI=0; } ////////////////////////the main fun///////// void main(void) { initUart(); xpi=0x0000; //写外存地址 EA=1; //总中断许可 while(1){;} } |