SOGO論壇
  登入   註冊   找回密碼
查看: 1394|回覆: 3
列印 上一主題 下一主題

[問題求助] 8051初學者 [複製連結]

Rank: 2

狀態︰ 離線
跳轉到指定樓層
1
發表於 2012-9-24 16:37:13 |只看該作者 |倒序瀏覽 | x 1
我是個8051的初學者想做一個

中斷的副程式 第13腳的 INT1
該怎麼寫啊
中斷是亮滅3次玩又回到8個LED燈的左移右移霹靂燈主程式
我LED霹靂燈左移右移寫這樣是對還是ˇ錯啊
請給我一點解答吧
#include "HW1.H"
void delay();
void Init_B_Port();
int main()
{
unsigned int a,b;
int i;

Init_B_Port();
while (1) {
//
a = 0x0080;
for (i =0; i < 8; i++)
{
*P_IOB_Data = a;
delay();
a = a >> 1;
}
//
b = 0x0001;
for (i =0; i < 8; i++)
{
*P_IOB_Data = b;
delay();
b = b << 1;
}
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

Rank: 4

數位軟體勳章

狀態︰ 離線
2
發表於 2012-9-25 08:27:02 |只看該作者
您用的是哪種 C compiler ? 看起來不是 Keil 我是使用 Keil C compiler
既然是要控制 8 顆 LED ,data type 宣告成 unsigned char 就好!不
需要宣告成 unsigned int 這可是 16 bit,8051 RAM 僅有 128 byte
8052 RAM 也才有 256 byte 而已,8 bit 夠用的話,就盡量使用
unsigned char 就可以。
已有 1 人評分SOGO幣 收起 理由
紅塵孤鳥 + 5 感謝您熱心幫助會員解決問題,論壇需要您的.

總評分: SOGO幣 + 5   查看全部評分

Rank: 2

狀態︰ 離線
3
發表於 2012-9-25 09:32:03 |只看該作者
if8051 發表於 2012-9-25 08:27  
您用的是哪種 C compiler ? 看起來不是 Keil 我是使用 Keil C compiler
既然是要控制 8 顆 LED ,data type ...

謝指點我在試試看
那我改用KEIL寫看看好了

Rank: 5Rank: 5

數位軟體勳章

狀態︰ 離線
4
發表於 2012-10-11 15:38:06 |只看該作者
本帖最後由 alphi 於 2012-10-11 18:46 編輯

不過我很好奇你提供的副程式中 幾乎都沒有關於8051 暫存器與相關的設定,如果以8051 外部中斷用Keil /SDCC寫至少中斷副程式會像以下的寫法
  1. #include <8052.h>
  2. void EINT0(void) interrupt 0 using 0
  3. {
  4.       P2^=0xFF; //每當壹次外部中斷反向
  5.       ......

  6. }
  7. int main()
  8. {
  9.         P2=0x00;
  10.         TCON=0x05; //IT0 =1& IT1=1,邊沿觸發(Edge Trigger)

  11.         //IE=(1<<7)|1; 相當於EA=1,EX0=1
  12.         EA   =1;     //啟用所有中斷
  13.         EX0 =1;     //開啟INT0中斷

  14.         while(1)
  15.         {
  16.         }
  17. }
複製代碼
不過看不出來你的設定,另外再中斷中建議不要做太多事情用一個Flag 做狀態機切換到主程式去執行...這樣你的後續如果有中斷才有足夠時間去處理
已有 1 人評分威望 收起 理由
紅塵孤鳥 + 2 感謝您熱心幫助會員解決問題,論壇需要您的.

總評分: 威望 + 2   查看全部評分

失敗只有一種:那就是半途而廢
請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2024-6-18 04:15

© 2004-2024 SOGO論壇 OURSOGO.COM
回頂部