freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

帶有l(wèi)cd的定時鬧鐘單片機課程設(shè)計-在線瀏覽

2024-08-09 13:05本頁面
  

【正文】 拉電阻。程序校驗時需要外接上拉電阻。P1口:P1口是一帶有內(nèi)部上拉電阻的8位雙向I/O口。當對P1口寫1時,它們被內(nèi)部的上拉電阻拉升為高電平,此時可以作為輸入端使用。P2口的輸出緩沖能驅(qū)動4個TTL邏輯門電路。作為輸入口,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(IIL)。在這種情況下,P2口使用強大的內(nèi)部上拉電阻功能當輸出1時。當EPROM編程或校驗時,P2口同時接收高8位地址和一些控制信號。P3口:P3是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。當向P3口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,此時可以用作輸入口。P3口同時具有AT89C52的多種特殊功能,具體如下表1所示:端口引腳第二功能RXD (串行輸入口)TXD(串行輸出口) (外部中斷0)(外部中斷1)T0(定時器0)T1(定時器1)(外部數(shù)據(jù)存儲器寫選通)(外部數(shù)據(jù)存儲器都選通)表1 P3口的第二功能當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期的高電平將使單片機復(fù)位。ALE/:當訪問外部存儲器時,地址鎖存允許是一輸出脈沖,用以鎖存地址的低8位字節(jié)。一般情況下,ALE是以晶振頻率的1/6輸出,可以用作外部時鐘或定時目的。當AT89S52執(zhí)行外部程序存儲器的指令時,每個機器周期兩次有效,除了當訪問外部數(shù)據(jù)存儲器時,將跳過兩個信號。/VPP:外部訪問允許。需要主要的是,如果加密位1被編程,復(fù)位時EA端會自動內(nèi)部鎖存。 電路總體設(shè)計 LCD定時鬧鐘,是以單片機及外圍接口電路為核心硬件,輔以其他外圍硬件電路,用C語言設(shè)計的程序來實現(xiàn)的。由于采用集成芯片性的單片機來制作電子鐘,這樣設(shè)計制作簡單而且功能多、精確度高,也可方便擴充其他功能,實現(xiàn)也十分簡單。而單片機模塊中最常見的正是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更長的使用壽命,因此得到了廣泛的使用。一個基本的數(shù)字鐘電路主要由譯碼顯示器、“時”,“分”,“秒”,“星期”計數(shù)器、校時電路、報時電路和振蕩器組成。1602LCD液晶顯示器介紹為了獲得更好的效果,本設(shè)計并沒有采用常見的LED,而是采用了型號為LM016L(1602)的 LCD。液晶顯示模塊體積小、功耗低、顯示內(nèi)容豐富,現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機應(yīng)用設(shè)計中最常用的信息顯示器件之一了。沒背光,和常用的1602B功能和引腳一樣(除了調(diào)背光的二個線腳)。這樣的話可以節(jié)省MCU的I/O口資源。VDD:電源正極,-,通常使用5V電壓;RS:MCU寫入數(shù)據(jù)或者指令選擇端。R/W為高電平時,讀取數(shù)據(jù);R/W為低電平時,寫入數(shù)據(jù);E:LCD模塊使能信號控制端。D0~D7:8位數(shù)據(jù)總線,三態(tài)雙向。本充電器就是采用4位數(shù)據(jù)傳送方式; LCD1(LM016L)顯示屏引腳說明編號符號引腳說明編號符號引腳說明1VSS電源,接地9D2雙向數(shù)據(jù)口2VDD電源,接+5V10D3雙向數(shù)據(jù)口3VEE電源,LCD亮度調(diào)節(jié)。11D4雙向數(shù)據(jù)口4RS數(shù)據(jù)/命令選擇12D5雙向數(shù)據(jù)口5R/W讀/寫選擇13D6雙向數(shù)據(jù)口6E模塊使能端14D7雙向數(shù)據(jù)口這里用C的單片機程序構(gòu)成了本LCD電子鬧鐘的軟件系統(tǒng)。其中程序的晶振頻率為12MHz,最小計時單位為1/20秒。程序初始化在系統(tǒng)開始通電時,:void TimeInit(){ write_(0x01)。 //設(shè)置現(xiàn)實初始坐標 for(num=0。num++) //顯示時分秒 { write_date(table[num])。 } write_(0x80+0x40+6)。:39。 delay(5)。 write_date(39。)。 write_sfm(4,shi)。 write_sfm(7,fen)。 write_sfm(10,miao)。鬧鈴時間設(shè)定模塊的設(shè)計可參照時間設(shè)定模塊,這里著重闡述鬧鈴判別與處理模塊的設(shè)計問題。當時十位、時個位、分十位、分個位中任一位發(fā)生改變(進位)時,就必須進行鬧鈴判別。具體程序見附錄。要顯示字符時需先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。uchar code table1[]=SET NOW TIME:。uchar code alarm[]=ALARM TIME:。uchar code alarmon[]=ALARM TIME: ON。 //(以下的 sbit 命令以此類推)sbit lcdrs=P3^0。sbit K1=P1^0。sbit K3=P1^2。sbit beep=P2^6。char miao,shi,fen,ashi,afen。 for(x=z。x)for(y=110。y)。 delay(100)。}void write_(uchar ) //寫命令函數(shù){ lcdrs=0。 lcden=0。 delay(5)。 delay(5)。 }void write_date(uchar date) //寫數(shù)據(jù)函數(shù){ lcdrs=1。 lcden=0。 delay(5)。 delay(5)。}void write_sfm(uchar add,uchar date) //寫時間函數(shù){ uchar shi,ge。 ge=date%10。 write_date(0x30+shi)。}void TimeInit() //顯示時間初始化{ write_(0x01)。 for(num=0。num++) { write_date(table[num])。 } write_(0x80+0x40+6)。:39。 delay(5)。 write_date(39。)。 write_sfm(4,shi)。 write_sfm(7,fen)。 write_sfm(10,miao)。}void SetNowTime() //設(shè)置當前時間{ if(K1==0) { delay(5)。 di()。 if(shi==24) shi=0。 write_(0x80+0x40+4)。 if(K2==0) { while(!K2)。 fen++。 write_sfm(7,fen)。 } } if(K3==0) { delay(5)。 di()。 TR0=1。 } } }void SetAlarmTime() //設(shè)置鬧鐘時間{ flag=0。 if(K1==0) { while(!K1)。 ashi++。 write_sfm(4,ashi)。 } } if(K2==0) { delay(5)。 di()。 if(afen==60) afen=0。 write_(0x80+0x40+7)。 if(K3==0) { while(!K3)。 k3num=0。 flag=1。 } } }void DisplayAlarmTime() //顯示鬧鐘函數(shù){ write_(0x01)。 for(num=0。num++) { write_date(alarm[num])。 } write_(0x80+0x40+6)。:39。 delay(5)。 write_(0x80+0x40+4)。 write_(0x80+0x40+7)。 if(K1==0) { TR0=0。 di()。 } } if(k1num!=0) { write_(0x80)。num13。 delay(5)。 } else { if(K2==0) { delay(5)。 di()。 } } if(k2num==1) { EA=0。 k2num=2。 EA=1。 } else { if(K3==0) { delay(5)。 di()。 write_(0x01)。 write_(0x80)。num15。 delay(5)。 write_date(39。)。 write_sfm(4,ashi)。 write_sfm(7,afen)。 SetAlarmTime()。 if(K4==0) {
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1