日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年08月06日(星期三)

2021年08月06日 | 51單片機之輸入輸出

發(fā)布者:芳華逝水 來源: eefocus關鍵字:51單片機  輸入輸出 手機看文章 掃描二維碼
隨時隨地手機看文章

1. IO介紹

51單片機總的管腳有40個,但是其中能夠作為IO使用的只有32個,每8個分為一組,共4組。單片機要想實現(xiàn)預定功能必然要使用到各種IO口,來完成各項功能,包括點亮LED,連接按鍵、鍵盤,各種I2C、SPI設備等。51單片機,4組IO的結構略有不同,使用時應當注意。

p1

P0屬于雙向IO,內部沒有上拉電阻,作為輸出時,最好外加上拉電阻。

P1、P2、P3屬于準雙向IO?!皽省斌w現(xiàn)在輸入時,必須先輸出“1”,才能正確讀到IO的輸入情況。


P3口的各個IO均有復用功能:

image.png

2. IO編程

對于IO的操作無非是讀輸入和寫輸出,通過讀寫相應的寄存器(P0、P1、P2、P3)就可以實現(xiàn)。


2.1 字節(jié)尋址

字節(jié)尋址可以一次把8個IO全部訪問了,使用時把Px(x=0、1、2或3)當作無符號字符變量(unsigned char)即可。

image.png

2.2 位尋址

51單片機有一類特殊的變量——位變量(bit),可以用來保存“0”或者“1”。

為了讀寫某個IO,可以定義特殊位變量(sbit)指定某一個IO,再進行讀寫


#include "reg52.h"

sbit LED=P1^0;

bit temp;

void main()

{

temp=LED;//確保temp為位變量(bit)

LED=1;

LED=0;

LED=temp;

}


3.常用器件的驅動電路

3.1 LED

單片機能夠提供的電流有限,一般采用這種方式驅動LED:

LED

當P2^0=1是,LED兩端電壓差位0V,LED不發(fā)光。 當P2^0=1是,LED兩端存在電壓差,LED發(fā)光,串聯(lián)電阻的作用在于限流,阻值根據(jù)電源電壓和LED工作電流決定


3.2 數(shù)碼管。

數(shù)碼管本質是發(fā)光二極管按照一定位置排列的顯示數(shù)字的器件,可分為共陰極和共陽極兩類。按照數(shù)量可分為一位,兩位,四位甚至八位。

一位七段共陽極數(shù)碼管

seg_single

有的數(shù)碼管有八段,右下角會增加一個小數(shù)點。


當驅動兩位8段數(shù)碼管時,按上面的方式會占用16個IO,這種方式成為靜態(tài)顯示。靜態(tài)顯示可以控制每一個數(shù)碼管,但是會極大的占用IO資源,當數(shù)碼管數(shù)量較多時,這種方式明顯不適合。


與靜態(tài)相對應的是動態(tài)顯示。每一個數(shù)碼管顯示一段時間,然后在切換到下一個。根據(jù)人眼的視覺暫留效應,只要刷新的頻率超過24Hz,在人眼中就是連續(xù)的。把每一位數(shù)碼管的a,b,c,d,e,f,g,dp接在同一組IO上,再用另一組IO來控制具體顯示哪一個數(shù)碼管(公共端)。


下面四位共陰極數(shù)碼管示例,公共端用三極管做開關:

seg

數(shù)碼管顯示段碼如下


unsigned char code DUMA[]={ //共陰極顯示段碼,共陽極取反即可

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, //0-9

0x77,0x7c,0x39,0x5e,0x79,0x71 //a-f

};


3.3 按鍵

可以用這種最簡單的方式連接在IO上,為了保證能正確讀到輸入,先輸出“1”。如下圖,當按鍵按下,P1^0=0, 當按鍵松開,P1^0=1。

key

但實際上,由于開關接觸瞬間,電壓會產(chǎn)生不穩(wěn)定的跳變,稱為抖動,如下圖:

button

抖動的時間小于10ms,因此當我們檢測到電平變化是,延時10ms即可。


3.4 鍵盤

通過把按鍵組成4x4矩陣,可以使用8個IO連接16個按鍵。當按鍵數(shù)量較多時,采用這種方式可以大大節(jié)約IO資源。

