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

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] LCD1602的接口形式是并行的,它有8條數(shù)據(jù)線、3條控制線。這樣就需要11條線來控制它的正常工作。雖然它還可以工作在4位數(shù)據(jù)線的形式,最精簡(jiǎn)的形式是6條線。有位網(wǎng)友想要使用74HC595進(jìn)行串-并轉(zhuǎn)換,想要

LCD1602的接口形式是并行的,它有8條數(shù)據(jù)線、3條控制線。這樣就需要11條線來控制它的正常工作。雖然它還可以工作在4位數(shù)據(jù)線的形式,最精簡(jiǎn)的形式是6條線。


有位網(wǎng)友想要使用74HC595進(jìn)行串-并轉(zhuǎn)換,想要用4條線來控制LCD1602。

可見鏈接:http://zhidao.baidu.com/question/458604195.html。


多用了一塊芯片,省下了單片機(jī)的引腳,這也算是一種方法吧,在系統(tǒng)規(guī)模較大、資源緊張的條件下,還是值得應(yīng)用的。


74HC595是“串入并出”的移位寄存器芯片,它需要用3條線控制數(shù)據(jù)的輸入,才能正常的輸出8位數(shù)據(jù)。


有了8位數(shù)據(jù),這時(shí),LCD1602還需要至少兩條控制線。


經(jīng)過做而論道的精心設(shè)計(jì),分時(shí)使用這些控制線,最終,僅僅使用了3條線,就完成了對(duì)74HC595和LCD1602的有效控制!


這要比前面的網(wǎng)友提出的4條線的方案,還要更加精簡(jiǎn),節(jié)省率提高了25%。


精簡(jiǎn)后的電路圖如下:



圖中是一個(gè)數(shù)字鐘,是為另一個(gè)網(wǎng)友編寫的,可以參考下面的鏈接:

http://hi.baidu.com/do_sermon/item/c8d1161d40768f10e3f98682

http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/a0c99e2343b541844423e865.html

(百度空間在2012年8月,無聊的改版了,結(jié)果,把它自己的網(wǎng)站鏈接,都弄斷了。因此,下面的鏈接,已經(jīng)失效了。不刪了,留作紀(jì)念吧。)


由于LCD1602的驅(qū)動(dòng)電路發(fā)生了改變,所以數(shù)字鐘的程序,也要相應(yīng)的修改。

那么,針對(duì)本電路的程序如下:


//===================================================


#include

#defineucharunsignedchar

#defineuintunsignedint


#defineKEY_IOP3


sbitLCD_RS=P2^0;

sbitLCD_EN=P2^2;


sbitSCK=P2^0;

sbitSDI=P2^1;

sbitRCK=P2^2;


sbitSPK=P1^2;

sbitLED=P2^4;


bitnew_s,modify=0;

chart0,sec=50,min=59,hour=23;


charcodeLCD_line1[]="DesignedbyZELD";

charcodeLCD_line2[]="Timer:00:00:00";

charTimer_buf[]="23:59:50";

//---------------------------------------------------

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)for(y=100;y>0;y--);

}

//---------------------------------------------------

voidwrite_595(uchardate)//寫入595

{

uchari;

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

SCK=0;SDI=date&0x80;

SCK=1;date<<=1;

}

}

//---------------------------------------------------

voidW_LCD_Com(ucharcom)//寫指令

{

write_595(com);LCD_RS=0;//寫入指令

RCK=1;RCK=0;//令595輸出,并用EN輸出一個(gè)高脈沖

}

//---------------------------------------------------

voidW_LCD_Dat(uchardat)//寫數(shù)據(jù)

{

write_595(dat);LCD_RS=1;//寫入數(shù)據(jù)

RCK=1;RCK=0;//令595輸出,并用EN輸出一個(gè)高脈沖

}

//---------------------------------------------------

voidW_LCD_STR(uchar*s)//寫字符串

{

while(*s)W_LCD_Dat(*s++);

}

//---------------------------------------------------

voidW_BUFF(void)//填寫顯示緩沖區(qū)

