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

89s51的問題 附電路圖

尚未結案
zxcjeff
一般會員


發表:3
回覆:3
積分:1
註冊:2012-06-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-09-16 23:25:58 IP:114.41.xxx.xxx 訂閱
為什麼我用keil模擬的時候功能都正常

我是想
P0_0 =1
P1_0 輸出方波
P0_0 =0
P1_0 =0


我燒到89s51
用示波器測是會有波形
但是測到的波形都不是我想控制的那樣

是我程式打錯嗎?? 可是模擬的時候功能都正常

還是外部電路圖用錯??


#include
#include
#include
void timer0_initialize(void) //初始化計時器0
{
EA=0; //關閉中斷功能(所有中斷副程式失效)
IE|=0x02; //開啟計時器中斷功能
TMOD|=0x01; //設定計時器模式
temp=65536-dutytime; //設定中斷一次的時間(預設是dutytime)
TH0=temp/256; //填入高八位
TL0=temp%6; //填入低八位
TR0=1; //啟動計時器
EA=1; //開啟中斷功能(中斷副程式可以執行)
}
void timer1_initialize(void) //初始化計時器1
{
EA=0; //關閉中斷功能(所有中斷副程式失效)
IE|=0x08; //開啟計時器中斷功能
TMOD|=0x10; //設定計時器模式
temp=65536-dutytime; //設定中斷一次的時間(預設是dutytime)
TH1=temp/256; //填入高八位
TL1=temp%6; //填入低八位
TR1=1; //啟動計時器
EA=1; //開啟中斷功能(中斷副程式可以執行)
}
void timer0_isr(void) interrupt TF0_VECTOR using 1 //使用計時器中斷副程式產生PWM
{
if(P0_0==1) //左轉(P1_0=1)
{
if(P1_0==1)
{
TR0=0;
temp=65536-toff;
TH0=temp/256;
TL0=temp%6;
TR0=1;
P1_0=0;
}
else
{
TR0=0;
temp=65536-ton;
TH0=temp/256;
TL0=temp%6;
TR0=1;
P1_0=1;
}
}
else
{
P1_0=0;
}
}
void timer1_isr(void) interrupt TF1_VECTOR using 1 //使用計時器中斷副程式產生PWM
{
if(P0_1==1) //右轉(P1_0=1)
{
if(P1_1==1)
{
TR1=0;
temp=65536-toff;
TH1=temp/256;
TL1=temp%6;
TR1=1;
P1_1=0;
}
else
{
TR1=0;
temp=65536-ton;
TH1=temp/256;
TL1=temp%6;
TR1=1;
P1_1=1;
}
}
else
{
P1_1=0;
}
}
void main(void) //主程式開始
{
P0_1=1; // 右轉
P0_0=1; // 左轉
timer0_initialize();//呼叫計時器初始化副程式
timer1_initialize();//呼叫計時器初始化副程式
while(1);
}



附加檔案:5055ef868d242_89s51.rar
編輯記錄
zxcjeff 重新編輯於 2012-09-16 09:28:49, 註解 無‧
taishyang 重新編輯於 2012-09-17 02:57:55, 註解 移除[急]字樣‧
if8051
中階會員


發表:2
回覆:53
積分:61
註冊:2012-08-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-09-17 07:49:19 IP:114.40.xxx.xxx 訂閱
power on reset pin 9 RESET 一定要接 RC 電路,Vcc 5v 接個 10uF/25v  電解電容器再串個電阻 
10K 歐姆到 GND DC0v,中間點連到 pin 9 RESET,此 power on reset 一定要接。
------
ATMEL AVR 單晶片設計開發 教學

工業電子 電機自動控制 設計 維修
zxcjeff
一般會員


發表:3
回覆:3
積分:1
註冊:2012-06-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-09-17 14:06:47 IP:59.126.xxx.xxx 訂閱
摁摁 那邊我有接只是 忘記畫在電路圖上
if8051
中階會員


發表:2
回覆:53
積分:61
註冊:2012-08-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2012-09-18 22:26:38 IP:114.39.xxx.xxx 訂閱
電腦模擬是學校教學為了省時省材料及麻煩的權宜之策!建議有心學會操控 MCU 的朋友運用
bread board 8051 實作,才能感受 8051 的奧妙!當實作時方能累積實務的經驗;零件接觸
不良,雜訊干擾而當機,debounce 20mS 臨場感!這些都是電腦模擬中學不到的,果真設計
MCU 就是真槍實彈,可不是沙盤推演乾過癮。
------
ATMEL AVR 單晶片設計開發 教學

工業電子 電機自動控制 設計 維修
系統時間:2017-12-15 4:57:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!