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

正文內(nèi)容

基于單片機(jī)at89c52的電子萬(wàn)年歷的設(shè)計(jì)—(更新版)

  

【正文】 RS P1_1 define R_W P1_3 define E P1_2 define PSB P1_0 void delay(unsigned int cont) {unsigned char j。R_W=1。E=1。 data_bus=datas。 //地址歸位 delay(50)。 write_order(0X06)。 unsigned char over_flag=0。row=row4。v39。 } } void puts_data(unsigned char row,unsigned char line,unsigned char cont,unsigned int number)//輸出數(shù)據(jù)(暫為四位) { code unsigned char *p=0123456789。line=line+8。 temp[0]=number/1000。write_data(*q)。 unsigned char shuzu1[]={0,0,0,0,0,0,0,0,0,0,0,0,0}。 i 0。SCL = 0。 for(i = 0。 delay(8)。delay(5)。 return(DS1302_BCD_to_DEC(temp))。 DS1302_start()。 unsigned int num=0,temp1=0,temp2=0。 set_ds1302(day,0x86)。 delay(100)。 puts_data(1,7,2,day)。 case 3: puts_char(3,2,星期叁 ov)。 電子萬(wàn)年歷 的設(shè)計(jì) 35 case 7: puts_char(3,2,星期天 ov)。 case 2: puts_char(3,6,馬年 ov)。 case 6: puts_char(3,6,狗年 ov)。 case 10: puts_char(3,6,虎年 ov)。 puts_char(1,1, ov)。break。break。break。shuzu1[i]=CY。 yinli_mon=i。 }} if(guanxibiao[year][3]/16!=0) { i=1。 m=0。 yinli_mon=i1。 yinli_mon=i1。 case 2: puts_char(4,7,廿 ov)。 case 6: puts_char(4,7,六 ov)。 default: break。break。break。break。 case 7: puts_char(4,7,七 ov)。 case 3: puts_char(4,7,叁 ov)。 } else a=a30。 } else a=a30。 } 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 38 } if(i==guanxibiao[year][3]/16+1) //閏月顯示 { if(guanxibiao[year][3]%16==1) { if(a=29) { yinli_day=a。 while(m) { if(i=guanxibiao[year][3]/16) { if(shuzu1[i]==1) { if(a=29) { yinli_day=a。 } else a=a29。i0。 } temp1=guanxibiao[year][1]。break。break。break。 case 11: puts_char(3,6,兔年 ov)。 case 7: puts_char(3,6,豬年 ov)。 case 3: puts_char(3,6,羊年 ov)。 } year=read_ds1302(0x8d)。 case 4: puts_char(3,2,星期四 ov)。 puts_data(1,5,2,mon)。 puts_data(2,6,2,sec)。set_ds1302(week,0x8a)。screen_int()。delay(10)。DS1302_writebyte(adress)。 else temp=tempamp。delay(8)。 i++) { SCL = 0。 } ///////////////////////DS1320 結(jié)束 void DS1302_stop() { RST = 0。} } ////////////////////////BCD 碼轉(zhuǎn)十進(jìn)制 unsigned char DS1302_BCD_to_DEC(unsigned char BCD) { unsigned char temp。 pingnian[]={0,31,59,90,120,151,181,212,243,273,304,334,365}。 sbit SCL=P1^6。 temp[2]=number%100/10。line=line+8。 unsigned char *q。 else {write_data(*p)。 star_site=star_site|line。 if(row==3) {row=1。delay(50)。 //整體顯示。 E=0。 delay(50)。 while(data_busamp。 for(i=0。 顯示的年限過(guò)短,只能顯示 2021 年 — 2100 年之間的部分。在程序加入了農(nóng)歷子程序后,農(nóng)歷不能正常顯示。經(jīng)過(guò)認(rèn)真分析時(shí)序,最后終于編寫(xiě)出了 DS1302 的正確程序。 圖 DS1302 實(shí)物圖 LCD12864 顯示電路的測(cè)試結(jié)果及其分析 液晶顯示電路的連接很簡(jiǎn)單,很容易焊接。 硬件電路實(shí)物圖 見(jiàn)附錄三 。 表 41 2021 年的陰歷與陽(yáng)歷對(duì)應(yīng)關(guān)系表 月份 1 2 3 4 5 6 7 8 9 10 11 12 閏 2月 大小 小 大 大 大 小 大 小 大 小 大 小 大 小 二進(jìn)制 1 0 0 0 1 0 1 0 1 0 1 0 1 天數(shù) 29 30 30 30 29 30 29 30 29 30 29 30 30 十六進(jìn)制 4 2 5 2 21 2021 年春節(jié)和元旦相差 21天,這樣 2021 年的信息表示為: 21, 42H,52H,21H。推算方法是,根據(jù)陽(yáng)歷當(dāng)前日期在一年中的天數(shù)來(lái)計(jì)算陰歷日期。在首次對(duì) DS1302 進(jìn)行操作前,必須對(duì)它進(jìn)行初始化,然后從 DS1302 中讀出數(shù)據(jù),再經(jīng)過(guò)處理后,送給顯示模塊單元。由該模塊構(gòu)成的液晶顯示方案與同類(lèi)型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。如圖 DS1302 的晶振電路。 圖 DS1302 引腳圖 控制字節(jié)的最高有效位 (位 7)必須是邏輯 1,如果它為 0,則不能把數(shù)據(jù)寫(xiě)入DS1302 中,位 6 如果為 0,則表示存取日歷時(shí)鐘數(shù)據(jù),為 1 表示存取 RAM 數(shù)據(jù) 。 圖 單片機(jī) 復(fù)位電路 時(shí)鐘電路 的設(shè)計(jì) 與計(jì)算 電路選擇 時(shí)鐘電路的 晶體振蕩器 與單片機(jī) 的 晶振一樣, 兩端分別接兩個(gè)電容,來(lái)對(duì)晶振信號(hào) 退耦 。 如 EA 端為高電平(接 Vcc 端), CPU 則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。當(dāng)振蕩器工作時(shí), RST 引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。程序校驗(yàn)時(shí),需要外部上拉電阻 。掉電保護(hù)方式下, RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 如圖 。顯示模塊使用的點(diǎn)陣式數(shù)碼管的價(jià)格相對(duì)較高。 I/O 口功能也比較強(qiáng)大,方便使用。 本方案的系統(tǒng)框圖如圖 。 電子萬(wàn)年歷的出現(xiàn)給人們的生活 與工作 帶來(lái)了諸多的方便,具有讀取方便、顯示直觀 , 功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),具有廣闊的市場(chǎng)前景。人機(jī)口由 4 個(gè)按鍵來(lái)實(shí)現(xiàn), 通過(guò) 這四個(gè)按鍵 可 對(duì)時(shí)間、日期進(jìn)行 人為的自由 調(diào)整。 電子萬(wàn)年歷是實(shí)現(xiàn)對(duì)陽(yáng)歷的 日期和時(shí)間 以及 陰 歷 的日期 顯示的計(jì)時(shí)裝置 。 關(guān)鍵 詞 : 萬(wàn)年歷; AT89C52; DS1302; LCD12864 Abstract In contemporary busy work and life, time and every one has a very close relationship, everyone is the influence of the time, the emergence of electronic calendar to people39。 任務(wù)分析: 實(shí)現(xiàn)對(duì)陽(yáng)歷時(shí)間、日期及陰歷日期的顯示,需要單片 機(jī)的控制,并通過(guò)顯示模塊進(jìn)行顯示。 采用點(diǎn)陣式數(shù)碼管顯示 ,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合 。 采用 LED數(shù)碼管動(dòng)態(tài)掃描 ,LED數(shù)碼管價(jià)格適中 ,對(duì)于顯示數(shù)字最合適 ,而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí) ,占用的單片機(jī)口線少 。 綜上各所述 ,本 次 設(shè)計(jì)將選擇方案一:基于 AT89C52 的電子萬(wàn)年歷的設(shè)計(jì)。片上 Flash 允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。作為輸出口,每位能驅(qū)動(dòng) 8個(gè)TTL邏輯電平。對(duì) P1 端口寫(xiě) “1” 時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以電子萬(wàn)年歷 的設(shè)計(jì) 7 作為輸入口使用。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè) ALE脈沖。如圖 所示為晶振電路連接圖。采用三線接口與 CPU 進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信 號(hào)或 RAM 數(shù)據(jù)。 在控制指令字輸入后的下一個(gè) SCLK 時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入 DS1302,數(shù)據(jù)輸入從低位即位 0開(kāi)始。 顯示部分電路圖如圖 所示。 圖 寫(xiě)數(shù)據(jù) ( 8位數(shù)據(jù)線模式) 電子萬(wàn)年歷 的設(shè)計(jì) 13 LCD12864 讀數(shù)據(jù)的時(shí)序圖如圖 。在調(diào)節(jié)時(shí)間過(guò)程中,逃調(diào)整的位與其他的位應(yīng)該有區(qū)別, 所以增加了漢字顯示提示功能,即調(diào)整的位有相應(yīng)的漢字提示。如果把一個(gè)只 有 29天的月稱(chēng)為小月,用 1標(biāo)志,把 30 天的月稱(chēng)為大月,用 0標(biāo)志,那么 12位二進(jìn)制就能表示一年 12 個(gè)月的大小。按此方法, 100 年的陽(yáng)歷和陰歷對(duì)應(yīng)關(guān)系表共使用 400 字節(jié)。給單片機(jī)最小系統(tǒng)上電,用萬(wàn)用表電壓檔測(cè)試單片機(jī)各引腳輸出電壓 是否正常 ,電壓表的讀數(shù)如圖 所示 。 測(cè)試滑動(dòng)變阻器能否調(diào)節(jié)顯示屏亮度。 將編寫(xiě)好的程序燒入單片機(jī)中進(jìn)行檢查。修改后,顯示正常,如圖 。 由于使用的是 C 語(yǔ)言進(jìn)行的編程,所以整個(gè)程序顯得很臃腫,在現(xiàn)有的程序設(shè)計(jì)基礎(chǔ)上,還可以進(jìn)行精簡(jiǎn)。j10。 } void write_order(unsigned char mand) { cheak_busy()。RS=1。 write_order(0X30)。 //設(shè)定起始顯示位置 delay(50)。delay(5000)。line=line+8。o39。p++。 if(cont=5)return。row=row4。for(i=4cont。 sbit key2=P2^1。 extern int year=12,a=0,b=0。temp += BCD % 16。 } //////////////////////DS1602 寫(xiě)一個(gè)字節(jié) void DS1302_writebyte(unsigned char da) { unsigned char i。SDA = CY。 for(i=0。 SCL=1。DS1302_stop()。delay(50)。 i++) { set_ds1302(sec,0x80)。puts_char(2,3, :ov)。 hour=read_ds1302(0x85)。 break。 break。break。break。break。 } //陽(yáng)歷轉(zhuǎn)陰歷 if(year%4==0){num=runnian[mon1]+day。 case 3: puts_char(4,4, 叁 ov)。 case 7: puts_char(4,4, 七 ov)。 case 11: puts_char(4,4, 冬 ov)。 //a 為當(dāng)前日期在陰歷中的第幾天 for(i=6。 } if(guanxibiao[year][3]/16==0) { i=1。 m=0。 }else a=a29。m=0。 m=0。break。break。break。 case 2: puts_char(4,8,二 ov)。 c
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1