p3

下面代碼是這種矩陣鍵盤的驅動,delay10ms()根據(jù)具體的情況定義。


#define key_port P2


//檢測按鍵的返回值,可以檢測多個按鍵,返回一個16位的unsigned int型變量,某一個按鍵按下,相應位置“1”

unsigned int KeyBoard_scan(void)

{

unsigned int ms=0,value=0;

key_port=0x0f;

while(key_port!=0x0f)

{

delay10ms();

if(key_port!=0x0f)

{

key_port=0x7f;

value |= (key_port^0x7f);

key_port=0xbf;

value |= (key_port^0xbf)<<4;

key_port=0xdf;

value |= (key_port^0xdf)<<8;

key_port=0xef;

value |= (key_port^0xef)<<12;

}

key_port=0x0f;

}

return value;

}

//檢測單個按鍵,value參數(shù)會寫回相應鍵值0-15,返回值表示按鍵按下的時間,ms計

unsigned int KeyBoard(unsigned char *value)

{

unsigned int ms=0;

key_port=0x0f;

if(key_port!=0x0f)

{

delay10ms();

if(key_port!=0x0f)

{

ms=10;

key_port=0X0f;

switch(key_port)

{

case(0X07): *value=0;break;

case(0X0b): *value=1;break;

case(0X0d): *value=2;break;

case(0X0e): *value=3;break;

default: *value=0xff;

}

key_port=0Xf0;

switch(key_port)

{

case(0X70): *value=*value;break;

case(0Xb0): *value=*value+4;break;

case(0Xd0): *value=*value+8;break;

case(0Xe0): *value=*value+12;break;

default: *value=0xff;

}

while((key_port!=0xf0))

{

delay_ms_keyboard(1);

ms++;

}

return ms;

}

else *value=0xff;

}

else *value=0xff;

return 0;

}


3.5 蜂鳴器

蜂鳴器分為有源蜂鳴器無源蜂鳴器兩種。

有源蜂鳴器用低電平就可以觸發(fā),發(fā)出的聲音頻率不會發(fā)生變化。

無源蜂鳴器需要用脈沖觸發(fā),脈沖的頻率決定了聲音的頻率。

無源蜂鳴器的驅動電路如下:

buzz

關鍵字:51單片機  輸入輸出 引用地址:51單片機之輸入輸出

上一篇:51單片機之最簡系統(tǒng)
下一篇:簡單計時器的51單片機實現(xiàn)

推薦閱讀

寬禁帶功率半導體的研發(fā)與應用日益受到重視,其中碳化硅(SiC)和氮化鎵(GaN)以高效的光電轉化能力、優(yōu)良的高頻功率特性、高溫性能穩(wěn)定和低能量損耗等優(yōu)勢,成為支撐信息、能源、交通、先進制造、國防等領域發(fā)展的重點新材料。推動中國寬禁帶功率半導體產(chǎn)業(yè),成為發(fā)展建設綠色節(jié)能社會與智能制造的關鍵一環(huán)。近日,由張家港市政府與中國寬禁帶功率半導體...
存算一體的芯片運算無需數(shù)據(jù)讀寫和數(shù)據(jù)搬運,可以突破瓶頸提高芯片效率。36氪獲悉,存算一體芯片設計公司「知存科技」宣布完成近億元人民幣的A輪融資,此輪融資中芯聚源領投,普華資本、招商局創(chuàng)投、三峽鑫泰、科訊創(chuàng)投、燕緣雄芯跟投。CEO王紹迪告訴36氪,此輪融資將主要用于完成芯片的量產(chǎn)工作。知存科技成立于2017年,主要研發(fā)NOR Flash存算一體AI芯片...
美國時間6月26日,特斯拉CEO馬斯克發(fā)推特懟貝索斯是“抄襲狗”,硅谷鋼鐵俠和世界首富的這般罵戰(zhàn)到底是為何?事情的起因,是亞馬遜宣布收購美國自動駕駛初創(chuàng)公司ZOOX,這也標志著市值千億的電商巨頭正式殺入自動駕駛賽道。近日,馬斯克這個diss專業(yè)戶在接受《紐約時報》的采訪中還暗示貝索斯年紀太大,藍色起源太慢無法實現(xiàn)登月的目標。馬斯克如此不依不饒...
三星將于 8 月 11 日晚正式發(fā)布全新的折疊屏手機 Galaxy Z Fold3 / Flip3。兩款手機的渲染圖、配置已經(jīng)正式曝光,有望搭載高通驍龍 888 Plus SoC,其中 Z Fold3 確認支持手寫筆、后置三攝?! ”M管手機尚未正式發(fā)布,但俄羅斯奢侈定制品牌 Caviar 今日正式推出了兩款手機的定制機型。其中,Galaxy Z Flip3 定制版搭載 419...

