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

正文內(nèi)容

電氣工程及其自動(dòng)化單片機(jī)課程設(shè)計(jì)-其他專業(yè)-資料下載頁(yè)

2025-01-19 03:09本頁(yè)面

【導(dǎo)讀】芯片74LS164等元器件組成。具體介紹應(yīng)用protell軟件進(jìn)行單片機(jī)系統(tǒng)的電子鐘設(shè)計(jì)與仿。該方法既能準(zhǔn)確驗(yàn)證所設(shè)計(jì)的系統(tǒng)是否滿足技術(shù)要求,又能提高系統(tǒng)設(shè)計(jì)的效。率和質(zhì)量,降低開發(fā)成本,具有推廣價(jià)值。隨著電子技術(shù)的發(fā)展,人類不斷研究,不斷創(chuàng)新紀(jì)錄。萬(wàn)年歷目前已經(jīng)不再局限于以書。以電腦軟件或者電子產(chǎn)品形式出現(xiàn)的萬(wàn)年歷被稱為電子萬(wàn)年歷。目前市場(chǎng)上各式各樣的電子時(shí)鐘數(shù)不勝數(shù),但多數(shù)是只針對(duì)時(shí)間顯示,功能單。一不能滿足人們?nèi)粘I钚枨?。為主控核心,與時(shí)鐘芯片DS1302、按鍵、LED顯示等模塊組成硬件系統(tǒng)。等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。隨著國(guó)內(nèi)超大規(guī)模集成電路的出現(xiàn),微處理器及其外圍芯片有了迅速的發(fā)展。性特征,不須改變硬件系統(tǒng)就能適當(dāng)?shù)馗淖兿到y(tǒng)功能。采用傳統(tǒng)的AT89C51作為電機(jī)的控制核心。熟和成本低等優(yōu)點(diǎn),使其在各個(gè)領(lǐng)域應(yīng)用廣泛。

  

