單片機原理與應(yīng)用(C51編程+Proteus仿真) 課件 劉霞 第3、4章 單片機輸出顯示控制、單片機輸入檢測_第1頁
單片機原理與應(yīng)用(C51編程+Proteus仿真) 課件 劉霞 第3、4章 單片機輸出顯示控制、單片機輸入檢測_第2頁
單片機原理與應(yīng)用(C51編程+Proteus仿真) 課件 劉霞 第3、4章 單片機輸出顯示控制、單片機輸入檢測_第3頁
單片機原理與應(yīng)用(C51編程+Proteus仿真) 課件 劉霞 第3、4章 單片機輸出顯示控制、單片機輸入檢測_第4頁
單片機原理與應(yīng)用(C51編程+Proteus仿真) 課件 劉霞 第3、4章 單片機輸出顯示控制、單片機輸入檢測_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

單片機輸出顯示控制03介紹單片機與常用的發(fā)光二極管、數(shù)碼管、LED點陣顯示屏、LCD液晶顯示器的接口設(shè)計與軟件編程。3單片機輸出顯示控制01單片機并行I/O端口的內(nèi)部結(jié)構(gòu)0203單片機控制數(shù)碼管單片機控制發(fā)光二極管0405單片機控制液晶顯示器LCD單片機控制LED點陣顯示3.1單片機并行I/O端口的內(nèi)部結(jié)構(gòu)G1G20結(jié)論:P0口作為輸出口使用,需需外接上拉電阻,一般為4.7KΩ或10KΩ1P0做通用輸入輸出口使用P0做輸出口使用一、P0口3.1單片機并行I/O端口的內(nèi)部結(jié)構(gòu)一、P0口+5VG1G201P0做通用輸入輸出口使用結(jié)論:P0口作為輸入口使用,需先寫“1”P0做輸入口使用準(zhǔn)雙向口:高電平、低電平3.1單片機并行I/O端口的內(nèi)部結(jié)構(gòu)G1G212P0做數(shù)據(jù)/地址總線使用一、P0口P0口地址總線低8位P0做地址總線輸出使用控制線13.1單片機并行I/O端口的內(nèi)部結(jié)構(gòu)一、P0口G1G20P0做數(shù)據(jù)線輸入使用2P0做數(shù)據(jù)/地址總線使用結(jié)論:P0口地址總線低8位P0口數(shù)據(jù)總線(8位)控制線0此時不能作為通用的I/O端口CPU寫入1,下方場效應(yīng)管截止上方場效應(yīng)管截止高阻狀態(tài)雙向口:高電平、低電平、高阻3.1單片機并行I/O端口的內(nèi)部結(jié)構(gòu)二、P1口P1口做通用輸入輸出口使用結(jié)論:讀鎖存器內(nèi)部總線讀引腳DCLQ鎖存器P1.XVccP1作為輸入口使用,需先寫“1”P1作為輸出口使用,無需外接上拉電阻3.1單片機并行I/O端口的內(nèi)部結(jié)構(gòu)結(jié)論:1P2做通用輸入輸出口使用三、P2口DCLQ.鎖存器MUXP2.x地址控制讀鎖存器內(nèi)部總線讀引腳VccP2作為輸入口使用,需先寫“1”P2作為輸出口使用,無需外接上拉電阻3.1單片機并行I/O端口的內(nèi)部結(jié)構(gòu)結(jié)論:2P2做地址總線使用三、P2口DCLQ.鎖存器MUXP2.x地址控制讀鎖存器內(nèi)部總線讀引腳VccP2口作為地址總線高8位,與P0口構(gòu)成16位地址,尋址64KB地址空間P2做地址總線使用,就不能再做普通I/O口使用3.1單片機并行I/O端口的內(nèi)部結(jié)構(gòu)結(jié)論:1P3做通用輸入輸出口使用四、P3口P3作為輸入口使用,需先寫“1”P3作為輸出口使用,無需外接上拉電阻讀鎖存器內(nèi)部總線讀引腳DCLQ鎖存器P3.x第二功能輸出端第二功能輸入端Vcc13.1單片機并行I/O端口的內(nèi)部結(jié)構(gòu)P3第二功能四、P3口讀鎖存器內(nèi)部總線讀引腳DCLQ鎖存器P3.x第二功能輸出端第二功能輸入端Vcc21

第二輸出功能

D鎖存自動置13.1單片機并行I/O端口的內(nèi)部結(jié)構(gòu)P3第二功能四、P3口讀鎖存器內(nèi)部總線讀引腳DCLQ鎖存器P3.x第二功能輸出端第二功能輸入端Vcc21

第二輸入功能

D鎖存自動置1P3口第一功能與第二功能,究竟是使用哪個功能,完全是由單片機執(zhí)行的指令控制來自動切換的,用戶不需要進(jìn)行任何設(shè)置。

第二功能輸出端自動置113.1單片機并行I/O端口的內(nèi)部結(jié)構(gòu)1P0:通用I/O使用,每位可驅(qū)動8個LSTTL五、I/O驅(qū)動能力P0口的某位輸出高電平時,可提供400μA的拉電流P0口某位為低電平(0.45V)時,可提供3.2mA的灌電流2P1~P3:通用I/O使用,每位可驅(qū)動4個LSTTL輸出高電平,則輸出的拉電流僅為數(shù)百微安輸出低電平,灌電流從單片機外部流入內(nèi)部,則將大大增加流過的灌電流值單片機任何一個端口要想獲得較大的驅(qū)動能力,要采用低電平輸出3單片機I/O口驅(qū)動能力不夠,要外接驅(qū)動電路4三極管、ULN2003、L298N、L9110等驅(qū)動芯片3.1單片機并行I/O端口的內(nèi)部結(jié)構(gòu)P0口~P3口使用方法總結(jié)P0~P3作為通用I/O口時,為準(zhǔn)雙向口,只有高電平和低電平2個狀態(tài);P0~P3作為輸入口使用時,要先向端口寫“1”;123P0作為輸出口使用時,漏極開路,要外接上拉電阻(1KΩ~10KΩ);45P1~P3作為輸出口使用時,內(nèi)部有上拉電阻,不用外接上拉電阻;67并行總線構(gòu)成:P2口(高8位)和P0口(低8位)構(gòu)成16位地址總線;P0口數(shù)據(jù)總線,P0在ALE引腳控制下分時復(fù)用。P0~P3只要作為第二功能使用,就不能再做通用I/O使用了。P0~P3的第一功能和第二功能,由單片機執(zhí)行的指令控制自動切換,用戶不需要進(jìn)行任何設(shè)置。3單片機輸出顯示控制01單片機并行I/O端口的內(nèi)部結(jié)構(gòu)0203單片機控制數(shù)碼管單片機控制發(fā)光二極管0405單片機控制液晶顯示器LCD單片機控制LED點陣顯示3.2單片機控制發(fā)光二極管一、發(fā)光二極管簡介圖1直插式LED圖2貼片式LED圖4LED驅(qū)動電路圖3LED符號正向?qū)妷菏?.7~2.2V;限流電阻阻值可選150Ω~3kΩ之間電流越大,燒壞的速度也就越快。在設(shè)計時需加限流電阻工作電流一般在1~20mA。!3.2單片機控制發(fā)光二極管二、單片機與LED的連接圖6單片機P1~P3口與LED的連接圖5單片機P0口與LED的連接上拉電阻:1~10kΩ之間選取。(a)LED亮單片機上電后現(xiàn)象(a)(b)(c)(d)(b)LED不亮限流電阻:150Ω~3kΩ之間P1~P3口如何連接LED??3.2單片機控制發(fā)光二極管三、點亮一個發(fā)光二極管仿真實例任務(wù)要求:控制1個發(fā)光二極管點亮。圖7P0口與LED連接圖8P1口與LED連接1硬件電路設(shè)計3.2單片機控制發(fā)光二極管三、點亮一個發(fā)光二極管仿真實例任務(wù)要求:控制1個發(fā)光二極管點亮。2軟件設(shè)計#include<reg52.h>sbitLED=P0^0;voidmain(){

while(1)

{

LED=0;

}

}#include<reg52.h>sbitLED=P0^0;voidmain(){

LED=0;while(1){

;}}分析這2段代程序的運行過程。3.2單片機控制發(fā)光二極管三、點亮一個發(fā)光二極管仿真實例任務(wù)要求:控制1個發(fā)光二極管點亮。3仿真運行圖9KeilC軟件編譯結(jié)果圖10點亮LED運行效果圖3.2單片機控制發(fā)光二極管三、點亮一個發(fā)光二極管仿真實例擴(kuò)展任務(wù)要求:控制1個發(fā)光二極管閃爍。#include<reg52.h>#defineucharunsignedsbitLED=P0^0;voidmain() { while(1){uinti,j;

LED=0;

for(i=0;i<247;i++)for(j=0;j<100;j++);

LED=1;

for(i=0;i<247;i++)for(j=0;j<100;j++);

}}3.2單片機控制發(fā)光二極管三、點亮一個發(fā)光二極管仿真實例表1C

51延時程序設(shè)計方法序號設(shè)計方法例句說明1for循環(huán)結(jié)構(gòu)for(i=0;i<100;i++);不精確定時2while循環(huán)結(jié)構(gòu)i=250;while(i--);不精確定時3定時器定時TMOD=0x01;TH0=0xee;TL0=0x00;TR0=1精確定時4庫函數(shù)_nop_();//一個機器周期的時間精確定時voiddelay(uintxms)//ms延時函數(shù){uinti,j;for(i=0;i<xms;i++)for(j=0;j<120;j++);}不帶參數(shù)延時函數(shù)的寫法voiddelay()//200ms延時函數(shù){uinti,j;for(i=0;i<247;i++)for(j=0;j<100;j++);}12帶參數(shù)延時函數(shù)的寫法和調(diào)用擴(kuò)展任務(wù)要求:控制1個發(fā)光二極管閃爍。#include<reg52.h>#defineuintunsignedintsbitLED=P0^0;voidmain() { while(1){uinti,j;

LED=0;

for(i=0;i<247;i++)for(j=0;j<100;j++);

LED=1;

for(i=0;i<247;i++)for(j=0;j<100;j++);

}}用延時函數(shù)改寫這段程序?voiddelay(uintxms){uinti,j;for(i=0;i<xms;i++)for(j=0;j<120;j++);}#include<reg52.h>#defineuintunsignedintsbitLED=P0^0;voiddelay(uintxms){uinti,j;for(i=0;i<xms;i++)for(j=0;j<120;j++);}void

main() { while(1){LED=0;

delay(200);

LED=1;

delay(200);

}}#include<reg52.h>#defineuintunsignedintsbitLED=P0^0;voiddelay(uintxms);void

main() { while(1){LED=0;

delay(200);

LED=1;

delay(200);

}}voiddelay(uintxms){uinti,j;for(i=0;i<xms;i++)for(j=0;j<120;j++);}3.2單片機控制發(fā)光二極管四、流水燈仿真實例任務(wù)要求:控制8個發(fā)光二極管按照一定的時間間隔依次輪流點亮。1硬件電路設(shè)計代碼是否需要寫8次特殊功能位定義語句?3.2單片機控制發(fā)光二極管四、流水燈仿真實例任務(wù)要求:控制8個發(fā)光二極管按照一定的時間間隔依次輪流點亮。2軟件設(shè)計狀態(tài)P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0編碼1111111100xfe2111111010xfd3111110110xfb4111101110xf75111011110xef6110111110xdf7101111110xbf8011111110x7f表2流水燈的引腳電平狀態(tài)移位(左移或右移)賦值數(shù)組:循環(huán)賦值C51邏輯運算:循環(huán)左移_crol_intrins.h庫函數(shù):左移“<<”右移“>>”循環(huán)右移_cror_依次賦值3.2單片機控制發(fā)光二極管四、流水燈仿真實例C51邏輯運算:循環(huán)左移_crol_intrins.h庫函數(shù):左移“<<”右移“>>”循環(huán)右移_cror_3.2單片機控制發(fā)光二極管四、流水燈仿真實例任務(wù)要求:控制8個發(fā)光二極管按照一定的時間間隔依次輪流點亮。2軟件設(shè)計(1)基于庫函數(shù)的流水燈程序設(shè)計#include<reg52.h>#include<intrins.h>

#defineucharunsignedchar#defineuintunsignedint voiddelayms(uinti);voidmain() { P2=0xfe;while(1){delay(500);

P2=_crol_(P2,1);}}#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint voiddelay(uinti);voidmain() { while(1){uchari,temp=0x01

;

for(i=0;i<8;i++){P2=~temp;

temp=temp<<1;

delay(500);}}}(2)基于邏輯運算符的流水燈程序設(shè)計3.2單片機控制發(fā)光二極管四、流水燈仿真實例任務(wù)要求:控制8個發(fā)光二極管按照一定的時間間隔依次輪流點亮。2軟件設(shè)計(3)基于數(shù)組的流水燈程序設(shè)計#include<reg52.h>#defineucharunsignedchar #defineuintunsignedint ucharcodetab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};voiddelayms(uinti);

voidmain() { while(1){uchari;for(i=0;i<8;i++){

P2=tab[i];delayms(500);} }}3單片機輸出顯示控制01單片機并行I/O端口的內(nèi)部結(jié)構(gòu)0203單片機控制數(shù)碼管單片機控制發(fā)光二極管0405單片機控制液晶顯示器LCD單片機控制LED點陣顯示3.3單片機控制數(shù)碼管一、單個數(shù)碼管的顯示原理共陽極數(shù)碼管陽極連在一起LED點亮條件COM端接地段碼端給高電平LED點亮條件共陰極數(shù)碼管陰極連在一起圖1數(shù)碼管外形圖1數(shù)碼管引腳

(a)共陰極(b)共陽極COM端高電平段碼端給低電平3.3單片機控制數(shù)碼管七段共陽極數(shù)碼管段碼表數(shù)字dpgfedcba段碼abcdefgdp0110000000xC01111110010xF92101001000xA43101100000xB04100110010x995100100100x926100000100x827111110000xF88100000000x809100100000x90A100010000x88b100000110x83C110001100xC6d101000010xA1E100001100x86F100011100x8Eunsignedcharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共陽0-F3.3單片機控制數(shù)碼管顯示字符共陰極段碼共陽極段碼顯示字符共陰極段碼共陽極段碼00x3F0xC080x7F0x8010x060xF990x6F0x9020x5B0xA4A0x770x8830x4F0xB0b0x7C0x8340x660x99C0x390xC650x6D0x92d0x5E0XA160x7D0x82E0x790x8670x070xF8F0x710x8E表3-5共陰、共陽數(shù)碼管的段碼表3.3單片機控制數(shù)碼管二、一位數(shù)碼管顯示仿真實例任務(wù)要求:在1位共陽極數(shù)碼管上循環(huán)顯示“0~F”。1硬件電路設(shè)計3.3單片機控制數(shù)碼管二、一位數(shù)碼管顯示仿真實例任務(wù)要求:在1位共陽極數(shù)碼管上循環(huán)顯示“0~F”。2軟件設(shè)計共陽極數(shù)碼管“0~F”的段碼1234ucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};數(shù)碼管顯示“0~F”中的一個P2=seg[i]構(gòu)成16次循環(huán):for語句字符之間要加一定的延時delay函數(shù)分析3.3單片機控制數(shù)碼管二、一位數(shù)碼管顯示仿真實例任務(wù)要求:在1位共陽極數(shù)碼管上循環(huán)顯示“0~F”。2軟件設(shè)計共陽極數(shù)碼管“0~F”的段碼1234ucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};數(shù)碼管顯示“0~F”中的一個P2=seg[i]構(gòu)成16次循環(huán):for語句字符之間要加一定的延時delay函數(shù)分析#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};voiddelay(uintxms);voidmain(){while(1){uchari;

for(i=0;i<16;i++){P2=seg[i];

delay(500);}}} 3.3單片機控制數(shù)碼管三、多個數(shù)碼管的顯示原理單個數(shù)碼管和單片機連接方法:多個數(shù)碼管和單片機如何連接?公共端接地或高電平段碼端與一個I/O口相連3.3單片機控制數(shù)碼管三、多個數(shù)碼管的顯示原理01靜態(tài)顯示方式02動態(tài)顯示方式公共端都連接在一起段碼端分別與一個I/O口相連公共端分別與一個I/O引腳相連段碼端都與一個I/O口相連同時顯示,無閃爍依次顯示,有閃爍3.3單片機控制數(shù)碼管四、兩位數(shù)碼管靜態(tài)顯示仿真實例任務(wù)要求:在2位共陽數(shù)碼管采用靜態(tài)顯示方式顯示25。1硬件電路設(shè)計Seg1段碼端接P0口Seg2段碼端接P2口P0=0xa4;P2=0x92;ucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽0-92軟件設(shè)計#include<reg52.hvoidmain(void){

P0=0xa4;

P2=0x92;while(1);}3.3單片機控制數(shù)碼管四、兩位數(shù)碼管靜態(tài)顯示仿真實例任務(wù)要求:在2位共陽數(shù)碼管采用靜態(tài)顯示方式顯示25。3仿真運行3.3單片機控制數(shù)碼管五、四位數(shù)碼管動態(tài)顯示仿真實例任務(wù)要求:在4位共陽數(shù)碼管采用動態(tài)顯示方式穩(wěn)定顯示“3210”

實物圖四位動態(tài)共陽數(shù)碼管內(nèi)部結(jié)構(gòu)引腳圖3.3單片機控制數(shù)碼管五、四位數(shù)碼管動態(tài)顯示仿真實例任務(wù)要求:在4位共陽數(shù)碼管采用動態(tài)顯示方式穩(wěn)定顯示“3210”

P0abcdefgdpabcdefgdpabcdefgdpabcdefgdpP2.3P2.2P2.1P2.0

0001

0010

01

00

10

00w0=1;

P0=0xc0;delay(2)w0=0;P0=0xf9;delay(2)sbitw0=P2^0;sbitw1=P2^1;sbitw2=P2^2;sbitw3=P2^3;w1=1;w1=0ucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};P0=0xff;P0=0xff;3.3單片機控制數(shù)碼管五、四位數(shù)碼管動態(tài)顯示仿真實例任務(wù)要求:在4位共陽數(shù)碼管采用動態(tài)顯示方式穩(wěn)定顯示“3210”

P0abcdefgdpabcdefgdpabcdefgdpabcdefgdpP2.3P2.2P2.1P2.0P0=0xf9;delay(2)w1=1;w1=0P0=0xff;送段碼送位選碼延時消隱關(guān)閉位選碼掃描率大于100Hz,整體掃描時間小于10ms,無閃爍。延時時間的計算整體掃描時間=單個數(shù)碼管點亮?xí)r間*數(shù)碼管個數(shù)數(shù)碼管的消隱現(xiàn)象:有時會出現(xiàn)數(shù)碼管不應(yīng)該亮的段,似乎有微微的發(fā)亮。P0=0xff;消隱:單個數(shù)碼管點亮?xí)r間<2.5ms,延時時間可選2ms3.3單片機控制數(shù)碼管五、四位數(shù)碼管動態(tài)顯示仿真實例任務(wù)要求:在4位共陽數(shù)碼管采用動態(tài)顯示方式穩(wěn)定顯示“3210”

1硬件電路設(shè)計3.3單片機控制數(shù)碼管五、四位數(shù)碼管動態(tài)顯示仿真實例任務(wù)要求:在4位共陽數(shù)碼管采用動態(tài)顯示方式穩(wěn)定顯示“3210”

2軟件設(shè)計#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitw0=P2^0;//最低位位選端sbitw1=P2^1;//第2位位選端sbitw2=P2^2;//第3位位選端sbitw3=P2^3;//第4位位選端ucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voiddelay(uintxms);voidmain(){

w2=1;P0=seg[2];delay1ms(2);P0=0xff;w2=0;w3=1;P0=seg[3];delay1ms(2);P0=0xff;w3=0;}}while(1){

w0=1;//送位選P0=seg[0];//送0的段碼delay1ms(2);//延時P0=0xff;//即消隱w0=0;

w1=1;P0=seg[1];delay1ms(2);P0=0xff;w1=0;3單片機輸出顯示控制01單片機并行I/O端口的內(nèi)部結(jié)構(gòu)0203單片機控制數(shù)碼管單片機控制發(fā)光二極管0405單片機控制液晶顯示器LCD單片機控制LED點陣顯示3.4單片機控制LED點陣顯示一、8*8LED點陣顯示器的結(jié)構(gòu)與顯示原理LED點陣在許多公共場合,如商場、銀行、車站、機場、醫(yī)院隨處可見。不僅能顯示文字、圖形,還能播放動畫、圖像、視頻等信號。圖28*8LED點陣結(jié)構(gòu)示意圖圖18*8LED點陣實物圖陣列點數(shù)發(fā)光顏色5×75×86×88×8單色雙色三色極性排列共陰極共陽極3.4單片機控制LED點陣顯示一、8*8LED點陣顯示器的結(jié)構(gòu)與顯示原理P0=0xfe;P2=0x00;第一行:P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.70111111100000000顯示效果P0=0xf7;P2=0x3c;第四行:第五行:P0=0xef;P2=0x00;第六行:P0=0xdf;P2=0x7e;第二行:P0=0xfd;P2=0x7e;第三行:P0=0xfb;P2=0x00;3.4單片機控制LED點陣顯示二、8*8LED點陣顯示仿真實例P0=0xfe;P2=0x00;第一行:第二行:P0=0xfd;P2=0x7e;顯示效果第三行:P0=0xfb;P2=0x00;P0=0xf7;P2=0x3c;第四行:第五行:P0=0xef;P2=0x00;第六行:P0=0xdf;P2=0x7e;任務(wù)要求:在8*8LED點陣(共陰)上顯示漢字“三”。1硬件電路設(shè)計3.4單片機控制LED點陣顯示二、8*8LED點陣顯示仿真實例任務(wù)要求:在8*8LED點陣(共陰)上顯示漢字“三”。2軟件設(shè)計行掃描碼:P0口row[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}列編碼:P2口col[]={0x00,0x7e,0x00,0x3c,0x00,0x7e,0x00,0x00}一行的顯示過程顯示一個漢字需要行掃描8次;“三”需要送出8個行掃描碼,可用for循環(huán)。確定行列編碼送行掃描碼送列編碼延時消隱漢字的顯示3.4單片機控制LED點陣顯示二、8*8LED點陣顯示仿真實例任務(wù)要求:在8*8LED點陣(共陰)上顯示漢字“三”。2軟件設(shè)計#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharcodecol[]={0x00,0x7e,0x00,0x3c,0x00,0x7e,0x00,0x00};ucharcoderow[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};voiddelay1ms(uintxms);voidmain(){uchari;while(1){

for(i=0;i<8;i++)

{

P0=row[i];//掃描碼

P2=col[i];//列編碼

delay1ms(4); //延時

P2=0x00;//消隱

}}}一行的顯示過程確定行列編碼漢字的顯示行碼:P0row[]列碼:P2col[]送行掃描碼送列編碼消隱延時for循環(huán)3.4單片機控制LED點陣顯示二、8*8LED點陣顯示仿真實例任務(wù)要求:在8*8LED點陣(共陰)上顯示漢字“三”。3仿真運行3.4單片機控制LED點陣顯示三、16*16LED點陣顯示器顯示原理16*16

LED點陣是由4個8*8

LED點陣組成每行每列都有16個LED,有16根掃描線,16根列碼線。16*16