{

Timer_buf[7]=sec%10+48;Timer_buf[6]=sec/10+48;

Timer_buf[4]=min%10+48;Timer_buf[3]=min/10+48;

Timer_buf[1]=hour%10+48;Timer_buf[0]=hour/10+48;

W_LCD_Com(0xc0+7);W_LCD_STR(Timer_buf);

}

//---------------------------------------------------

ucharread_key(void)

{

ucharx1,x2;

KEY_IO=255;

x1=KEY_IO;

if(x1!=255){

delay(100);

x2=KEY_IO;

if(x1!=x2)return255;

while(x2!=255)x2=KEY_IO;

if(x1==0x7f)return0;

elseif(x1==0xbf)return1;

elseif(x1==0xdf)return2;

elseif(x1==0xef)return3;

elseif(x1==0xf7)return4;

}

return255;

}

//---------------------------------------------------

voidInit()

{

W_LCD_Com(0x38);delay(50);

W_LCD_Com(0x38);delay(50);

W_LCD_Com(0x0c);

W_LCD_Com(0x06);

W_LCD_Com(0x01);delay(50);

W_LCD_Com(0x80);W_LCD_STR(LCD_line1);

W_LCD_Com(0xC0);W_LCD_STR(LCD_line2);


TMOD=0x01;//T0定時(shí)方式1

TH0=0x4c;

TR0=1;//啟動(dòng)T0

PT0=1;//高優(yōu)先級(jí),以保證定時(shí)精度

ET0=1;

EA=1;

}

//---------------------------------------------------

voidmain()

{

uinti,j;

ucharKey;

Init();


while(1){

//-------------------------------

if(new_s){//如果出現(xiàn)了新的一秒,修改時(shí)間

new_s=0;sec++;sec%=60;

if(!sec){min++;min%=60;

if(!min){hour++;hour%=24;}

}

W_BUFF();//寫顯示

//-------------------------------

if(!sec&&!min){//整點(diǎn)報(bào)時(shí)

for(i=0;i<200;i++){

SPK=0;for(j=0;j<100;j++);

SPK=1;for(j=0;j<100;j++);

}}

}

//-------------------------------

Key=read_key();//讀出按鍵

switch(Key){//分別處理四個(gè)按鍵

case0:modify=1;break;

case1:if(modify){min++;min%=60;W_BUFF();break;}

case2:if(modify){hour++;hour%=24;W_BUFF();break;}

case3:modify=0;break;

}}

}

//---------------------------------------------------

voidtimer0(void)interrupt1//T0中斷函數(shù),50ms執(zhí)行一次

{

TH0=0x4c;

t0++;t0%=20;//20,一秒鐘

if(t0==0){new_s=1;LED=~LED;}

if(modify)LED=0;

}

//===================================================


本站聲明: 本文章由作者或相關(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)系本站刪除。
換一批
延伸閱讀

在人工智能的發(fā)展歷程中,我們往往認(rèn)為更多的訓(xùn)練、更復(fù)雜的數(shù)據(jù)能讓 AI 變得更加智能。然而,近期一些研究卻揭示了令人意外的現(xiàn)象:對(duì)小型 AI 語言模型進(jìn)行數(shù)學(xué)訓(xùn)練時(shí),過度訓(xùn)練可能會(huì)導(dǎo)致其表現(xiàn)急劇下降,甚至出現(xiàn) “變笨”...

關(guān)鍵字: 人工智能 數(shù)據(jù) 模型

在當(dāng)今數(shù)字化時(shí)代,汽車不再僅僅是一種交通工具,更是一個(gè)移動(dòng)的智能空間。隨著人們對(duì)汽車電子設(shè)備依賴程度的不斷提高,車內(nèi) USB 接口的重要性也日益凸顯。從最初單純?yōu)槭謾C(jī)充電,到如今支持?jǐn)?shù)據(jù)傳輸、連接各種智能設(shè)備,USB 接...

關(guān)鍵字: 接口 數(shù)據(jù)傳輸 汽車供電

根據(jù)Semico Research的預(yù)測(cè),到2025年RISC-V芯片出貨量將達(dá)到624億顆,覆蓋計(jì)算、消費(fèi)電子和工業(yè)等領(lǐng)域。而在這其中,RISC-V MCU是整個(gè)RISC-V生態(tài)的基本盤,以高質(zhì)量、應(yīng)用驅(qū)動(dòng)的解決方案為...

關(guān)鍵字: 青稞 RISC-V 沁恒 接口 MCU

I2C 總線的起始條件和終止條件通常由主機(jī)產(chǎn)生。起始條件是在 SCL 高電平時(shí),SDA 從高電平轉(zhuǎn)為低電平;而終止條件則是當(dāng) SCL 高電平時(shí),SDA 從低電平轉(zhuǎn)化為高電平。這兩個(gè)條件的準(zhǔn)確識(shí)別對(duì)于 I2C 通信的正確啟...

關(guān)鍵字: I2C 總線 數(shù)據(jù) 協(xié)議

在AI數(shù)據(jù)產(chǎn)業(yè)中,數(shù)據(jù)精準(zhǔn)度=驗(yàn)收合格數(shù)量/全部數(shù)量,這意味極高的精準(zhǔn)度不僅要滿足一些客觀標(biāo)準(zhǔn),還需要與AI項(xiàng)目方的需求深度契合,通過基于需求的驗(yàn)收過程。

關(guān)鍵字: AI 數(shù)據(jù)

基于使用困難報(bào)告系統(tǒng)(SDRS)對(duì)鉆石DA20飛機(jī)的故障數(shù)據(jù)進(jìn)行分析 。基于SDRS系統(tǒng)收集到的數(shù)據(jù) , 結(jié)合故障分類方法 ,對(duì)鉆石DA20飛機(jī)的不同故障進(jìn)行研究 ,并提出相應(yīng)的解決措施 ,有利于提高鉆石DA20飛機(jī)機(jī)隊(duì)...

關(guān)鍵字: SDRS DA20飛機(jī) 故障 數(shù)據(jù)

在當(dāng)今數(shù)字化時(shí)代,數(shù)據(jù)如同流淌在信息高速公路上的血液,驅(qū)動(dòng)著各個(gè)領(lǐng)域的創(chuàng)新與發(fā)展。而在嵌入式視覺領(lǐng)域,高速數(shù)據(jù)傳輸正扮演著越來越關(guān)鍵的角色,它不僅是實(shí)現(xiàn)實(shí)時(shí)、精準(zhǔn)視覺感知的基礎(chǔ),更是開啟未來智能應(yīng)用無限可能的鑰匙。

關(guān)鍵字: 數(shù)據(jù) 視覺 傳輸

在如今數(shù)字化的時(shí)代,SD 卡作為一種常見的存儲(chǔ)設(shè)備,承載著我們大量珍貴的記憶和重要的資料,如精彩的照片、珍貴的視頻以及關(guān)鍵的文檔等。然而,令人頭疼的是,SD 卡數(shù)據(jù)丟失的情況時(shí)有發(fā)生,可能是由于誤刪除、格式化、病毒感染、...

關(guān)鍵字: 內(nèi)存卡 數(shù)據(jù)

NodeMCU是一個(gè)開源物聯(lián)網(wǎng)平臺(tái),包含運(yùn)行在expressif Systems ESP8266 Wi-Fi SoC上的固件,硬件基于ESP-12模塊。NodeMCU的特點(diǎn)之一是可以使用Arduino IDE進(jìn)行簡(jiǎn)單的編...

關(guān)鍵字: GPS NodeMCU ESP8266 接口 物聯(lián)網(wǎng)

如今,我們正處于一個(gè)被無處不在的數(shù)據(jù)及高耗電應(yīng)用所驅(qū)動(dòng)的信息計(jì)算世界中,使得電源管理成為了不同系統(tǒng)、網(wǎng)絡(luò)和軟件所面臨多方面挑戰(zhàn)中的不可忽視的一環(huán)。

關(guān)鍵字: 數(shù)據(jù) 高耗電 電源管理
關(guān)閉