1樓:硬體開發
按鍵一般是上拉,微控制器的io通過電阻上拉高電平,按鍵正常高電平當按鍵按下短路,把io變成低電平,微控制器檢測到低電平表示有按鍵按下,按鍵下拉一般是把微控制器io通電阻接到gnd,按鍵正常是低電平,當按鍵按下把io拉高,微控制器檢測到高電平表示有按鍵按下。
2樓:一見投緣
一個是檢測到高電平時為輸入即按鍵按下(內部設定輸出0),一個是檢測到低電平(內部設定為輸出1)是為有訊號輸入(按鍵按下)。
3樓:匿名使用者
第一,上拉就是通個一個電阻接電源,尤其是對於oc和od輸出的io口,比如51的p0口。
第二,下拉則是通過電阻接地;一般是保證io的初始狀態。
一般用電阻4.7以上即可,推薦使用10k,這樣上拉的電流會小一些。
對於這裡要的上拉按鍵接法,io口出來接電阻和按鍵,電阻另一端接5v(上拉),按鍵另一端接地。當按鍵未按下是io為高電平,按鍵按下時為低電平。
4樓:匿名使用者
51微控制器除p0外,其餘io埠有內部上拉,這時 外部上拉電阻可以省去。
對於下拉輸入,因其內部上拉電阻約10k,為保證未按下時為低電平,下拉電阻阻值在1k左右。
5樓:匿名使用者
年輕人,別解釋了,洗洗睡吧
為51微控制器設計一個上拉輸入的按鍵電路並分析其工作原理
6樓:匿名使用者
上拉電阻是i/o口平時保持高電平
按鍵按下後,i/o口轉為低電平;
軟體掃描到變換後,需要延時除顫抖,就可確定按鍵的狀態了。
7樓:做而論道
在按鍵和微控制器之間,加上一個反相器即可。
設計一個微控制器輸入顯示系統,要求每按一下按鍵數碼管顯示資料加1(數碼管初始值為0,9加1 後顯示0)。
8樓:沈偉棟
程式清單如下:
#include < reg51.h >// 51微控制器標頭檔案
#define uchar unsigned char // 巨集定義
,用uchar替代無符號字元型
#define uint unsigned int // 巨集定義,用uint 替代無符號整數型
sbit key = p2 ^ 7;
uchar count = 0;
uchar code datachar[10] = // 定義數碼管的段碼 '0'~'9'、'-'、' ' 'p'
;//延時n毫秒
void delaynms( uint n ) // 利用x、y作簡單的自減運算,消耗微控制器指令週期,達到延時的目的
//數碼管顯示 // 顯示方式為動態掃描,視覺暫留原理
void display( uchar num ) // *p指向main函式中的陣列shownum的首地址
void main( void )
while( !key );
}display( count );}}
擴充套件資料
8051微控制器具有如下功能:
8位cpu·4kbytes程式儲存器(rom) (52為8k)
128bytes的資料儲存器(ram) (52有256bytes的ram)
32條i/o口線·111條指令,大部分為單位元組指令
21個專用暫存器
2個可程式設計定時/計數器·5箇中斷源,2個優先順序(52有6個)
一個全雙工序列通訊口
外部資料儲存器定址空間為64kb
外部程式儲存器定址空間為64kb
邏輯操作位定址功能·雙列直插40pindip封裝
單一+5v電源供電
cpu:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能暫存器;
ram:用以存放可以讀寫的資料,如運算的中間結果、最終結果以及欲顯示的資料;
rom:用以存放程式、一些原始資料和**;
i/o口:四個8位並行i/o口,既可用作輸入,也可用作輸出
t/c:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;
五個中斷源的中斷控制系統;
一個全雙工uart(通用非同步接收傳送器)的序列i/o口,用於實現微控制器之間或微控制器與微機之間的序列通訊;
片內振盪器和時鐘產生電路,石英晶體和微調電容需要外接。最佳振盪頻率為6m—12m。
9樓:匿名使用者
#include < reg52.h > // 嵌入51微控制器標頭檔案
#define uchar unsigned char // 巨集定義,用uchar替代無符號字元型
#define uint unsigned int // 巨集定義,用uint 替代無符號整數型
sbit key = p2 ^ 7;
uchar count = 0;
uchar code datachar[10] = // 定義數碼管的段碼 '0'~'9'、'-'、' ' 'p'
;//延時n毫秒
void delaynms( uint n ) // 利用x、y作簡單的自減運算,消耗微控制器指令週期,達到延時的目的
//數碼管顯示 // 顯示方式為動態掃描,視覺暫留原理
void display( uchar num ) // *p指向main函式中的陣列shownum的首地址
void main( void )
while( !key );
}display( count ); }}
51微控制器跑馬燈程式,51微控制器設計跑馬燈的程式用(c語言)編寫
不好意思,延時用了樓上的。keil下編譯ok。假設p1接燈。org 00h sjmp start org 30h start mov a 00 setb c mov r0,9 從左到右 loop1 rlc a mov p1,a acall delay djnz r0,loop1 從右到左 mov r...
利用51微控制器設計秒錶一定要按要求做到0 01秒)
做而論道 最低位,是0.01s 變化一次,一秒鐘,變化 100 次。這麼快,人的眼睛,分辨不出來。只能看到一個 8。停止時,才能看到穩定的數字。程式如下 include sbit p3 5 p3 5 unsigned char counet,m 4 void display unsigned cha...
利用AT89C51微控制器設計簡易電子鐘(六位),通過8位LED數碼管實現時間顯示系統可以通過按鍵實現時間
這個做起來也辛苦的好吧?我這正好有一份可以改改,這個分也太對不起勞動力了。人民幣10元還差不多。利用at89c51微控制器設計簡易電子鐘 六位 通過8位led數碼管實現時間顯 你好!需要用時鐘晶片嗎?數碼管是怎麼驅動的 我曾經做過,單單程式設計這一項就麻煩死了.還不如去網購買現成的,整套都有的賣.做...