史海拾趣

問答坊 | AI 解惑

初學AVR,請教AVR studio gcc 優(yōu)化問題

我使用-Os優(yōu)化選項,發(fā)現(xiàn)編譯后程序沒法用。查看匯編代碼,發(fā)現(xiàn)delay函數(shù)被優(yōu)化沒了。生成的匯編代碼看起來很奇怪 如果不優(yōu)化程序是沒問題的。 請教是怎么回事?我該怎么辦? 下面是我的代碼: #include #define uchar unsigned char #defin ...…

查看全部問答∨

手機觸摸屏原理

手機觸摸屏原理…

查看全部問答∨

Wince開發(fā)的應用程序的運行會死掉?

Wince開發(fā)的應用程序的運行會死掉?先不管是什么原因引起的.死掉提示了線程 進程ID等信息,有沒有辦法確定錯誤的原因在哪里?高手指點下,學習下子?!?

查看全部問答∨

用vs 2005 c#如何為ppc注冊熱鍵

在pc中可以用RegisterHotKey,這個函數(shù)在ppc中也有,但是效果和pc中的好像不一樣。 不能實現(xiàn)在其他軟件中也能偵聽到這個熱鍵。 在pc中任何界面下都可以偵聽到用RegisterHotKey注冊的熱鍵。 但是在ppc中用RegisterHotKey注冊的熱鍵,比如點一下音 ...…

查看全部問答∨

關于2410顯示顏色問題

   2410的板子320X240的分辨率,是16bpp的,現(xiàn)在板子顯示顏色有問題,背景色是橘紅色,打開東西之后是黑色,請問是什么問題?改如何修改??…

查看全部問答∨

請問這有人用過codesourcery的開發(fā)平臺嗎

windows的或者linux上做過開發(fā)的都行 我們想買一套來開發(fā)BLDC電機控制程序。但是不清楚具體是否好使,現(xiàn)在評估軟件很不好使,編譯也因為license通不過 據(jù)說這家公司只有十幾個人,寫信去問想買軟件也沒人理我 昏倒啊…

查看全部問答∨

6502的c編譯器

6502的c編譯器?誰有,能給我一份嗎? mka982@163.com cc65?(這個我有,不好用) adc-65?(有這個嗎?) …

查看全部問答∨

19歲以色列高中生通過Greplin單挑Google

你想搜索那些Google搜不到的東西嗎?比如社交網(wǎng)站,以及那些存在云端、有密碼保護的個人信息。一名19歲的以色列高中生畢業(yè)生放棄了兵役,在 Y Combinator里呆了三個月,嘗試了幾個項目,并在最后的48小時內做出一個產(chǎn)品,最后受到了投資者的青睞。1 ...…

查看全部問答∨

基于FPGA技術的多路數(shù)字量采集模塊

測控系統(tǒng)常常需要處理所采集到的各種數(shù)字量信號。通常測控系統(tǒng)采用通用MCU完成系統(tǒng)任務。但當系統(tǒng)中采集信號量較多時,僅依靠MCU則難以完成系統(tǒng)任務。針對這一問題,提出一種基于FPGA技術的多路數(shù)字量采集模塊。利用FPGA的I/O端口數(shù)多且可編程設置 ...…

查看全部問答∨

【征文】電子學習歷程,一路走過

     話說我也是一個電子專業(yè)的學生,從動手焊接、調試板子到現(xiàn)在也有好幾年了,從最初的51單片機,下載器,avr單片機,到后來的ARM7,ARM,cortex M0,cortexM都有涉及。幾年過后養(yǎng)成了一個習慣,上網(wǎng)就會逛逛電子論壇,常常 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved