請微控制器高手看一下程式哪裡出錯

時間 2025-06-15 02:30:15

1樓:生活營口

是程式問題嗎 故障現象是什麼。

有大佬幫我看看這個微控制器**錯哪兒了嗎?

2樓:網友

你這個微控制器**的主程式中,顯示程式顯示8位後,不應該有大括號,要刪掉。

因為這樣,下面的按鍵程式不在主迴圈 while(1) 之內,所以,不會執行的,執行時,按鍵就無效了。在最後就要加乙個大括號,才能保證大括號配對。

微控制器程式出錯

3樓:網友

1、檢測數碼管「位」引腳是否有短路:

先讓「位」值只有一位有效,看看有幾位數碼管亮,只有一位亮說明沒有短路。

2、檢測程式對數碼管「位」的操作指令是否正確:

將之前「只讓一位亮」時的「位值」與源程式對比,看看是否一致。

3、檢測程式對「每位點亮的時間」設定是否合理。

太短,閃爍不清;太長,單個交替顯示。

4、推測:如果數碼管能正常顯示數字,一般不太像是損壞了,所以很可能是程式不合適。

比如,把共陽(陰)當成共陰(陽)了,或者,數碼管與微控制器之間存在驅動電路,使得點評邏輯翻轉了。

另外,程式中可以在位值變換前先將段值口清零,這樣能減少殘影干擾。

5、按上述方法排查,應該能解決問題,如果不行還可以私信聯絡。

微控制器大神來解決一下吧

4樓:匿名使用者

不同的微控制器,其時序不同,因此一秒的間隔要用不同的**去實現。

根據微控制器使用的晶振來算出主頻,然後寫出相應的delay函式。這個是最基本的。

然後就是迴圈檢查按鍵訊號,做相應的動作。

顯示數值這裡要做轉換,數碼管每一位是是由7個二極體(加上小數點就是8個)構成,使用乙個位元組來控制的,比如0x06顯示的就是1,這要做乙個對照表。

要顯示什麼數字,將它對應的8個孫尺位向數碼管相應的io口寫入就是了。

幾個按鍵的動作就是乙個簡單的分支語句,也就是讀相應鍵盤io的值來判斷。

主要就是搞清楚各部分的姿喊**執行需要多少個時鐘週期,然後delay後讓各分支用時一致跡凱野,並且是1秒的整分數(比如1/2秒,1/5秒,1/10秒之類),整秒就重新從ds12c887讀時間。

至於最開始的寫入時間,因為這個晶元有兩種工作模式,你也得自己弄,區別不大,都是通過15腳的電平來決定是讀還是寫。

請各位高手回答一下下面的微控制器程式問題!謝謝

可軒 若晶振頻率fosc 12mhz,機器週期 12 fosc 12 12x10 6hz 1 s 執行 djnz rn,rel 指令耗用2個機器週期,即2 s 該段程式執行該類指令總次數 250x200x10 500000 耗用時間 500000x2 s 10 6 s 1s 若改為延時0.1 第三行...

求微控制器高手幫我逐句解釋一下這個程式謝謝了

include 字頭,表示如果涉及到的函式從這兩個字尾名.h的檔案裡呼叫。include define uchar unsigned char 方便定義函式無符號型應該用uchar表示為方便直接用char表示了。define uint unsigned int 整形同上解釋 sbit clock p...

求助高手幫我翻譯一下微控制器方面的問題

英語晶元資料裡有。一些關於微控制器的問題,求高手解答 訪問外部 ram 單元可以採用哪些定址方式?暫存器間接定址。暫存器可用 dptr r r。指令格式 movx a,dptr movx dptr,a movx a,ri movx ri,a 訪問外部程式儲存器可以採用哪些定址方式?變址定址。指令格式有...