自製轉速表 |
答題得分者是:㊣
|
addams01
一般會員 發表:3 回覆:5 積分:1 註冊:2005-12-12 發送簡訊給我 |
各位大大:
小弟想在89c2051(12MHz)中利用中斷(Int1)來當轉速表(0~9999 RPM), P1 接 4511(七段顯示器編碼器), P3 接 74138 (3 對 8 解多工器), P3.3(/Int1) 為輸入, 七段顯示器為共陰極, 程式的內容為發生發生中斷時, 高速的公式 RPM=60000000 / Timer1(mode1) (1us) 低速的公式 RPM=1500000 / TI_(HL) (25us) 但接上電路板後完全不會動作, 用 Keil Vision 組譯沒問題, 但在 debug 時,每次只要有 MOV P3,A 這行程式時就會亂跳, 能煩請各位大大幫忙看一下程式是否有錯誤呢? 如有描述不齊全的地方還請告知小弟,感激不盡啊! |
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
程式有 2 個 bug..
1> 程式碼請從 org 30H, 或 org 50H 以後開始寫 2> P3.3 你已經設為外部中斷腳, 現在又把 A 值搬到 P3? 自己中斷自己 ? 當然會亂跳..... ===================引 用 文 章=================== 各位大大: 小弟想在89c2051(12MHz)中利用中斷(Int1)來當轉速表(0~9999 RPM), P1 接 4511(七段顯示器編碼器), P3 接 74138 (3 對 8 解多工器), P3.3(/Int1) 為輸入, 七段顯示器為共陰極, 程式的內容為發生發生中斷時, 高速的公式 RPM=60000000 / Timer1(mode1) (1us) 低速的公式 RPM=1500000 / TI_(HL) (25us) 但接上電路板後完全不會動作, 用 Keil Vision 組譯沒問題, 但在 debug 時,每次只要有 MOV?? P3,A 這行程式時就會亂跳, 能煩請各位大大幫忙看一下程式是否有錯誤呢? 如有描述不齊全的地方還請告知小弟,感激不盡啊!
------
------------------------------------------------------------------------- 走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!? |
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
|
addams01
一般會員 發表:3 回覆:5 積分:1 註冊:2005-12-12 發送簡訊給我 |
先感謝正大願意撥空幫小弟看一下程式,甘溫啊~~~
但小弟仍有些小問題哩! Q1 : 請問一下,為何程式要從 org 30h 或 org 50h 開始呢? 因為書上寫的都是從 00h 開始,不知道這麼作有何用意呢? Q2 : 小弟的程式稍做修改後,目前用 Keil 模擬起來似乎正常, 但中斷時(Int1,用模擬的)會跳入無窮迴圈( Timer0 會動作,但是不會發生中斷), 不知道這個問題有可能是哪的地方發生的呢? 程式看了好幾天還不如您正大的一句提點哩!!再次感謝您囉!!! ===================引 用 文 章=================== 程式有 2 個 bug.. 1> 程式碼請從 org 30H, 或 org 50H 以後開始寫 2> P3.3 你已經設為外部中斷腳, 現在又把 A 值搬到 P3? 自己中斷自己 ? 當然會亂跳..... |
addams01
一般會員 發表:3 回覆:5 積分:1 註冊:2005-12-12 發送簡訊給我 |
小弟的計畫如下:
因觸發信號是從 Int1 來的,如果 Int1 觸發時會啟動/關閉 TR1 如果是關閉的話,就沒有您的問題了, 如果 TR1 是開啟的,那 Timer1 (1us)會開始計時,同時 TI_H 及 TI_L 也會開始計數(次/25us) 而系統每 1ms 要做一次掃描,同時偵測 TI_H 及 TI_L 是否溢位, 如果溢位的話就關閉 TR1,並清除 Timer1, TI_H,TI_L,RPM_H,RPM_L, 以便等待下次的中斷到來。 不知道這樣子的想法有沒有錯誤呢? 小弟剛有試了一下(程式已修改完成),如果強制命令 TR1 動作的話, 再經過 1.6xxx 秒後會自動清除所有累積的數值並將 TR1 及 TF1 關閉, 顧在下一次掃描時數字會自動變成 0000 但目前為止中斷的輸入還是有些問題,結至目前小弟仍在思考中,方便的話也請正大幫我是看看吧! p.s 多謝正大的提醒,小弟倒是忽略了這點,目前已修正完畢! ===================引 用 文 章=================== 還有.....請問一下喔.... 若上一次轉速顯示為 10 rpm .....之後就無任何中斷進來(即轉速為0) 那你的轉速表是會顯示 0? 10? or?? |
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
Q1> 30h 避開所有中斷向量位址與特殊位置. 50h 留空間定義變數.
由00H開始寫的程式 你可以注意一下, 應該都沒有使用到中斷& R0~R7 Q2> 不知道你改了那裡....SO 不知道問題. 俺不是神 =.= ===================引 用 文 章=================== 先感謝正大願意撥空幫小弟看一下程式,甘溫啊~~~ 但小弟仍有些小問題哩! Q1 : 請問一下,為何程式要從 org 30h 或 org 50h 開始呢? ??????? 因為書上寫的都是從 00h 開始,不知道這麼作有何用意呢? Q2 : 小弟的程式稍做修改後,目前用 Keil 模擬起來似乎正常, ??????? 但中斷時(Int1,用模擬的)會跳入無窮迴圈( Timer0 會動作,但是不會發生中斷), ??????? 不知道這個問題有可能是哪的地方發生的呢? 程式看了好幾天還不如您正大的一句提點哩!!再次感謝您囉!!!
------
------------------------------------------------------------------------- 走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!? |
addams01
一般會員 發表:3 回覆:5 積分:1 註冊:2005-12-12 發送簡訊給我 |
1. 那請問一下,如果我程式要從 30H 開始,該怎麼做呢?書上好像沒有看到類似的範例耶??
2. 檔案我不知道該怎麼在次上傳哩!找不到上傳檔案的按鈕~~~@@ 3. 今天早上經程式燒進 89c2051 測試,一送電四個數字有亮,但是數字顯是為 4080....怪了..... 另外,發生中斷時所有數字全暗,似乎已經跳入無窮迴圈了....可是用 Keil 又看不到這個問題哩~~~ ===================引 用 文 章=================== Q1> 30h 避開所有中斷向量位址與特殊位置. 50h 留空間定義變數. 由00H開始寫的程式 你可以注意一下, 應該都沒有使用到中斷& R0~R7 Q2> 不知道你改了那裡....SO 不知道問題. 俺不是神 =.= |
harrypp
中階會員 發表:7 回覆:124 積分:61 註冊:2006-08-31 發送簡訊給我 |
CSEG AT 000H
LJMP startprog ..... ..... CSEG AT 030H startprog: ..... ..... ===================引 用 文 章=================== 1. 那請問一下,如果我程式要從 30H 開始,該怎麼做呢?書上好像沒有看到類似的範例耶?? 2. 檔案我不知道該怎麼在次上傳哩!找不到上傳檔案的按鈕~~~@@ 3. 今天早上經程式燒進 89c2051 測試,一送電四個數字有亮,但是數字顯是為 4080....怪了..... 另外,發生中斷時所有數字全暗,似乎已經跳入無窮迴圈了....可是用 Keil 又看不到這個問題哩~~~ ===================引 用 文 章=================== Q1> 30h 避開所有中斷向量位址與特殊位置. 50h 留空間定義變數. 由00H開始寫的程式 你可以注意一下, 應該都沒有使用到中斷& R0~R7 Q2> 不知道你改了那裡....SO 不知道問題. 俺不是神 =.= |
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
1> org 00H
jmp start
org 30H
start:
........ 2> 修改第一個發問留言, 看能不能更新附加檔吧 3> 編譯程式只能幫你找出語法錯誤. 邏輯錯誤要自己找. SO 還是實際做實驗驗證看看吧.
你這樣的寫法問題會比較多, 也不好查. 先確定你的計速程式以及Hex2Dec 正確吧. 如果是我, 我會把它分開. 計速程式歸計速程式, 中斷只負責計算並更新欲顯示的數值.
scan 一直定時在做, 只負責顯示數值.不須中斷. 考慮人類視覺暫留用 delay 就可以了 ===================引 用 文 章===================
1. 那請問一下,如果我程式要從 30H 開始,該怎麼做呢?書上好像沒有看到類似的範例耶??
2. 檔案我不知道該怎麼在次上傳哩!找不到上傳檔案的按鈕~~~@@
3. 今天早上經程式燒進 89c2051 測試,一送電四個數字有亮,但是數字顯是為 4080....怪了.....
???? 另外,發生中斷時所有數字全暗,似乎已經跳入無窮迴圈了....可是用 Keil 又看不到這個問題哩~~~
------
------------------------------------------------------------------------- 走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |