#include<reg51.h> //主機(jī)發(fā)送 #include<intrins.h> #define lcddate P0 #define unint unsigned int #define unchar unsigned char sbit EN=P2^0; /*使能*/ sbit RW=P2^1; /*讀/寫(xiě)*/ sbit RS=P2^2; /*寄存器選擇*/ unchar code table[7]="FM 10.6"; /*顯示內(nèi)容*/ unchar code table1[12]="voice*1*****"; unchar rxbuf=0; void main() {unchar m,n; void lcd_init(void); void lcd_wcom(unchar com); void lcd_wdate(unchar date); void ms_delay(unint delaytime); TMOD=0X20; PCON&=0X7F; SCON=0xd0; TH1=0XF0;//9600@11.0592MHZ TL1=0xfd; TR1=1; ES=1; EA=1; lcd_init(); lcd_wcom(0x80); for(m=0;m<7;m++) {lcd_wdate(table[m]);}//數(shù)組做函數(shù)參數(shù) ms_delay(1); lcd_wcom(0x80+0x40); for(n=0;n<12;n++) {lcd_wdate(table1[n]);} while(1); } /*-----------------------------------------------*/ void lcd_init() /*LCD intiation*/ {lcd_wcom(0x38); lcd_wcom(0x0c); lcd_wcom(0x06); lcd_wcom(0x01); } /*--------------------------------------------*/ void lcd_wcom(unchar com)/*com regester*/ {RW=0; RS=0; lcddate=com; SBUF=com; ms_delay(1); EN=1; _nop_(); _nop_(); EN=0; } /*-----------------------------------------------*/ void lcd_wdate(unchar date)/*date regester*/ {RW=0; RS=1; lcddate=date; SBUF=date; ms_delay(1); EN=1; _nop_(); _nop_(); EN=0; } /*----------------------------------------------*/ void UART()interrupt 4 using 0//TX {if(TI){ ms_delay(1); TI=0;}//發(fā)送數(shù)據(jù) }
/*接收端*/
#include<reg51.h> #include<intrins.h> #define unint unsigned int #define unchar unsigned char #define lcddate P2 sbit EN=P3^7; /*使能*/ sbit RW=P3^6; /*讀/寫(xiě)*/ sbit RS=P3^5; /*寄存器選擇*/
unchar rxbuf=0; void main() { void lcd_init(void); void lcd_wcom(unchar com); void lcd_wdate(unchar date); void ms_delay(unint delaytime); TMOD=0X20; PCON&=0X7F; SCON=0xd0; TH1=0Xfd;//9600@11.0592MHZ TL1=0xfd; TR1=1; ES=1; EA=1; RI=1; while(1); } /*----------------------------------------------*/ void UART()interrupt 4 { unchar m=0; while(RI){RI=0; //先請(qǐng)中斷標(biāo)志 ?? lcd_init(); m++; if (m<=7) {rxbuf=SBUF; lcd_wcom(0x80); lcd_wdate(rxbuf);} else{ lcd_wcom(0xc0); rxbuf=SBUF; lcd_wdate(rxbuf);} } } /*-----------------------------------------------*/ void lcd_init() /*LCD intiation*/ {lcd_wcom(0x38); //八位數(shù)據(jù),雙列 lcd_wcom(0x0c); lcd_wcom(0x06); lcd_wcom(0x01); } /*--------------------------------------------*/ void lcd_wcom(unchar com)/*com regester*/ {RW=0; RS=0; lcddate=com; ms_delay(1); EN=1; _nop_(); _nop_(); EN=0; } /*-----------------------------------------------*/ void lcd_wdate(unchar date)/*date regester*/ { RW=0; RS=1; lcddate=date;//date 是否還需申明呢? ms_delay(1); EN=1; _nop_(); _nop_(); EN=0; }
|