史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2008-05-11, 07:58 PM   #1
gjo3x06nk4
註冊會員
 
gjo3x06nk4 的頭像
榮譽勳章
UID - 295634
在線等級: 級別:8 | 在線時長:106小時 | 升級還需:11小時級別:8 | 在線時長:106小時 | 升級還需:11小時級別:8 | 在線時長:106小時 | 升級還需:11小時
註冊日期: 2008-03-10
文章: 133
精華: 0
現金: 99 金幣
資產: 919 金幣
預設 疑問 - (MCS-51)89C52的一些程式問題!?



--------------------
閱讀本主題的最佳解答
--------------------


http://img237.imageshack.us/img237/320/002no2.jpg


;主程式
;
;
ORG 0000H
AJMP MAIN
;
ORG 0003H ;INT0中斷服務副程式起始處
AJMP INT0_INT
;
ORG 0013H ;INT1中斷服務副程式起始處
AJMP INT1_INT
;
MAIN: MOV SP,#30H
MOV TCON,#00000000B ;設定INT0及INT1為低準為觸發
MOV IP,#00000001B ;INT0設定為高優先權
SETB EA ;致能所有的中斷
SETB EX0 ;起始INT0中斷
SETB INT0 ;將INT0設為輸入端
SETB EX1 ;起始INT1
SETB INT1 ;將INT1設為輸入端
;
MOV A,#00000000B
LOOP: MOV P1,A
ACALL DELAY
CPL A
AJMP LOOP
;
;
;
INT0_INT: PUSH A
PUSH PSW
CLR RS1
SETB RS0
MOV R2,#07
MOV A,#11111100B
LEFT: MOV P1,A
ACALL DELAY
RL A
DJNZ R2,LEFT
POP PSW
POP A
RETI
;
;
;
INT1_INT: PUSH A
PUSH PSW
SETB RS1
CLR RS0
MOV R2,#07
MOV A,#01111111B
RIGHT: MOV P1,A
ACALL DELAY
RR A
DJNZ R2,RIGHT
POP PSW
POP A
RETI
;
;
;
DELAY: MOV R0,#248
DEL1: MOV R1,#200
DEL2: DJNZ R1,DEL2
DJNZ R0,DEL1
RET
;
END

現在我的動作要求為
一個七段顯示器
利用外部中斷INT0,INT1
INT0中斷執行 1 -> 2 -> 3 ->.......-> 9 優先數較低
INT1中斷執行 9 -> 8 -> 7 ->.......-> 1 優先數較高
主程式中斷執行閃爍
因此必須將8個LED燈改為七段顯示器
但程式部分就不太清楚該如何改
試過一些方法及書籍都不得其解
因接觸不深效果有限
煩請高手能舉手之勞幫解
敝人也會繼續試試
多謝幫忙
gjo3x06nk4 目前離線  
送花文章: 258, 收花文章: 118 篇, 收花: 436 次
回覆時引用此帖
舊 2008-05-12, 12:33 PM   #2 (permalink)
協調管理員
 
飛鳥 的頭像
榮譽勳章
UID - 23073
在線等級: 級別:72 | 在線時長:5513小時 | 升級還需:108小時級別:72 | 在線時長:5513小時 | 升級還需:108小時
註冊日期: 2003-01-07
VIP期限: 無限期
住址: 史萊姆團隊
文章: 7199
精華: 11
現金: 837 金幣
資產: 260029 金幣
預設



那個七段顯示器,在電路上,要注意一下,如下圖所示
http://sun.cis.scu.edu.tw/~lab/knowledge/led04.jpg

正如上圖說的,七段共有8個接腳,(7個燈+1個共陽極或共陰)
一般是買共陽,對其他的腳輸入0就會亮,如果共陰,輸入1才會亮
電路如下圖(要記得加限流電阻):
http://sun.cis.scu.edu.tw/~lab/knowledge/led03.jpg

如果你要把P1接到7段顯示器
分別把
語法:
P1.0 - a
P1.1 - a
P1.2 - b
P1.3 - c
P1.4 - d
P1.5 - e
P1.6 - f
P1.7 - g
如果你要七段顯示器顯示0,那就是要a,b,c,d,e,f都要亮,所以,你要對P1輸出00000001B
MOV P1,#00000001B;

那要1的話,就是b,c都要亮,其他都是不亮,那你要對P1輸出10011111B
MOV P1,#10011111B;


其他的就看你自己啦
還有更進階的寫法,查表法,就可以用來跑迴圈
可以到GOOGLE找一下
8051+查表法

8051+DPTR

8051+間接定址
__________________
http://flybird017.googlepages.com/quok.gif http://flybird020.googlepages.com/new321.gif
寶貝你我的地球
, 請 少開電器,減少溫室氣體排放外,多種植植物,減少列印, 多用背面,丟棄時做垃圾分類。

http://netgames123.googlepages.com/tobikeways.jpg

飛鳥 目前離線  
送花文章: 11706, 收花文章: 3363 篇, 收花: 16453 次
回覆時引用此帖
有 2 位會員向 飛鳥 送花:
ben2ben2 (2008-05-15),gjo3x06nk4 (2008-05-13)
感謝您發表一篇好文章
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
有關公司網路的一些問題 rainforestezn 硬體疑難使用問題討論區 7 2004-08-24 05:58 PM
關於IncrediMail這軟体的一些問題??? edward920 軟體應用問題討論區 0 2004-05-03 01:56 PM
Windows 安裝新程式問題 kikiy 軟體應用問題討論區 2 2003-01-05 09:11 PM
請問華碩燒錄機的一些問題 zazoo 硬體疑難使用問題討論區 3 2002-12-31 10:50 PM


所有時間均為台北時間。現在的時間是 11:59 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1