LED點陣(共陰)C0R0行送低電平點亮一個LED條件列送高電平行列交叉LED亮顯示字形過程確定行列編碼漢字的顯示:多行顯示一行3.4單片機控制LED點陣顯示四、16*16LED點陣顯示屏仿真實例行掃描線:74HC154(4-16譯碼器)任務(wù)要求:16*16LED點陣顯示屏(共陰)實現(xiàn)滾動顯示漢字“歡迎學(xué)習(xí)”。1硬件電路設(shè)計列線:P2口P3口74HC07是6通道同相驅(qū)動器74HC15474HC073.4單片機控制LED點陣顯示四、16*16LED點陣顯示屏仿真實例任務(wù)要求:16*16LED點陣顯示屏(共陰)實現(xiàn)滾動顯示漢字“歡迎學(xué)習(xí)”。1硬件電路設(shè)計74HC154引腳表3-874HC154真值表3.4單片機控制LED點陣顯示四、16*16LED點陣顯示屏仿真實例任務(wù)要求:16*16LED點陣顯示屏(共陰)實現(xiàn)滾動顯示漢字“歡迎學(xué)習(xí)”。1硬件電路設(shè)計74HC07引腳74HC07器件包含6路同相緩沖器/驅(qū)動器。6路輸入為1A~6A,6路輸出為1Y~6Y。輸出為集電極開路,需外接上拉上拉電阻。3.4單片機控制LED點陣顯示四、16*16LED點陣顯示屏仿真實例任務(wù)要求:16*16LED點陣顯示屏(共陰)實現(xiàn)滾動顯示漢字“歡迎學(xué)習(xí)”。2軟件設(shè)計(1)4個漢字的編碼(字模):可以自己編碼或采用字模生成軟件(2)行掃描碼:P1口低4位經(jīng)74HC154的16條譯碼輸出線L0~L15經(jīng)74HC07驅(qū)動后的輸出行掃描碼,逐行為低電平進(jìn)行掃描。(3)列碼:字模第一個字節(jié)送給P2口,第二個字節(jié)送給P3口,依次循環(huán)。(4)一行的顯示過程:送行掃描碼送列編碼延時消隱(5)一個漢字的顯示:一個漢字32個列碼,1行2個,共16行,for循環(huán)(6)一個漢字的顯示時間:用一個40次for循環(huán),不斷刷新這個漢字(7)四個漢字的顯示:用一個4次for循環(huán)3.4單片機控制LED點陣顯示四、16*16LED點陣顯示屏仿真實例任務(wù)要求:16*16LED點陣顯示屏(共陰)實現(xiàn)滾動顯示漢字“歡迎學(xué)習(xí)”。2軟件設(shè)計#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharcodestring[]={//漢字“歡"的16x16點陣的列碼0x00,0x80,0x00,0x80,0xFC,0x80,0x04,0xFC,0x45,0x04,0x46,0x48,0x28,0x40,0x28,0x40,0x10,0x40,0x28,0x40,0x24,0xA0,0x44,0xA0,0x81,0x10,0x01,0x08,0x02,0x0E,0x0C,0x04,//漢字“迎”的16x16點陣的列碼略//漢字“學(xué)”的16x16點陣的列碼

略//漢字“習(xí)”的16x16點陣的列碼

略voiddelay1ms(uintxms);//延時函數(shù)voidmain(){uchari,n,j;while(1){

for(j=0;j<4;j++)//共顯示4個漢字

{

for(n=0;n<40;n++)//整屏掃描40次

{

for(i=0;i<16;i++)//逐行掃描16行 {

P1=i%16;//行掃描碼P2=string[i*2+j*32];//列碼P3=string[i*2+1+j*32];//列碼

delay1ms(3); P2=0x00; //消隱 P3=0x00;//消隱

}}}}}3.4單片機控制LED點陣顯示四、16*16LED點陣顯示屏仿真實例任務(wù)要求:16*16LED點陣顯示屏(共陰)實現(xiàn)滾動顯示漢字“歡迎學(xué)習(xí)”。3仿真運行3單片機輸出顯示控制01單片機并行I/O端口的內(nèi)部結(jié)構(gòu)0203單片機控制數(shù)碼管單片機控制發(fā)光二極管0405單片機控制液晶顯示器LCD單片機控制LED點陣顯示3.5單片機控制液晶顯示器LCD一、LCD1602液晶顯示模塊特性與引腳液晶顯示器種類:(1)字段型。字符顯示,用于電子表、計算器等。(2)字符型。顯示字母、數(shù)字、符號等。單片機中廣泛使用。(3)點陣圖形型。圖形顯示,如筆記本電腦、彩色電視和游戲機等。(a)LCD1602的外形(b)LCD1602的引腳3.5單片機控制液晶顯示器LCD一、LCD1602液晶顯示模塊特性與引腳5x7點陣圖形特性:1、顯示數(shù)字、字符等2、5V電壓驅(qū)動3、工作電流2mA4、標(biāo)準(zhǔn)的14引腳(無背光)

或16個引腳(有背光)5、顯示2行,每行16個字符6、內(nèi)置128個字符的ASCII字庫特性3.5單片機控制液晶顯示器LCD一、LCD1602液晶顯示模塊特性與引腳引腳號引腳名稱引腳功能1Vss電源地2VDD+5V邏輯電源3VEE液晶顯示偏壓(調(diào)節(jié)顯示對比度)4RS寄存器選擇(1-

數(shù)據(jù)寄存器,0-命令/狀態(tài)寄存器)5讀寫操作選擇(1-讀,0-寫)6E使能信號7~14D0~D7數(shù)據(jù)總線,與單片機的數(shù)據(jù)總線相連、三態(tài)15BLA背光板電源,通常為+5V,串聯(lián)1個電位器,調(diào)節(jié)背光亮度,如接地,此時無背光但不易發(fā)熱16BLK背光板電源地引腳3.5單片機控制液晶顯示器LCD二、LCD1602液晶顯示模塊顯示原理顯示字符的ASCII碼的產(chǎn)生問題內(nèi)部字符庫ROM(CGROM),能顯示出192個字符,字符5x7點陣表示?!纠俊癆”的二進(jìn)制編碼為“01000001”

十六進(jìn)制編碼為“0x41”編碼和ASCII碼表中“A”的編碼一致自定義字符RAM(CGRAM)

