庫函數(shù)absacc.h的使用,介紹絕對(duì)宏和絕對(duì)地址的用法; #include <REG52.h> //包含頭文件REG52.h,使能51內(nèi)部寄存器; #include <absacc.h> #include <stdio.h> //包含頭文件stdio.h //_getkey();從串口讀入一個(gè)字符; //putchar();向串口發(fā)送一個(gè)字節(jié); /printf();向串口發(fā)送一串字節(jié); //函數(shù)功能:初始化串口,設(shè)置波特率為1200bps@16MHz,使能接收,使用8位UART; void Serial_Port_Initialization() { SCON=0x50; //串行控制寄存器: SM0,SM1,SM2,REN,TB8,RB8,TI,RI //SM1:SM0=01,選擇方式1,SM2=0,表示非多機(jī)通訊,8-bit UART; //REN=1,使能接收; TMOD|=0x20; //定時(shí)器方式控制寄存器:GATE1,C/T1,M11,M10,GATE0,C/T0,M01,M00 //GATE=0,TR置1便可以啟動(dòng)Timer;GATE=1,TR置1,且INT腳輸入高電平, //才可以啟動(dòng)Timer; //M11:M10=10,選擇方式2,8位自動(dòng)重裝載; TH1=221; //TH1: reload value for 1200 baud @ 16MHz TR1=1; //啟動(dòng)Timer1; TI=1; //發(fā)送UART的第一個(gè)字節(jié),為下次發(fā)送做準(zhǔn)備; }
unsigned char da unsigned char idata char_value1 _at_ 0x7e; void main(void) { unsigned char da unsigned int da unsigned char da unsigned int da unsigned char da unsigned int da unsigned char da unsigned int da Serial_Port_Initialization();//設(shè)置波特率為1200bps@16MHz,使能接收,使用8位UART; for(;;) { DBYTE[0x7f]='1'; //向內(nèi)部RAM的地址0x7f單元寫入1的ascii碼; byte_in_internal_ram=DBYTE[0x7f]; //將內(nèi)部RAM中地址為0x7f的內(nèi)容保存到變量中; DWORD[0x3f]=0x2010; //向內(nèi)部RAM的地址0x7e和0x7f單元寫入0x2010; int_in_internal_ram=DWORD[0x3f]; //將內(nèi)部RAM中地址為0x7e和0x7f的內(nèi)容保存到變量中;
PBYTE[0x7f]=0xff; //向外部RAM的地址0x007f寫入0xff; byte_in_pdata_ram=PBYTE[0x7f]; //將外部RAM中地址為0x007f的內(nèi)容保存到變量中; PWORD[0x003e]=0x2010; //向外部RAM的地址0x007e和0x007f單元寫入0x2010; int_in_pdata_ram=PWORD[0x003e]; //將外部RAM中地址為0x007f的內(nèi)容保存到變量中;
XBYTE[0x007f]=0xff; //向外部RAM的地址0x007f寫入0xff; byte_in_xdata_ram=XBYTE[0x007f]; //將外部RAM中地址為0x007f的內(nèi)容保存到變量中; XWORD[0x003f]=0x2010; //向外部RAM的地址0x007e和0x007f單元寫入0x2010; int_in_xdata_ram=XWORD[0x003f]; //將外部RAM中地址為0x007f的內(nèi)容保存到變量中;
char_in_co char_in_co int_in_co
char_value1='2'; //向內(nèi)部RAM的地址0x7f單元寫入2的ascii碼; char_value='3'; //向內(nèi)部RAM的地址0x7e單元寫入3的ascii碼; } } |
|