麻煩各位大大幫幫看一下我頭腦快爆炸了R232對8051 RI TI傳輸問題 |
尚未結案
|
killer_987
一般會員 發表:1 回覆:0 積分:0 註冊:2013-03-16 發送簡訊給我 |
#include "..\MPC82.H" //暫存器及組態定義
void LCD_init(void); void LCD_Cmd(unsigned char Cmd); void LCD_wait(void); void LCD_Data(unsigned char dat); void LCD_Disp(unsigned int disp); void LCD_Cmd_Init(unsigned char Cmd); void UART_init(unsigned int bps); void uart_string(void); unsigned char cmd_ecread[5]={0x68,0x04,0x00,0x01,0x07}; unsigned char ec_buf[7]; unsigned int ecompass; unsigned char index; unsigned char i,j,s; bit ready; main() { UART_init(9600); LCD_init(); LCD_Cmd(0x80); //游標由第一行開始顯示 LCD_Cmd(0x0f);//*0000 1111,顯示幕ON,顯示游標,游標閃爍 LCD_Cmd(0x80); //游標由第一行第1字開始顯示 EA=1;ES=1; //致能串列中斷 */ while(1) { uart_string(); loop: while(ready) { LCD_Cmd_Init(0x01); LCD_Cmd_Init(0x02); ecompass=(ec_buf[4]*100) ((ec_buf[5]&0xf0)>>4)*10 (ec_buf[5]&0x0f); LCD_Disp(ecompass); ready=0; } goto loop; }} void LCD_Data(unsigned char dat) { unsigned char dly=2; Data=dat; RS=1;RW=0;EN=1; while(dly--); EN=0; LCD_wait(); } void LCD_Cmd(unsigned char Cmd) { unsigned char dly=2; Data=Cmd; RS=0;RW=0;EN=1; while(dly--); EN=0; LCD_wait(); } void LCD_init(void) { LCD_Cmd_Init(0x38); LCD_Cmd_Init(0x38); LCD_Cmd_Init(0x38); LCD_Cmd_Init(0x0c); LCD_Cmd_Init(0x06); LCD_Cmd_Init(0x01); LCD_Cmd_Init(0x02); } void LCD_wait(void) { unsigned char status; Data=0xff; do { RS=0;RW=1;EN=1; status= Data; EN=0; } while(status & 0x80); } void UART_init(unsigned int bps) { P0M0=0; P0M0=0xFF; SCON = 0x50; TMOD = 0x20; TH1=TL1=256-(57600/bps); TR1 = 1; } void LCD_Disp(unsigned int disp) { if(disp>99) LCD_Data(disp/100 '0'); if(disp>9) LCD_Data(disp0/10 '0'); LCD_Data(disp '0'); } void LCD_Cmd_Init(unsigned char Cmd) { Data=Cmd; RS=0;RW=0;EN=1; Delay_ms(1); EN=0; Delay_ms(1); } void SCON_int(void) interrupt 4 { if(RI==1) //若是因為接收所產生的中斷 { RI=0; //接收完畢,令RI=0 ec_buf[index] = SBUF; if (index == 6) { index = 0; ready = 1; } else index ; } else TI=0; } void uart_string(void) { for(s=0;s<5;s ) { SBUF=cmd_ecread[s]; //Send 1 byte of string while(TI==0); //Wait for completion TI=0 ; } } 為什麼我的發射 cmd_ecread[5]={0x68,0x04,0x00,0x01,0x07};不是我要的資料有圖
------
鄭伊健 |
naga88
一般會員 發表:0 回覆:13 積分:7 註冊:2008-06-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |