日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]今天忙了一天了,因?yàn)楫厱N杯我發(fā)現(xiàn)如果不加把勁,可能寒假之前代碼搞不出了,今天突擊了兩個(gè)模塊,一個(gè)人體感應(yīng)模塊,和rfid刷卡模塊,這兩個(gè)模塊談不上自己編寫(xiě)代碼,今天的任務(wù)也僅僅是看懂了代碼,現(xiàn)在我總結(jié)一下

今天忙了一天了,因?yàn)楫厱N杯我發(fā)現(xiàn)如果不加把勁,可能寒假之前代碼搞不出了,今天突擊了兩個(gè)模塊,一個(gè)人體感應(yīng)模塊,和rfid刷卡模塊,這兩個(gè)模塊談不上自己編寫(xiě)代碼,今天的任務(wù)也僅僅是看懂了代碼,現(xiàn)在我總結(jié)一下今天的所得


人體感應(yīng)模塊,開(kāi)始的時(shí)候,問(wèn)題出在兩個(gè)方面,第一個(gè)就是我竟然不小心把電源看錯(cuò)了,因?yàn)閳D上沒(méi)得標(biāo)記,搞起我用電壓表測(cè)量輸出的電壓,結(jié)果發(fā)現(xiàn)輸出的結(jié)果總是4.46V,我開(kāi)始因?yàn)槭顷P(guān)照強(qiáng)度的問(wèn)題,就把他放在一個(gè)黑盒子了,結(jié)果還是4.46V,于是糾結(jié)了好久才弄處理


第二個(gè)點(diǎn),值得注意的地方,就是單片機(jī)檢測(cè)電平的變化,因?yàn)榧t外感應(yīng)模塊本身就不難,我開(kāi)始想用中斷,因?yàn)檫@樣的話,可以節(jié)省單片機(jī)的內(nèi)部的資源,其實(shí)這個(gè)想法昨晚上就有了,后來(lái)才知道,51單片機(jī)只能夠是低電平觸發(fā)中斷,這樣的話,原來(lái)的方案就不能實(shí)現(xiàn)


還是郭老師那句話好呀,51單片機(jī)在進(jìn)行輸入的時(shí)候,要對(duì)其進(jìn)行寫(xiě)1 操作,這樣才能夠讀出管腳的I/O的變化,對(duì)于51單片機(jī)的管腳的知識(shí),今天百度了一下,這里有幾篇比較好的文章推薦給大家


博客:這個(gè)是別個(gè)總結(jié)的,感覺(jué)很有用



IO口檢測(cè)高點(diǎn)平的問(wèn)題,曾經(jīng)而困擾我不少時(shí)間,呵呵。


這幾天做一個(gè)項(xiàng)目,又有點(diǎn)暈呼了,查了不少資料,做了一個(gè)總結(jié),和大家分享~~



1、51單片機(jī)的I/O 口檢測(cè)高低電平是需要首先讓該端口置為1的。此時(shí)這個(gè)引腳才被設(shè)置為輸入。


2、如果是avr單片機(jī),可以通過(guò)設(shè)置DDRx的值來(lái)設(shè)置輸入輸出(詳見(jiàn)數(shù)據(jù)手冊(cè)~~)


3、切忌要將單片機(jī)的檢測(cè)端口設(shè)置為輸入,否則可能影響被檢測(cè)模塊端口的電壓(如:被拉低電平至0v,或被拉高)


4、注意單片機(jī)一般是TTL電平模式的,因此高電平的最低應(yīng)該是2V,低電平的最高應(yīng)該是0.8V。(具體還是見(jiàn)數(shù)據(jù)手冊(cè)比較保險(xiǎn)一點(diǎn))


示例代碼:


#include


sbit led = P1^1;

sbit hongwai = P1^2;


typedef unsigned int uint ;

//延時(shí)函數(shù)

void delay(uint x)

{

uint i,j;

for (i = x;i>0;i--)

for(j = 110;j>0;j--);

}


main()

{

hongwai = 1;

while(1)

{

if(hongwai ==1)//檢測(cè)到高電平的話,延時(shí)一下

{

delay(20);

if(hongwai == 1)//再次檢測(cè)一下

{

led = 0;

}

}

else

led = 1;

}


}



步進(jìn)電機(jī):


其實(shí)以前我還在糾結(jié)為什么我的步進(jìn)電機(jī)總要比其他人的壞的快,原來(lái)是沒(méi)有弄清楚步進(jìn)電機(jī)的正極,因?yàn)椴竭M(jìn)電機(jī)通常是采用5根線,所以,紅色的那根通常是正極,步進(jìn)電機(jī)的驅(qū)動(dòng)很簡(jiǎn)單,這里不做總結(jié)



rfid模塊:


從吃完中飯就回來(lái)弄這個(gè)模塊了,這個(gè)模塊比較小氣,代碼比較長(zhǎng),我今天下午可以說(shuō)是把他從頭到腳打量了一下午,但是還是沒(méi)有結(jié)果,最后,問(wèn)達(dá)鑫,因?yàn)檫_(dá)鑫做出來(lái)了,后來(lái)才知道,這個(gè)模塊的電壓一定要嚴(yán)格的限定在3.3v,我今天下午沒(méi)有弄出來(lái)的原因就是電源偏高,我在慶幸沒(méi)有把模塊燒壞,因?yàn)榻裉祀娫措m然說(shuō)是3.3v,結(jié)果到最后才知道他有3.47V,導(dǎo)致模塊一直處于高電壓狀態(tài),這個(gè)模塊的電壓最好一定要等于3.3v


示例代碼:這里給出主程序


#include

#include"ICRead.h"

unsigned char status;

unsigned char RevBuffer[2];

unsigned char CardNum[4];

unsigned char Duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};


/*******************

系統(tǒng)初始化函數(shù)

*********************/


void InitializeSystem()

{

DZ=1;

P0=0;

DZ=0;

LED=1;

P0 = 0xFF;

LED=0;

PcdReset(); //RC522 restart;

PcdAntennaOff(); //關(guān)閉天線

PcdAntennaOn(); //開(kāi)啟天線

M500PcdConfigISOType( 'A' );//設(shè)置RC632的工作方式;

}


void delay10ms()

{

unsigned char i,j;

for(i=123;i>0;i--)

for(j=10;j>0;j--);

}


void main()

{

unsigned char i,digitron;

InitializeSystem( );

status=PcdRequest(PICC_REQIDL,&RevBuffer[0]);

status=PcdAnticoll(CardNum);

if(status==MI_OK)

{

while(1)

{

digitron=0xfe;

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

{

delay10ms();

Wei=1;

P0=digitron;

digitron<<=1;

Wei=0;

Duan=1;

P0=Duanma[CardNum[i]%10];

Duan=0;

delay10ms();

}

}

}

}


明天還有串口通信,這兩個(gè)程序還是比較經(jīng)典的,明天加上串口通信,應(yīng)該就可以刷卡進(jìn)門(mén)了,對(duì)了,因?yàn)?1好像有一個(gè)銀行卡結(jié)賬的示例程序,明天看看,可不可以移植到我們的豬舍上來(lái)


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