64字節(jié),用戶可自行定義8個5x7點陣字符。3.5單片機控制液晶顯示器LCD二、LCD1602液晶顯示模塊顯示原理在顯示器上相應(yīng)的位置顯示字符的問題第一行可顯示區(qū)域地址0x00~0x0F隱藏區(qū)域地址是0x10~0x27第二行可顯示區(qū)域地址0x40~0x4F隱藏區(qū)域地址是0x50~0x67DDRAM地址就對應(yīng)了顯示位置,也稱DDRAM地址為定位數(shù)據(jù)指針。3.5單片機控制液晶顯示器LCD三、LCD1602液晶顯示模塊基本操作主要操作:1、LCD液晶初始化:有無光標(biāo)、光標(biāo)移動方向、光標(biāo)閃爍等進(jìn)行設(shè)置2、寫命令:下達(dá)任務(wù)3、寫數(shù)據(jù):寫具體要顯示的內(nèi)容或命令內(nèi)容3.5單片機控制液晶顯示器LCD三、LCD1602液晶顯示模塊基本操作初始化一般過程:(1)設(shè)置液晶的顯示模式(2)設(shè)置光標(biāo)顯示、閃爍(3)設(shè)置光標(biāo)移動方式(4)設(shè)置光標(biāo)的起始位置(5)清屏命令6:功能設(shè)置命令。DL—數(shù)據(jù)有效長度選擇控制位。1:8位數(shù)據(jù)線接口;0:4位數(shù)據(jù)線接口。N—顯示器行數(shù)選擇控制位。0:單行顯示,1:兩行顯示。F—字符顯示的點陣控制位。0:顯示5×7點陣字符,1:顯示5×10點陣字符?!纠?位總線,雙行顯示,顯示5×7的點陣字符。命令字:0x3800111000

LCD液晶初始化13.5單片機控制液晶顯示器LCD三、LCD1602液晶顯示模塊基本操作初始化一般過程:(1)設(shè)置液晶的顯示模式(2)設(shè)置光標(biāo)顯示、閃爍(3)設(shè)置光標(biāo)移動方式(4)設(shè)置光標(biāo)的起始位置(5)清屏00001100命令4:顯示開/關(guān)及光標(biāo)設(shè)置。

D—屏幕整體顯示控制位,D=0關(guān)顯示,D=1開顯示。

C—光標(biāo)有無控制位,C=0無光標(biāo),C=1有光標(biāo)。

B—光標(biāo)閃爍控制位,B=0不閃爍,B=1閃爍?!纠匡@示開,不顯示光標(biāo),光標(biāo)沒有閃爍。命令字:0x0CLCD液晶初始化13.5單片機控制液晶顯示器LCD三、LCD1602液晶顯示模塊基本操作初始化一般過程:(1)設(shè)置液晶的顯示模式(2)設(shè)置光標(biāo)顯示、閃爍(3)設(shè)置光標(biāo)移動方式(4)設(shè)置光標(biāo)的起始位置(5)清屏00000110【例】光標(biāo)右移命令字:0x06命令3:光標(biāo)和顯示模式設(shè)置命令。

I/D:設(shè)置光標(biāo)的移動方向。

I/D=1:光標(biāo)右移一字符位置

I/D=0:光標(biāo)左移一字符位置。S:顯示屏上畫面向左或向右全部移動一個字符位。

S=1,I/D=1:顯示畫面左移

S=1,I/D=0:顯示畫面右移

S=0,整屏顯示不移動LCD液晶初始化13.5單片機控制液晶顯示器LCD三、LCD1602液晶顯示模塊基本操作初始化一般過程:(1)設(shè)置液晶的顯示模式(2)設(shè)置光標(biāo)顯示、閃爍(3)設(shè)置光標(biāo)移動方式(4)設(shè)置光標(biāo)的起始位置(5)清屏命令8:DDRAM地址設(shè)置。

