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

正文內(nèi)容

單片機定時計數(shù)器設(shè)計方案(完整版)

2025-05-31 13:37上一頁面

下一頁面
  

【正文】 /EA將內(nèi)部鎖定為RESET;當(dāng)/EA端口保持高電平時,此間內(nèi)部程序存儲器。如想禁止ALE的輸出可在SFR8EH地址上置0。P3口也可作為AT89C51的一些特殊功能口,如下表所示:備選功能 RXD(串行輸入口) TXD(串行輸出口) /INT0(外部中斷0) /INT1(外部中斷1) T0(記時器0外部輸入) T1(記時器1外部輸入) /WR(外部數(shù)據(jù)存儲器寫選通) /RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。VCC:供電電壓。主要硬件有AT89S52單片機、字符型液晶顯示模塊HY1602A和若干按鍵等。定時開關(guān)的設(shè)置分為單次操作(2011年6月25日8:00開2011年6月26日18:00關(guān)),周期操作(如周三8:00 開,周四16:00關(guān))??紤]到本次設(shè)計的目的,采用方案二,并加入了年月日的擴展,由于時間和精力有限年月日只是進(jìn)行簡單的模擬,沒有精確的進(jìn)行計算。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS51指令集和輸出管腳相兼容。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。該反向放大器可以配置為片內(nèi)振蕩器。在閑置模式下,CPU停止工作。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶屏。,對比度可調(diào)內(nèi)含復(fù)位電路提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM內(nèi)建有192個5X7點陣的字型的字符發(fā)生器CGROM8個可由用戶自定義的5X7的字符發(fā)生器CGRAM3 軟件設(shè)計 軟件設(shè)計思路 實現(xiàn)功能用AT89S52單片機,在1602LCD上顯示年月日、星期、時分秒。我們用定時器0工作在方式1狀態(tài),每次計數(shù)50000次,如此進(jìn)行20次,即可湊夠一秒鐘。下面具體具體介紹按鍵和LED的功能:K1為時間的小時設(shè)定鍵,按下后將進(jìn)入時間的設(shè)定,按K1是對時間小時的設(shè)定。由于本人能力和時間有限,只能暫時實現(xiàn)本既定方案。sbit K5=P1^4。sbit led=P2^3。y)。 }void write_date(uchar date) //液晶寫數(shù)據(jù)函數(shù){ rs=1。 shi=date%100/10。 write_(0x80+add)。 write_(0x80+add)。 //K2按鍵被按下的標(biāo)記變量 K3num=0。 //系統(tǒng)啟動時,鬧鐘時間到發(fā)出的聲音為連續(xù)三次發(fā)出“嘩”的一聲 miao=0。 //1602液晶初始化,設(shè)置16*2顯示。// delay(10)。)。)。 //開定時器0中斷 TR0=1。 //關(guān)閉計數(shù)器0 write_(0x80+0x40+9)。 write_(0x80+0x40+9)。amp。 write_sfm(8,fen2)。 //光標(biāo)定位到小時位置 K1num=1。K1num==1) //判K2按下,修改系統(tǒng)時間的分鐘 { delay(5)。 //顯示位置重新回到調(diào)節(jié)處 } } if(K6==0amp。 //送去液晶顯示定時的分,時 write_sfm1(9,Month)。 //光標(biāo)定位到小時位置 K6num=1。K6num==1) //判K2按下,修改系統(tǒng)時間的分鐘 { delay(5)。 //顯示位置重新回到調(diào)節(jié)處 } } if(K8==0amp。//若滿60后將清零 write_sfm1(12,Day)。 write_(0x0c)。amp。 //送去液晶顯示定時的分,時 write_sfm(5,shi1)。K3num==0amp。 while(!K2)。 //光標(biāo)定位到小時位置 K3num=2。K3num==2) //卸螷2按下,修改鬧鐘時間的分鐘 { delay(5)。 //顯示位置重新回到調(diào)節(jié)處 } } if(K6==0amp。 write_sfm2(5,Year1)。 Month1++。 //光標(biāo)定位到分鐘位置 K3num=6。K3num==6) //修改小時,判斷K1鍵按下,K3num=1,表示K3按鍵按下,則此時修改的是鬧鐘時間的小時 { delay(5)。 //顯示位置重新回到調(diào)節(jié)處 } } if(K2==0amp。 write_sfm(8,fen2)。 Year2++。 //光標(biāo)定位到分鐘位置 K3num=12。K3num==12) //卸螷2按下,修改鬧鐘時間的分鐘 { delay(5)。 //顯示位置重新回到調(diào)節(jié)處 } K3num=0。flag3) //K4按下設(shè)置鬧鐘的狀態(tài)為ON或OFF,flag3=1,表示鬧鐘此時沒響起。 dan=0。 dan2=0。(K4num==1)amp。Day1==Day) //鬧鐘的響鬧控制 { beep=1。amp。amp。amp。amp。(shi==shi2)amp。Year2==Yearamp。//初始化子程序 while(1) { keyscan()。 if(flag1==1) {write_sfm(11,miao)。 } if(Day==30)//滿一個月(先判斷當(dāng)月最大天數(shù)) { Day=1。} if(flag1==1) {write_sfm2(4,Year)。} if(Month12) //滿一年 { Month=1。 fen++。 }}void time0() interrupt 1 //定時器0中斷服務(wù)程序{ TH0=(6553650000)/256。Month2==Monthamp。(flag2==1)amp。amp。amp。 //此時鬧鐘響起,發(fā)出嘩的一聲 relay=0。amp。 //鬧鐘時間到,則繼電器啟動 flag3=1。dan1==1amp。 } }}}void clock() // 鬧鐘函數(shù) K4—鬧鈴ON/OFF的狀態(tài)設(shè)置,設(shè)置為ON時連續(xù)三次發(fā)出“嘩”的一聲,設(shè)置為OFF發(fā)出“嘩”的一?{ if((fen==fen1)amp。 } }} if( K5==0) {delay(10)。 { delay(10)。amp。 //光標(biāo)定位到分鐘位置 K3num=8。 Month2++。 write_sfm2(4,Year2)。 //顯示位置重新回到調(diào)節(jié)處 } } if(K1==0amp。K3num==7) //卸螷2按下,修改鬧鐘時間的分鐘 { delay(5)。 //光標(biāo)定位到小時位置 K3num=7。 Day1++。 write_sfm1(9,Month1)。 //顯示位置重新回到調(diào)節(jié)處 } } if(K7==0amp。K3num==3) //修改小時,判斷K1鍵按下,K3num=1,表示K3按鍵按下,則此時修改的是鬧鐘時間的小時 { delay(5)。 //光標(biāo)定位到分鐘位置 K3num=3。 shi1++。 //K2松開顯示當(dāng)前時間 write_sfm(5,shi)。m==1) //K2被按下時顯示定時時間 { delay(5)。 write_sfm(8,fen)。amp。 //啟動定時器使時鐘開始走 flag1=1
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1