線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2317
推到 Plurk!
推到 Facebook!

8051 rs232 輸出

尚未結案
lincf
一般會員


發表:1
回覆:1
積分:0
註冊:2010-11-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-11-15 16:44:57 IP:114.32.xxx.xxx 訂閱
各位先進好,小弟有個小問題,
以下是小弟寫個程式碼,小弟主要是透過P2_1 ON 觸發 RS232輸出,
但接到電腦輸出的結果如同我要的printf的內容,
當我接到投影機的時候,卻是無法工作?請問一下是為什麼呢?
還有我要有啟動的電源指示燈,應該怎麼寫會比較好呢?


[code cpp]
#include
#include
void rs_232();
void power_on();
void power_off();
sbit P_ON=P2^0;
sbit P_OFF=P2^1;
sbit PLED=P1^0;

void main()
{
P_ON=1;
PLED=1;
rs_232();
while(1)
if(P_ON==0)
{
PLED=0;
power_on();
}
if((P_ON&&PLED)==0)
{
PLED=1;
power_off();
}


}

void rs_232(void)
{
PCON=0x80;
SCON=0x50; // 8 bit UART(Mode1)
TMOD=0x20; // Timer1(Mode2),使用內部計時器
TH1=0xfd; // TH1=TL1 = 256 - (振盪器頻率 / (32 * 12 * 鮑率))
TR1=1; // 啟動Timer1
TI=1; // 使用 puts, printf, ... 前一定要先設為"1"
SBUF=' ';// 傳送字元"printf"給PC
}

void power_on(void)
{

printf("BEEF100500C6FF111101000100\r");

}
void power_off(void)
{

printf("BEEF030600DCDB690000000000\r");
}
[/code]
編輯記錄
lincf 重新編輯於 2010-11-15 01:45:29, 註解 無‧
lincf 重新編輯於 2010-11-15 01:46:01, 註解 無‧
lincf 重新編輯於 2010-11-15 01:47:00, 註解 無‧
lincf 重新編輯於 2010-11-15 01:47:30, 註解 無‧
lincf 重新編輯於 2010-11-15 01:47:45, 註解 無‧
lincf 重新編輯於 2010-11-15 01:48:46, 註解 無‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-11-15 19:45:12 IP:122.116.xxx.xxx 訂閱
若程式流程沒有問題的話
掛示波器下斷點看信號有沒有出來
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-11-17 10:33:53 IP:114.32.xxx.xxx 訂閱

[code cpp]
void main()
{
P_ON=1;
PLED=1;
rs_232();
while(1)
{ //<-- 這個大括號你沒加
if (P_ON==0)
{
PLED=0;
power_on();
}

if ( (P_ON&&PLED) ==0 ) // <--這行你確定是這樣嗎?
//if (P_OFF==0 && PLED==0 && P_ON==1) // <-- 應該改成這樣才對吧!
{
PLED=1;
power_off();
}
}
}

void power_on(void)
{

printf("BEEF100500C6FF111101000100\r"); // <-- 這是字元
//printf(0xBE,0xEF,0x10,0x05,0x00,0xC6,0xFF,0x11,0x11,0x01,0x00,0x01,0x00,"\r"); // <-- 應該是這樣才對吧!

}
void power_off(void)
{
printf("BEEF030600DCDB690000000000\r");
//printf(0xBE,0xEF,0x03,0x06,0x00,0xDC,0xDB,0x69,0x00,0x00,0x00,0x00,0x00,"\r"); <-- 同上
}
[/code]
lincf
一般會員


發表:1
回覆:1
積分:0
註冊:2010-11-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-11-17 13:24:57 IP:114.32.xxx.xxx 訂閱
感謝各位的回覆
我目前碰到的問題則是 printf(0xBE)
則我收到的則是42 45 這樣子的訊息,我要怎樣去變更我的printf才會是正常的?
系統時間:2024-04-20 20:27:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!