命令格式:80H+地址碼。其中,80H為命令碼。【例】第一行第1個位置命令字:0x80+0x00【例】第二行第5個位置命令字:0x80+0x44LCD液晶初始化13.5單片機控制液晶顯示器LCD三、LCD1602液晶顯示模塊基本操作LCD液晶初始化初始化一般過程:(1)設(shè)置液晶的顯示模式(2)設(shè)置光標(biāo)顯示、閃爍(3)設(shè)置光標(biāo)移動方式(4)設(shè)置光標(biāo)的起始位置(5)清屏【例】清屏命令字:0x01這些命令字如何送到LCD1602?11~8條命令需要用寫時序?qū)⒚钭謱懭隠CD1602,常把寫命令封裝為一個函數(shù)write_cmdvoidlcd_init(){

write_cmd(0x38);//顯示模式設(shè)置

write_cmd(0x0c);//顯示開關(guān),光標(biāo)沒有閃爍

write_cmd(0x06);//顯示光標(biāo)移動設(shè)置

write_cmd(0x01);//清除屏幕

delay(1);}三、LCD1602液晶顯示模塊基本操作/***寫命令函數(shù)***/voidwrite_cmd(ucharcmd){

lcden=0;

lcdrs=0;lcdrw=0;

out=cmd;lcden=1;

delay(1);lcden=0;delay(1);}寫命令時序圖寫命令2EN=0RS=0RW=0D0~D7=指令EN=高脈沖寫命令時序【例】清屏操作write_cmd(0x01);1三、LCD1602液晶顯示模塊基本操作寫數(shù)據(jù)時序圖寫數(shù)據(jù)3寫數(shù)據(jù)時序EN=0RS=1RW=0D0~D7=數(shù)據(jù)EN=高脈沖/***寫數(shù)據(jù)函數(shù)***/voidwrite_date(uchardat){

lcden=0;

lcdrs=1;lcdrw=0;

out=dat;lcden=1;

delay(1);lcden=0;delay(1);}【例】顯示字符“A”write_date(0x41);或write_date(‘A’);【例】顯示數(shù)字“2”write_date(0x32);或write_date(2+0x30);三、LCD1602液晶顯示模塊基本操作讀狀態(tài)時序圖讀狀態(tài)4讀狀態(tài)時序EN=0RS=0RW=1EN=1D0~D7=命令EN=高脈沖/***讀狀態(tài)函數(shù)***/voidcheck_busy(void){uchardt;do{dt=0xff; lcden=0;lcdrs=0;lcdrw=1;lcden=1;dt=out;//out為數(shù)據(jù)口}while(dt&0x80)lcden=0;}3.5單片機控制液晶顯示器LCD四、單片機控制LCD1602液晶顯示字符串仿真實例硬件電路設(shè)計1任務(wù)要求:在LCD1602上顯示“welcometolearnMCU”,分兩行顯示。四、單片機控制LCD1602液晶顯示字符串仿真實例軟件設(shè)計2任務(wù)要求:在LCD1602上顯示“welcometolearnMCU”,分兩行顯示。(1)LCD初始化(2)確定顯示位置(3)寫命令字(4)寫一個字符或字符串#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineoutP2sbitlcdrs=P3^0;//液晶的RS端接P3.0口sbitlcdrw=P3^1;//液晶的RW端接P3.1sbitlcden=P3^2;//液晶的EN使能端接P3.2口voiddelay(uintz);//1ms延時函數(shù)voidcheck_busy(void);//檢查忙標(biāo)志函數(shù)voidwrite_cmd(charcmd);//寫命令函數(shù)voidwrite_data(uchardat);//寫數(shù)據(jù)函數(shù)voidwrite_str(uchar*str);//寫字符串函數(shù)voidlcd_init();//初始化1602voidmain(){lcd_init();while(1){

write_cmd(0x80+0x04write_str("Welcome");write_cmd(0x80+0x42) write_str("tolearnMCU");}}voidwrite_str(uchar*str){while(*str!='\0')

{write_data(*str++);delay(5);}}四、單片機控制LCD1602液晶顯示字符串仿真實例仿真運行3任務(wù)要求:在LCD1602上顯示“welcometolearnMCU”,分兩行顯示。本章小結(jié)1.P0~P3口作為輸入口使用時,要先向端口寫“1”。2.P0口作為輸出口使用時,漏極開路,要外接上拉電阻(1KΩ~10KΩ),P1~P3口內(nèi)部有上拉電阻,不用外接上拉電阻。3.單片機的地址和數(shù)據(jù)總線構(gòu)成:16位地址總線由P2口(高8位)和P0口(低8位)構(gòu)成,8位數(shù)據(jù)總線由P0口構(gòu)成,P0口用作“地址/數(shù)據(jù)”總線時需要在ALE引腳輸出的時序控制下分時復(fù)用,是一個雙向口,無需外接上拉電阻。4.P3口第一功能與第二功能是由單片機執(zhí)行的指令控制自動切換,用戶不需要進(jìn)行任何設(shè)置。P3口作為第二功能使用時,就不能再作為通用I/0口使用。5.數(shù)碼管有共陽極和共陰極兩種類型。通常將段碼存放在數(shù)組中。6.單片機控制多個數(shù)碼管顯示時有靜態(tài)顯示和動態(tài)顯示兩種方式。靜態(tài)顯示時每個數(shù)碼管的段碼端都需要1個8位的I/O口,占據(jù)口線多,但無閃爍。動態(tài)顯示時每個數(shù)碼管的段碼端都連接同一個8位的I/O口,每個數(shù)碼管的公共端分別由1位I/O口線控制,占用口線少,但有閃爍。本章小結(jié)7.8*8

LED點陣顯示器每個發(fā)光二極管都處于行線和列線之間的交叉點上。行接收掃描碼,列接收字形編碼。編碼控制點亮某些發(fā)光二極管,從而顯示出由不同發(fā)光的點組成的各種圖案。想顯示不同的圖案,就給不同的編碼。8.16*16

LED點陣是由4個8*8

LED點陣組成,每個發(fā)光二極管都放置在行線和列線的交叉點上,每行每列都有16個LED。所以,16*16點陣LED有16根掃描線,16根列碼線。9.LCD1602每行可顯示16個字符,可顯示2行且只能顯示數(shù)字、大小寫字母及各種字符。單片機輸入檢測04重點介紹鍵盤的工作原理、接口設(shè)計與軟件編程以及物理量轉(zhuǎn)換為開關(guān)量的信號檢測。04單片機輸入檢測123獨立按鍵檢測矩陣鍵盤檢測開關(guān)量信號檢測4.1獨立按鍵檢測

編碼鍵盤:鍵盤上閉合鍵的識別由專用的硬件編碼器實現(xiàn),并產(chǎn)生

鍵編碼號或鍵值的稱為編碼鍵盤,如計算機鍵盤。非編碼鍵盤:靠軟件編程來識別的稱為非編碼鍵盤;在單片機系統(tǒng)中,用的最多的是非編碼鍵盤。鍵盤具有向單片機輸入數(shù)據(jù)、命令等功能,是人與單片機對話的主要手段。

圖1彈性按鍵一、獨立鍵盤非編碼鍵盤分成獨立鍵盤和矩陣(行列式)鍵盤4.1獨立按鍵檢測一、獨立鍵盤彈起高電平按下低電平1按鍵檢測原理按鍵在閉合和斷開時,有10ms抖動期如何去抖?4.1獨立按鍵檢測2軟件按鍵去抖動

voidkeyscan(){key=1;//輸入先寫“1”

if(key==0)

{delay(10);//延時去抖

if(key==0)//按鍵按下

{while(!key);//松手檢測

程序段;

}}}

核心指令

4.1獨立按鍵檢測一、獨立鍵盤#include<reg52.h>sbitkey1=P2^0;sbitled1=P1^7;voidmain(){while(1){

key1=1;if(key1==0){led1=0;}else{led1=1;}}}

【例】P2.0引腳接按鍵,P1.7引腳接LED,按下按鍵LED點亮。4.1獨立按鍵檢測一、獨立鍵盤

【例】P2.0引腳接按鍵,P1.7引腳接LED,按下按鍵LED點亮。(標(biāo)志位)#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitkey=P2^0;//按鍵聲明sbitled=P1^7;//LED聲明ucharkeyflag=0;//按鍵標(biāo)志位voiddelay(uinti);//延時voidkeyscan();//按鍵檢測函數(shù)voidmain(){while(1){