【正文】 write_ds1302(0x8e,0x80)。 //寫保護(hù)控制字,禁止寫 } /*********以下是蜂鳴器響一聲函數(shù) ********/ void beep() { BEEP=0。 //蜂鳴器響 Delay_ms(100)。 BEEP=1。 //關(guān)閉蜂鳴器 Delay_ms(100)。 } /********以下是轉(zhuǎn)換函數(shù) ,負(fù)責(zé)將走時(shí)數(shù)據(jù)轉(zhuǎn)換為適合 LCD 顯示的數(shù)據(jù) ********/ void LCD_conv (uchar in1,in2,in3 ) //形參 in in in3 接收實(shí)參 time_buf[2]、 time_buf[1]、 time_buf[0]傳來(lái)的小時(shí)、分鐘、秒數(shù)據(jù) { disp_buf[0]=in1/10+0x30。 //小時(shí)十位數(shù)據(jù) disp_buf[1]=in1%10+0x30。 //小時(shí)個(gè)位數(shù)據(jù) disp_buf[2]=in2/10+0x30。 //分鐘十位數(shù)據(jù) disp_buf[3]=in2%10+0x30。 //分鐘個(gè)位數(shù)據(jù) disp_buf[4]=in3/10+0x30。 //秒十位數(shù)據(jù) disp_buf[5]=in3%10+0x30。 //秒個(gè)位數(shù)據(jù) } 18 /********以下是 LCD 顯示函數(shù),負(fù)責(zé)將函數(shù) LCD_conv 轉(zhuǎn)換后的數(shù)據(jù)顯示在 LCD 上 ********/ void LCD_disp () { lcd_wcmd(0x44 | 0x80)。 //從第 2 行第 4 列開始顯示 lcd_wdat(disp_buf[0])。 //顯示小時(shí)十位 lcd_wdat(disp_buf[1])。 //顯示小 時(shí)個(gè)位 lcd_wdat(0x3a)。 //顯示 39。:39。 lcd_wdat(disp_buf[2])。 //顯示分鐘十位 lcd_wdat(disp_buf[3])。 //顯示分鐘個(gè)位 lcd_wdat(0x3a)。 //顯示 39。:39。 lcd_wdat(disp_buf[4])。 //顯示秒十位 lcd_wdat(disp_buf[5])。 //顯示秒個(gè)位 } /********以 下是按鍵處理函數(shù) ********/ void KeyProcess() { uchar min16,hour16。 //定義 16 進(jìn)制的分鐘和小時(shí)變量 write_ds1302(0x8e,0x00)。 //DS1302 寫保護(hù)控制字,允許寫 write_ds1302(0x80,0x80)。 //時(shí)鐘停止運(yùn)行 if(K2==0) //K2 鍵用來(lái)對(duì)小時(shí)進(jìn)行加 1 調(diào)整 { Delay_ms(10)。 //延時(shí)去抖 if(K2==0) { while(!K2)。 //等待 K2 鍵釋放 beep()。 time_buf[2]=time_buf[2]+1。 //小時(shí)加 1 if(time_buf[2]==24) time_buf[2]=0。 //當(dāng)變成 24 時(shí)初始化為 0 hour16=time_buf[2]/10*16+time_buf[2]%10。 //將所得的小時(shí)數(shù)據(jù)轉(zhuǎn)變成 16 進(jìn)制數(shù)據(jù) write_ds1302(0x84,hour16)。 //將調(diào)整后的小時(shí)數(shù)據(jù)寫入 DS1302 } } if(K3==0) // K3 鍵用來(lái)對(duì)分鐘進(jìn)行加 1 調(diào)整 { Delay_ms(10)。 //延時(shí)去抖 if(K3==0) { while(!K3)。 //等待 K3 鍵釋放 beep()。 time_buf[1]=time_buf[1]+1。 //分鐘加 1 if(time_buf[1]==60) time_buf[1]=0。 //當(dāng)分鐘加到 60 時(shí)初始化為 0 min16=time_buf[1]/10*16+time_buf[1]%10。 //將所得的分鐘數(shù)據(jù)轉(zhuǎn)變成 16 進(jìn)制數(shù)據(jù) write_ds1302(0x82,min16)。 //將調(diào)整后的分鐘數(shù)據(jù)寫入 DS1302 } } if(K4==0) //K4 鍵是確認(rèn)鍵 19 { Delay_ms(10)。 //延時(shí)去抖 if(K4==0) { while(!K4)。 //等待 K4 鍵釋放 beep()。 write_ds1302(0x80,0x00)。 //調(diào)整完畢后,啟動(dòng)時(shí)鐘運(yùn)行 write_ds1302(0x8e,0x80)。 //寫保護(hù)控制字,禁止寫 K1_FLAG=0。 //將 K1 鍵按下標(biāo)志位清 0 } } } /********以下是讀取時(shí)間函數(shù) ,負(fù)責(zé)讀取當(dāng)前的時(shí)間 ,并將讀取到的時(shí)間轉(zhuǎn)換為 10 進(jìn)制數(shù) ********/ void get_time() { uchar sec,min,hour。 //定義秒、分和小時(shí)變量 write_ds1302(0x8e,0x00)。 //控制命令 ,WP=0,允許寫操作 write_ds1302(0x90,0xab)。 //涓流充電控制 sec=read_ds1302(0x81)。 //讀取秒 min=read_ds1302(0x83)。 //讀取分 hour=read_ds1302(0x85)。 //讀取時(shí) time_buf[0]=sec/16*10+sec%16。 //將讀取到的 16 進(jìn)制數(shù)轉(zhuǎn)化為 10 進(jìn)制 time_buf[1]=min/16*10+min%16。 //將讀取到的 16 進(jìn)制數(shù)轉(zhuǎn)化為 10 進(jìn)制 time_buf[2]=hour/16*10+hour%16。 //將讀取到的 16 進(jìn)制數(shù)轉(zhuǎn)化為 10 進(jìn)制 } /********以下是主函數(shù) ********/ void main(void) { uchar i。 P0 = 0xff。 P2 = 0xff。 lcd_init()。 //LCD 初始化函數(shù)(在 LCD 驅(qū)動(dòng)程序軟件包中) lcd_clr()。 //清屏函數(shù)(在 LCD 驅(qū)動(dòng)程序軟件包中) lcd_wcmd(0x00|0x80)。 //設(shè)置顯示位置為第 1 行第 0 列 i = 0。 while(line1_data[i] != 39。\039。) //在第 1 行顯示 LCD Clcok { lcd_wdat(line1_data[i])。 //顯示第 1 行字符 i++。 //指向下一字符 } lcd_wcmd(0x40|0x80)。 //設(shè)置顯示位置為第 2 行第 0 列 i = 0。 while(line2_data[i] != 39。\039。) //在第 2 行 0~3 列顯示 **** { lcd_wdat(line2_data[i])。 //顯示第 2 行字符 20 i++。 //指向下一字符 } lcd_wcmd(0x4c|0x80)。 //設(shè)置顯示位置為第 2 行第 12 列 i = 0。 while(line2_data[i] != 39。\039。) //在第 2 行 12 列之后顯示 **** { lcd_wdat(line2_data[i])。 //顯示第 2 行字符 i++。 //指向下 一字符 } init_ds1302()。 //DS1302 初始化 while(1) { get_time()。 //讀取當(dāng)前時(shí)間 if(K1==0) //若 K1 鍵按下 { Delay_ms(10)。 //延時(shí) 10ms 去抖 if(K1==0) { while(!K1)。 //等待 K1 鍵釋放 beep()。 //蜂鳴器響一聲 K1_FLAG=1。 //K1 鍵標(biāo)志位置 1,以便進(jìn)行時(shí)鐘調(diào)整 } } if(K1_FLAG==1)KeyProcess()。 //若 K1_FLAG 為 1,則進(jìn)行走時(shí)調(diào)整 LCD_conv(time_buf[2],time_buf[1],time_buf[0])。 //將 DS1302 的小時(shí) /分 /秒傳送到轉(zhuǎn)換函數(shù) LCD_disp()。 //調(diào) LCD 顯示函數(shù) ,顯示小時(shí)、分和秒 } }
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1