將微控制器的P1口接數碼管,P3口接開關,要求數碼管顯示開關所置的二進位制的數

2021-03-22 08:08:45 字數 3467 閱讀 7553

1樓:修者世界

*** 0000h

ljmp main

*** 0030h

main:

mov dptr,#ledtab

mov a,p3

cjne a,#16,main1

main1:

jnc main

movc a,@a+dptr

mov p1,a

sjmp main

ledtab:

db 0c0h ;"0" 00h

db 0f9h ;"1" 01h

db 0a4h ;"2" 02h

db 0b0h ;"3" 03h

db 99h ;"4" 04h

db 92h ;"5" 05h

db 82h ;"6" 06h

db 0f8h ;"7" 07h

db 80h ;"8" 08h

db 90h ;"9" 09hend

2樓:匿名使用者

是proteus**吧

我是做微控制器開發的

微控制器數碼管動態顯示p3口輸出led位碼什麼意思

3樓:匿名使用者

位碼的意思的哪個數碼管,比如數碼管顯示12的話就先選擇第乙個數碼管然後傳送段碼1再關閉第乙個數碼管,接下來開啟第二個數碼管傳送段碼2後關閉第二個數碼管。動態顯示是兩個數碼管輪流著顯示,但由於這兩個數碼管變換的速度快於我們的視覺能辨別的最快速度,所以看起來是兩個都是一起顯示的。

微控制器,p0口接led共陽數碼管,p3.2k1口和p3.3k2口接開關。 20

4樓:匿名使用者

#include

sbit k1=p3^2;

sbit k2=p3^3;

bit glint; //閃爍標誌位

void delay()

main()

if(k1==0)

if(k2==0)}}

假設微控制器的p1口連線1個led數碼管,p3口連線4x4矩陣式鍵盤, 20

5樓:匿名使用者

這麼多要求只給5個財富值,我估計沒人會回答

51微控制器c語言,p1口讀取了8位二進位制數,要分個十百三位送去數碼管顯示。看語句

6樓:揮劍五號

不用,p1口讀取的是8位的2進製數,它存在變數aa中,aa用十進位制表示,也可以用16進製表示。可以直接運算。

89c51微控制器的p3口接乙個共陽極的數碼管

7樓:匿名使用者

//電路說明如下。

//微控制器:使用51系列相容的即可;

//4×4矩陣鍵盤:接在p1口;

//兩位數碼顯示器: p0口輸出七段碼,p2口輸出位選碼。

//c語言程式如下。

* 檔名: key_led.c

* 功能 : 對4×4矩陣鍵盤進行輸出,在數碼管後兩位顯示按鍵值。

#include

#include

#define uint unsigned int

#define uchar unsigned char

//uchar code table[10] = ;

uchar code table[10] = ;

* 名稱 : delay_1ms()

* 功能 : 延時子程式,延時時間為 1ms * x

* 輸入 : x (延時一毫秒的個數)

* 輸出 : 無

void delay_1ms(uint x)

* 名稱: keyscan()

* 功能: p1外接4×4按鍵, 按照掃瞄法讀出鍵值

* 輸出: 按鍵值0~15/如無鍵按下, 返回16

uchar keyscan(void)

; for(j = 0; j < 4; j++) }

return 16; //判斷結束,沒有鍵按下,返回16

} //呵呵,實質性的語句不過8行,就是這麼簡練!

* 名稱: display(uchar k)

* 功能: 將引數分成十位、個位分別顯示

* 輸入: k (鍵盤數值)

* 輸出: p0口輸出七段碼,p2口輸出位選碼

void display(uchar k)

* 名稱 : main()

* 功能 : 主函式

void main(void)

//---------以下是對按鍵的處理

display(key_value); //顯示鍵值} }

8樓:做而論道

呵呵,樓上的答案的電路、程式,可見:

微控制器p1接數碼管這樣可以嗎

9樓:追悔七年

可以這麼接,上電的話,把p0口全部輸出1,數碼管就全亮了.

10樓:匿名使用者

你圖中的數碼管應該是兩位的

所以不可以

左右gnd應該用微控制器控制

11樓:清風

可以啊,不過不知道你要實現什麼功能。。。

微控制器程式設計 撥4鍵置off,數碼管左移兩位顯示p; 撥6鍵置off,數碼管右移顯示h 用c語言

12樓:匿名使用者

^是「按」鍵?

sbit key4=p3^4; //你接哪?自己寫sbit key6=p3^6;

void main()}

at89s51微控制器的p1口接有1個7段led數碼管,初始顯示0。外部中斷輸入引腳into接有一

13樓:匿名使用者

p3.2的按鍵作為外部中斷了,實現計數功能,所以,那個延時子程式沒有用了。

關鍵問題是,凡是中斷程式中所用的變數,要定義為全域性變數。修改的程式如下。

#include

#define uint unsigned int#define uchar unsigned charuchar code seg=;//你0的段碼錯誤了uchar i=0; //凡是中斷程式用到的變數,一律定義為全域性變數,而且不用定義成 unsigned int 型的變數。

/*void delay()//延時子程式沒有用,注釋掉*/void main(void)

}void int0() interrupt 0 using 1**結果如下

14樓:匿名使用者

把變數i作為全域性變數

我微控制器設計裡驅動4位數碼管段選由P1口控制,位選通過74LS373驅動,請問他的原理,這裡373的作

這裡373不是做鎖存器copy用,純粹用來增加驅動bai電流,因為oe腳接高電du平,這樣 zhi373輸出完全和輸入一dao致。這樣做,是因為51的驅動能力弱,當作為數碼管位驅動時能力不夠,位電流是所有的段電流之和,比如顯示數字8時,是段電流的7倍。1 擴充套件io口 2 增大驅動能力 io口無法...

關於微控制器中C語言給P1口賦值問題

你這變成了直接給p1口上的所有燈賦值了,假如像你寫的p1口上有8個燈,執行你這語句以後,8個燈的狀態是01010101,直接都定好了,當然不是間隔,你要間隔的話要這樣 p1 0 1 delay 100 延時 p1 1 1 delay 100 延時 以此類推 c語言中好像不能直接用二進位制表示數吧 一...

典型51微控制器的P0,P1,P2,P3口都有哪些功能

墨汁諾 p0口第一個功能是資料介面,第二個功能是地址低八位,p2口第二個功能是地址高八位。另外除了p0口沒有內部上拉電阻外,其他三個都有內部上拉電阻。p1就沒多少功能,就是個準雙向i o口。最重要的就是p3口了,他除了是個準雙向i o口外,第二功能很重要 p3.0 rxd 序列資料接收端 p3.1 ...