keyscan();

if(keyflag==1)

{

led=0;}

}}voidkeyscan()//按鍵檢測函數(shù){key=1;//輸入先寫“1”

if(key==0){delay(10);//延時去抖

if(key==0)//按鍵按下

{

while(!key);//松手檢測

keyflag=1;//設(shè)標(biāo)志位

}}}

【例】設(shè)計4個按鍵,分別控制4個LED,按下一個按鍵,只亮一個LED。voidkeyscan()//按鍵檢測函數(shù){

KEY1=1;//輸入先寫“1”

if(KEY1==0){delay(10);//延時去抖

if(KEY1==0)//按鍵按下

{

while(!KEY1);//松手檢測

keyflag=1;//設(shè)標(biāo)志位

}

}

KEY2=1;//輸入先寫“1”

if(KEY2==0){delay(10);//延時去抖

if(KEY2==0)//按鍵按下

{

while(!KEY2);//松手檢測

keyflag=2;//設(shè)標(biāo)志位

}}}KEY1按下:P1=11111110B=0xfe;KEY2按下:P1=1111110 1B=0xfd;KEY3按下:P1=1111101 1B=0xfb;KEY4按下:P1=1111011 1B=0xf7;

【例】設(shè)計4個按鍵,分別控制4個LED,按下一個按鍵,只亮一個LED。voidkeyscan()//按鍵檢測函數(shù){KEY1=1;//輸入先寫“1”

if(KEY1==0){delay(10);//延時去抖

if(KEY1==0)//按鍵按下

{

while(!KEY1);//松手檢測

keyflag=1;//設(shè)標(biāo)志位

}}

KEY2=1;//輸入先寫“1”

if(KEY2==0){delay(10);//延時去抖

if(KEY2==0)//按鍵按下

{

while(!KEY2);//松手檢測

keyflag=2;//設(shè)標(biāo)志位

}…………}}voidkeyscan()//按鍵檢測函數(shù){P2=0xff;//輸入先寫“1”

if((P2&0x0f)!=0x0f)//檢測有按鍵按下{

delay(10);//延時去抖

if(KEY1==0)//KEY1按鍵按下{keyflag=1;//設(shè)標(biāo)志位1

while(!KEY1);}//松手檢測

if(KEY2==0)//

KEY2按鍵按下{keyflag=2;//設(shè)標(biāo)志位2

while(!KEY2);}//松手檢測

if(KEY3==0)//

KEY3按鍵按下{keyflag=3;//設(shè)標(biāo)志位3

while(!KEY3);}//松手檢測

if(KEY4==0)//

KEY4按鍵按下{keyflag=4;//設(shè)標(biāo)志位4

while(!KEY4);}//松手檢測

}}優(yōu)化代碼

【例】設(shè)計4個按鍵,分別控制4個LED,按下一個按鍵,只亮一個LED。#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitKEY1=P2^0;//按鍵聲明sbitKEY2=P2^1;//按鍵聲明sbitKEY3=P2^2;//按鍵聲明sbitKEY4=P2^3;//按鍵聲明ucharkeyflag=0;//按鍵標(biāo)志位voiddelay(uinti);//延時voidkeyscan();//按鍵檢測函數(shù)voidmain(){while(1){keyscan();

switch(keyflag)

{case1:P1=0xfe;break;

case2:P1=0xfd;break;case3:P1=0xfb;break;

case4:P1=0xf7;break;

}

}}KEY1按下:P1=11111110B=0xfe;KEY2按下:P1=1111110 1B=0xfd;KEY3按下:P1=1111101 1B=0xfb;KEY4按下:P1=1111011 1B=0xf7;【C語言知識點】位運算【例】編程將P1.5清

0,P1.1置1,其他位保持不變,采用字節(jié)操作。P1=(P1&0xdf)│0x02;4.1獨立按鍵檢測二、四路搶答器仿真實例任務(wù)要求:設(shè)計四路搶答器,由主持人控制搶答輪次,主持人按下復(fù)位按鈕,搶答開始,無人搶答時數(shù)碼管顯示8,一旦搶答,選手按下按鍵顯示相應(yīng)選手編號,其他選手再按按鍵無效。主持人按下復(fù)位按鈕重新開始搶答。硬件電路設(shè)計1數(shù)碼管段碼端:P2口按鍵:1號選手P1.02號選手P1.13號選手P1.24號選手P1.34.1獨立按鍵檢測二、四路搶答器仿真實例軟件設(shè)計2①主持人按下復(fù)位按鈕重新開始搶答:由硬件復(fù)位按鍵實現(xiàn)②無人搶答,即沒有按鍵按下,標(biāo)志位keyflag=8,顯示“8”的段碼0x80③選手按下按鍵檢測:四個按鍵標(biāo)志位keyflag分別設(shè)為1、2、3、4。④顯示選手編號:keyflag的值即為選手編號,

顯示其段碼0xf9,0xa4,0xb0,0x99P2=seg[keyflag]⑤其他選手再按按鍵無效:選手按下按鍵后進(jìn)入while(1)死循環(huán)“0~9”段碼(共陽):ucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};任務(wù)要求:設(shè)計四路搶答器,由主持人控制搶答輪次,①主持人按下復(fù)位按鈕,搶答開始;②無人搶答時數(shù)碼管顯示8;③一旦搶答,選手按下按鍵

④顯示相應(yīng)選手編號,⑤其他選手再按按鍵無效。主持人按下復(fù)位按鈕重新開始搶答。二、四路搶答器仿真實例軟件設(shè)計2#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#defineoutP2 //數(shù)碼管段碼端sbitkey1=P1^0; //1號選手sbitkey2=P1^1; //2號選手sbitkey3=P1^2; //3號選手sbitkey4=P1^3; //4號選手ucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽ucharkeyflag=8;//初值為8無按鍵按下voiddelay(uinti);voidkeyscan();voidmain(){while(1)

{

keyscan()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論