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 ...