九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

湖南大學(xué)基于ADUC848單片機(jī)多功能定時(shí)裝置(電子時(shí)鐘)設(shè)計(jì).doc

  • 資源ID:9436138       資源大?。?span id="24d9guoke414" class="font-tahoma">485.50KB        全文頁數(shù):40頁
  • 資源格式: DOC        下載積分:9.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

湖南大學(xué)基于ADUC848單片機(jī)多功能定時(shí)裝置(電子時(shí)鐘)設(shè)計(jì).doc

湖南大學(xué)電氣與信息工程學(xué)院本科生課程設(shè)計(jì) 題目: 電子時(shí)鐘 課程:?jiǎn)纹瑱C(jī)課程設(shè)計(jì) 專業(yè):電子信息工程 班級(jí): 學(xué)號(hào): 姓名: 指導(dǎo)老師: 設(shè)計(jì)時(shí)間: 第一章 緒論1.1 課程設(shè)計(jì)目的學(xué)習(xí)單片機(jī)原理,并設(shè)計(jì)電子時(shí)鐘。1.2 課程任務(wù)設(shè)計(jì)的電子時(shí)鐘具有以下功能:(1) 、選擇LCD顯示,可顯示年、月、日、時(shí)、分、秒。(2) 、會(huì)使用實(shí)時(shí)鐘芯片DS1307。(3) 、選擇蜂鳴器電路,實(shí)現(xiàn)鬧鐘設(shè)置和報(bào)警功能。(4) 、選擇按鍵功能,設(shè)計(jì)實(shí)現(xiàn)時(shí)鐘校正功能。(5) 、上電或RESET后能自動(dòng)顯示當(dāng)前時(shí)間(時(shí):分:秒)。1.3 課程設(shè)計(jì)要求(1)、畫出硬件原理圖。(2)、采用單片機(jī)C語言或匯編語言進(jìn)行編程。(3)、完成硬件與軟件調(diào)試綜合調(diào)試,實(shí)現(xiàn)預(yù)定功能,并寫出 課程設(shè)計(jì)報(bào)告。1.4 課程設(shè)計(jì)意義通過自己動(dòng)手設(shè)計(jì)制作單片及組成的器件,深入了解了單片機(jī)的實(shí)際應(yīng)用,能更深地理解課堂上所學(xué)的內(nèi)容,使得單調(diào)的理論知識(shí)與實(shí)際聯(lián)系起來,幫助我們更好的理解。第2章 設(shè)計(jì)原理及總體方案選擇2.1 基本功能簡(jiǎn)述電子時(shí)鐘,通過DS1307芯片提供實(shí)時(shí)時(shí)鐘,并通過LCD12864顯示。DS1307是低功耗、兩線制串行讀寫接口、日歷和時(shí)鐘數(shù)據(jù)按BCD碼存取得時(shí)鐘/日歷芯片。它提供秒、分、小時(shí)、星期、日期、月和年等時(shí)鐘日歷數(shù)據(jù)。除此之外,還具有跑表和鬧鐘的功能。跑表是通過中斷實(shí)現(xiàn),鬧鐘由蜂鳴器實(shí)現(xiàn)并以歌曲為鬧鈴實(shí)現(xiàn)。本電子時(shí)鐘是由ADUC848芯片、時(shí)鐘與復(fù)位電路、選擇按鍵輸入電路、音頻發(fā)生器、音頻放大器和揚(yáng)聲器、LCD顯示模塊和DS1307芯片這七部分組成。圖2.1 電子時(shí)鐘設(shè)計(jì)框圖 2.2 樂理基礎(chǔ)與發(fā)聲原理簡(jiǎn)述 在音樂中使用的各個(gè)固定頻率的音叫音級(jí)。常用符號(hào)C、D、E、F、G、A、B、c、d、e、a1、b1、c2、d2表示,它們對(duì)應(yīng)于鋼琴上的白鍵。兩音之間音高的距離叫音程。在上述音級(jí)中,E與F、B與C之間音高的距離僅為其它相鄰音級(jí)之間距離的一半,稱它們之間的音程為半音音程,而稱其它相鄰各音之間的距離為全音音程。在這些全音音程之間又加入新的半音音級(jí),用符號(hào)C、D、F、G、A、c、d、f、表示,對(duì)應(yīng)于鋼琴上的黑鍵。音持續(xù)時(shí)間的長(zhǎng)短即時(shí)值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。表2.1 各音符及對(duì)應(yīng)頻率音符低DO低#DO低RE低#RE低MI低EA簡(jiǎn)譜碼DO_LDO#_LRE_LRE#_LMI_LFA_L頻率262HZ277HZ294HZ311HZ330HZ349HZ音符低#FA低SO低#SO低LA低#LA低SI簡(jiǎn)譜碼FA#_LSO_LSO#_LLA_LLA#_LSI_L頻率370HZ393HZ415HZ440HZ466HZ494HZ音符中DO中#DO中RE中#RE中MI中EA簡(jiǎn)譜碼DODO#RERE#MIFA頻率523HZ554HZ587HZ622HZ659HZ698HZ音符中#FA中SO中#SO中LA中#LA中SI簡(jiǎn)譜碼FA#SOSO#LALA#SI頻率740HZ785HZ831HZ880HZ932HZ988HZ音符高DO高#DO高RE高#RE高M(jìn)I高EA簡(jiǎn)譜碼DO_HDO#_HRE_HRE#_HMI_HFA_H頻率1047HZ1109HZ1174HZ1245HZ1318HZ1397HZ音符高#FA高SO高#SO高LA高#LA高SI簡(jiǎn)譜碼FA#_HSO_HSO#_HLA_HLA#_HSI_H頻率1480HZ1568HZ1661HZ1760HZ1865HZ1976HZ 每個(gè)音符分為簡(jiǎn)譜碼和節(jié)拍碼。簡(jiǎn)譜碼為D0-L到SI-H。 在此設(shè)計(jì)程序中,包括了兩個(gè)數(shù)據(jù)表,它們分別存放了已經(jīng)計(jì)算好的、各種音符頻率所對(duì)應(yīng)的、半周期的定時(shí)時(shí)間初始值的高八位和低八位。有了這些數(shù)據(jù),單片機(jī)就可以演奏從低音、中音、高音,三個(gè)八度的音符。在播放樂曲時(shí),單片機(jī)根據(jù)音符的不同數(shù)值,從表中找到定時(shí)時(shí)間初始值,送入定時(shí)器即可控制音調(diào)。此外樂曲的數(shù)據(jù)也要寫個(gè)數(shù)據(jù)表,在此設(shè)計(jì)程序中名為:code unsigned char Data_Sheet,表中每三個(gè)數(shù)字代表一個(gè)音符,它們分別為: 第一個(gè)數(shù)字是音符的數(shù)值1234567之一,代表Do、Re、Mi.; 第二個(gè)數(shù)字是012之一,代表低音、中音、高音; 第三個(gè)數(shù)字是時(shí)間長(zhǎng)度,此實(shí)驗(yàn)程序以半拍為單位。 樂曲數(shù)據(jù)表的結(jié)尾處為三個(gè)0,在程序中作為結(jié)束標(biāo)志。流程圖為:鬧鐘主程序流程圖中斷1中斷子程序流程圖:2.3 LCD原理簡(jiǎn)述 1、SMG12864D3 液晶顯示模塊的接口信號(hào)說明: 編號(hào) 符號(hào) 引腳說明 編號(hào) 符號(hào) 引腳說明 1 CS2 片選IC2信號(hào) 11 DB2 Data I/O 2 CS1 片選IC1信號(hào) 12 DB3 Data I/O 3 VSS 電源地 13 DB4 Data I/O 4 VDD 電源正極(+5V) 14 DB5 Data I/O 5 V0 LCD偏壓輸入 15 DB6 Data I/O 6 RS 數(shù)據(jù)/命令選擇端(H/L) 16 DB7 Data I/O 7 RW 讀寫控制信號(hào)(H/L) 17 /RESET 復(fù)位端 8 E 使能信號(hào) 18 VEE 負(fù)壓輸出 9 DB0 Data I/O 19 BLA 背光源正極 10 DB1 Data I/O 20 BLK 背光源負(fù)極 2、控制器接口說明(KS108B 及兼容芯片) 1) 基本操作時(shí)序: 1.1 讀狀態(tài):輸入:RS=L,R/W=H,CS1或CS2=H,E=H 輸出:D0D7=狀態(tài)字 1.2 寫指令:輸入:RS=L,R/W=L,D0D7=指令碼,CS1或 CS2=H,E=高脈沖 輸出:無 1.3 讀數(shù)據(jù):輸入:RS=H,R/W=H,CS1或CS2=H,E=H 輸出:D0D7=數(shù)據(jù) 1.4 寫數(shù)據(jù):輸入:RS=H,R/W=L,D0D7=數(shù)據(jù),CS1或 CS2=H,E=高脈沖 輸出:無 2) 狀態(tài)字說明 STA7 STA6 STA5 STA4 STA3 STA2 STA1 STA0 D7 D6 D5 D4 D3 D2 D1 D0 STA0-4 未用 STA5 液晶顯示狀態(tài) 1: 關(guān)閉 0: 顯示 STA6 未用 STA7 讀寫操作使能 1: 禁止 0: 允許 注:對(duì)控制器每次進(jìn)行讀寫操作之前,都必須進(jìn)行讀寫檢測(cè),確保STA7為0。 3) RAM地址映射圖 LCD 顯示屏由兩片控制器控制,每個(gè)內(nèi)部帶有8X64位(512 字節(jié))的 RAM 緩沖區(qū),對(duì)應(yīng)關(guān)系如圖所示: 4) 指令說明 4.1 初始化設(shè)置 4.1.1 顯示開/關(guān)設(shè)置 指令碼 功能 3EH 關(guān)顯示 3FH 開顯示 4.1.2 顯示初始行設(shè)置 指令碼 功能 0C0H 設(shè)置顯示初始行 4.2 數(shù)據(jù)控制 控制器內(nèi)部設(shè)有一個(gè)數(shù)據(jù)地址頁指針和一個(gè)數(shù)據(jù)地址列指針,用戶可通過它們來訪問內(nèi)部的全部512字節(jié)RAM。 4.2.1 數(shù)據(jù)指針設(shè)置 指令碼 功能 0B8H+頁碼(07) 設(shè)置數(shù)據(jù)地址頁指針 40H+列碼(063) 設(shè)置數(shù)據(jù)地址列指針 5 初始化過程 寫指令0C0H: 設(shè)置顯示初始行。 寫指令3FH:開顯示。在編寫軟件代碼之前必須要先掌握漢字取模的方法。有很多取模軟件能將文字轉(zhuǎn)成字模數(shù)據(jù)。取模常用的基本概念:1、橫向取模和縱向取模與該單片機(jī)開發(fā)板配套的LCD12864D3內(nèi)置KS0108B 接口型液晶顯示控制器,它的每字節(jié)點(diǎn)陣排列方式是縱向排列的,用取模軟件取模時(shí)采用縱向取模方式;還有的液晶每字節(jié)點(diǎn)陣排列方式是橫向排列的,用取模軟件取模時(shí)采用橫向取模方式。不同液晶的取模方向可參考相應(yīng)液晶的使用手冊(cè)。本程序采用縱向取模。2、字節(jié)正序和字節(jié)倒序通常一個(gè)字節(jié)的數(shù)據(jù)按二進(jìn)制排列的話都是最左邊為高位A7,最右邊為低位A0,這就是正序;若LCD的點(diǎn)陣與一個(gè)字節(jié)數(shù)據(jù)的排列順序相反,左邊最左邊顯示的是A0,右邊顯示A7,這就是倒序。豎向排列也一樣,通常數(shù)據(jù)是上面為高位A7,下面為低位A0,是正序。如果LCD模塊的點(diǎn)陣排列正好反了,就是豎向倒序。KS0108控制器的LCD豎向倒序排列圖如下圖所示。 程序流程圖如圖所示。 第三章 音樂播放器硬件電路的設(shè)計(jì)和調(diào)試3.1 復(fù)位與下載模塊 由電容,電位器,按鍵組成復(fù)位電路部分,該電路接于單片機(jī)的RESET端可以通過按鍵達(dá)到手動(dòng)復(fù)位的效果。復(fù)位時(shí)PSEN拉低進(jìn)入下載或調(diào)試模式。 圖 3.1 復(fù)位電路圖 圖 3.2 下載電路圖 3.2 按鍵選擇模塊使用接線帽把J12的1,2端口連接,形成矩陣按鍵。圖 3.3 按鍵電路圖3.3 蜂鳴器發(fā)生模塊本設(shè)計(jì)中采用無源電磁式蜂鳴器,蜂鳴器由PWM1(P2.6)控制。PWM1為片內(nèi)PWM模塊的輸出。 圖 3.4 音頻發(fā)生與放大電路3.4 LCD顯示模塊關(guān)鍵網(wǎng)絡(luò)名和引腳名解釋: (1)DISCTRL04:顯示控制信號(hào)。(2)D0D7、DB0DB7:數(shù)據(jù)總線。(3)E:LCD使能信號(hào)。(4)RS:數(shù)據(jù)、指令選擇信號(hào)。(5)RW:讀、寫選擇信號(hào)。其工作過程是通過芯片處理使用者通過按鍵發(fā)來的信息,顯示歌曲名稱,歌詞隨歌曲播放自動(dòng)對(duì)應(yīng)播放。 圖 3.5LCD顯示信號(hào)連接圖3.5 IIC總線(RTC時(shí)鐘)AduC848片內(nèi)有I2C模塊,并有獨(dú)立的引腳SCLOCK和SDATA。板上的RTC時(shí)鐘芯片DS1307和EEPROM芯片AT24C08均使用了I2C總線。板上設(shè)置了I2C接口,方便MCU與板外的I2C設(shè)備進(jìn)行通信。對(duì)SCLOCK和SDATA設(shè)置了測(cè)試點(diǎn)。第4章 軟件編程設(shè)計(jì)與綜合測(cè)試4.1 程序流程圖1. 中斷0子程序流程圖2. 主程序流程圖4.2 程序清單4.2.1 12864子程序頭文件/12864子程序頭文件/頭文件名:LCD12864.H#ifndef _LCD12864_H_#define _LCD12864_H_#define Display_Off 0x3e /顯示關(guān)指令#define Display_On 0x3f /顯示開指令#define Start_Line 0xc0 /初始行指令#define X_Page_Addr 0xb8 /定位到第0頁指針指令#define Y_Col_Addr 0x40 /定位到第0列指針指令/屏幕選擇#define LCD_sel_left CS1 = 1; CS2 = 0;#define LCD_sel_right CS1 = 0; CS2 = 1;#define LCD_sel_all CS1 = 1; CS2 = 1;#define LCD_sel_no CS1 = 0; CS2 = 0;/液晶開關(guān)#define LCD_show_on Write_cmd(Display_On);#define LCD_show_off Write_cmd(Display_Off);void LCD_init(); /液晶初始化void LCD_Write_Sentence(unsigned char Hang,unsigned char Lie,unsigned char *wordp); /向液晶寫句子void LCD_write_shuzi(unsigned char Hang,unsigned char Lie,unsigned char p);void LCD_write_fuhao(unsigned char Hang,unsigned char Lie,unsigned char p);void Write_dat(unsigned char dat);#endif4.2.2 字模頭文件/字模頭文件/頭文件名:BLESS.H#ifndef _BLESS_H_#define _BLESS_H_unsigned char code WordTable32=0x00,0x20,0x18,0xC7,0x44,0x44,0x44,0x44,0xFC,0x44,0x44,0x44,0x44,0x04,0x00,0x00,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00,/*年*/0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,0x00,0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00,/*月*/0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00,/*日*/0x00,0x00,0x00,0xBE,0x2A,0x2A,0x2A,0xEA,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,0x00,0x00,0x44,0x42,0x49,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x49,0x41,0x40,0x00,0x00,/*星*/0x00,0x04,0xFF,0x24,0x24,0x24,0xFF,0x04,0x00,0xFE,0x22,0x22,0x22,0xFE,0x00,0x00,0x88,0x48,0x2F,0x09,0x09,0x19,0xAF,0x48,0x30,0x0F,0x02,0x42,0x82,0x7F,0x00,0x00,/*期*/0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*一*/0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,/*二*/0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,/*三*/0x00,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,0x00,0x7F,0x28,0x24,0x23,0x20,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00,/*四*/0x00,0x02,0x42,0x42,0x42,0xC2,0x7E,0x42,0x42,0x42,0x42,0xC2,0x02,0x02,0x00,0x00,0x40,0x40,0x40,0x40,0x78,0x47,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x00,/*五*/0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x22,0x2C,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x01,0x02,0x04,0x18,0x60,0x00,0x00,/*六*/0x00,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,0x00,0x40,0x42,0x44,0x58,0x40,0x7F,0x40,0x40,0x40,0x7F,0x40,0x50,0x48,0x46,0x40,0x00,/*顯*/0x40,0x40,0x42,0x42,0x42,0x42,0x42,0xC2,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00,0x20,0x10,0x08,0x06,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x02,0x04,0x08,0x30,0x00,/*示*/0x40,0x42,0xCC,0x00,0x00,0xFE,0x82,0x92,0x92,0xFE,0x92,0x92,0x82,0xFE,0x00,0x00,0x00,0x00,0x3F,0x10,0x88,0x7F,0x00,0x1E,0x12,0x12,0x12,0x5E,0x80,0x7F,0x00,0x00,/*調(diào)*/0x04,0x74,0xD4,0x54,0xFF,0x54,0xD4,0x74,0x14,0x08,0x77,0x84,0x44,0x3C,0x04,0x00,0x82,0x89,0x88,0xE8,0x8B,0x88,0x88,0xF9,0xA8,0xAA,0xA9,0xA8,0xA9,0x8A,0x82,0x00,/*整*/0x00,0x3E,0x22,0xE2,0x22,0x3E,0x10,0xEC,0x27,0x24,0x24,0xE4,0x04,0xFC,0x00,0x00,0x20,0x3F,0x20,0x1F,0x11,0x11,0x00,0x3F,0x42,0x42,0x4A,0x53,0x48,0x47,0x70,0x00,/*跑*/0x00,0x04,0x24,0x24,0x24,0x24,0x24,0xFF,0x24,0x24,0x24,0x24,0x24,0x04,0x00,0x00,0x21,0x21,0x11,0x09,0xFD,0x83,0x41,0x23,0x05,0x09,0x11,0x29,0x25,0x41,0x41,0x00,/*表*/0x08,0x08,0x08,0xF8,0x08,0x08,0x08,0x10,0x10,0xFF,0x10,0x10,0x10,0xF0,0x00,0x00,0x10,0x30,0x10,0x1F,0x08,0x88,0x48,0x30,0x0E,0x01,0x40,0x80,0x40,0x3F,0x00,0x00,/*功*/0x08,0xCC,0x4A,0x49,0x48,0x4A,0xCC,0x18,0x00,0x7F,0x88,0x88,0x84,0x82,0xE0,0x00,0x00,0xFF,0x12,0x12,0x52,0x92,0x7F,0x00,0x00,0x7E,0x88,0x88,0x84,0x82,0xE0,0x00,/*能*/0x00,0xF8,0x01,0x22,0x20,0x22,0x2A,0xF2,0x22,0x22,0x22,0x22,0x02,0xFE,0x00,0x00,0x00,0xFF,0x00,0x00,0x1F,0x01,0x01,0x7F,0x09,0x11,0x0F,0x40,0x80,0x7F,0x00,0x00,/*鬧*/0x20,0x10,0x2C,0xE7,0x24,0x24,0x00,0xF0,0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00,0x01,0x01,0x01,0x7F,0x21,0x11,0x00,0x07,0x02,0x02,0xFF,0x02,0x02,0x07,0x00,0x00,/*鐘*/0x40,0x40,0x42,0xCC,0x00,0x40,0xA0,0x9E,0x82,0x82,0x82,0x9E,0xA0,0x20,0x20,0x00,0x00,0x00,0x00,0x3F,0x90,0x88,0x40,0x43,0x2C,0x10,0x28,0x46,0x41,0x80,0x80,0x00,/*設(shè)*/0x00,0x17,0x15,0xD5,0x55,0x57,0x55,0x7D,0x55,0x57,0x55,0xD5,0x15,0x17,0x00,0x00,0x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0x40,0x40,0x40,0x00,/*置*/0x80,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x80,0x00,0x00,0x80,0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,/*開*/0x00,0x00,0x10,0x11,0x16,0x10,0x10,0xF0,0x10,0x10,0x14,0x13,0x10,0x00,0x00,0x00,0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x41,0x41,0x81,0x81,0x00,/*關(guān)*/0x04,0x04,0x44,0xC4,0x4F,0x44,0x44,0xC4,0x24,0x24,0x2F,0xB4,0x24,0x04,0x04,0x00,0x40,0x44,0x24,0x24,0x15,0x0C,0x04,0xFE,0x04,0x0C,0x15,0x24,0x24,0x44,0x40,0x00,/*菜*/0x00,0x00,0xF8,0x49,0x4A,0x4C,0x48,0xF8,0x48,0x4C,0x4A,0x49,0xF8,0x00,0x00,0x00,0x10,0x10,0x13,0x12,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x13,0x10,0x10,0x00,/*單*/0x00,0xFC,0x84,0x84,0x84,0xFC,0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x00,0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,0x01,0x06,0x40,0x80,0x7F,0x00,0x00,0x00/*時(shí)*/;unsigned char code ShuTable16=0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,/*0*/0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*1*/0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,/*2*/0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,/*3*/0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,/*4*/0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,/*5*/0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,/*6*/0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,/*7*/0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,/*8*/0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,/*9*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00/*空白*/;unsigned char code FuhaoTable16=0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00, /*:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00/*空白*/;#endif4.2.3 LCD12864主程序文件/LCD12864主程序文件#include <ADUC848.H>#include <LCD12864.H>#include<BLESS.H>sbit RS = P36;sbit RW = P35;sbit E = P33;sbit CS1 = P37;sbit CS2 = P24;void LCD_delay()unsigned char i;for(i = 0;i < 50;i+);/*檢測(cè)忙函數(shù)*/void Check_busy()P0 = 0xff; /P0口作為輸入時(shí)應(yīng)往相應(yīng)引腳寫1RS = 0; RW = 1;E = 1;LCD_delay();while(P0&0x80); /判斷最高位是否為1,若為1則等待E = 0;RW = 0;P0 = 0x00;/*寫指令函數(shù)*/void Write_cmd(unsigned char cmd)Check_busy();RS = 0;RW = 0;P0 = cmd;LCD_delay();E = 1;LCD_delay();E = 0;/*寫數(shù)據(jù)函數(shù)*/void Write_dat(unsigned char dat)Check_busy();RS = 1;RW = 0;P0 = dat;LCD_delay();E = 1;LCD_delay();E = 0;/*液晶寫數(shù)字*/*液晶初始化函數(shù)*/void LCD_init()unsigned char i,j;E = 0;RS = 0;RW = 0;LCD_sel_all /選擇全屏Write_cmd(Start_Line); /設(shè)置顯示初始行(0xc0)LCD_show_on /開顯示 (0x3f)for(i=0;i<8;i+)Write_cmd(X_Page_Addr + i); /第0頁(0xb8)+iWrite_cmd(Y_Col_Addr); /第0列(0x40),寫完一列后列指針自動(dòng)加1for(j=0;j<64;j+) Write_dat(0x00); /清第i頁 LCD_sel_no /關(guān)全屏/*獲取字的地址函數(shù)*/unsigned char GetWordAddress(unsigned int WordCode) switch(WordCode) case 0xc4ea:return /*年0*/0; case 0xd4c2:return /*月1*/1; case 0xc8d5:return /*日2*/2; case 0xd0c7:return /*星3*/3; case 0xc6da:return /*期4*/4; case 0xd2bb:return /*一5*/5; case 0xb6fe:return /*二6*/6; case 0xc8fd:return /*三7*/7; case 0xcbc4:return /*四8*/8; case 0xcee5:return /*五9*/9;case 0xc1f9:return /*六10*/10;case 0xcfd4:return /*顯11*/11; case 0xcabe:return /*示12*/12; case 0xb5f7:return /*調(diào)13*/13; case 0xd5fb:return /*整14*/14; case 0xc5dc:return /*跑15*/15;case 0xb1ed:return /*表16*/16;case 0xb9a6:return /*功17*/17; case 0xc4dc:return /*能18*/18; case 0xc4d6:return /*鬧19*/19; case 0xd6d3:return /*鐘20*/20; case 0xc9e8:return /*設(shè)21*/21;case 0xd6c3:return /*置22*/22;case 0xbfaa:return /*開23*/23;case 0xb9d8:return /*關(guān)24*/24;case 0xb2cb:return /*菜25*/25;case 0xb5a5:return /*單26*/26;case 0xcab1:return /*時(shí)27*/27; default:break; /*向液晶寫8*8陣列*/void LCD_write_byte(unsigned char Hang,unsigned char Lie,unsigned char Byte)unsigned char i;if(Lie < 8) /左半屏LCD_sel_leftelseLCD_sel_rightLie = Lie - 8;Write_cmd(X_Page_Addr + Hang);Write_cmd(Y_Col_Addr + Lie*8);for(i = 0;i < 8;i +)Write_dat(Bytei);LCD_sel_no/*向液晶寫數(shù)字*/void LCD_write_shuzi(unsigned char Hang,unsigned char Lie,unsigned char p)unsigned char *Two_byte; if(p=0) Two_byte=ShuTable0;else if(p=1) Two_byte=ShuTable1;else if(p=2) Two_byte=ShuTable2;else if(p=3) Two_byte=ShuTable3;else if(p=4) Two_byte=ShuTable4;else if(p=5) Two_byte=ShuTable5;else if(p=6) Two_byte=ShuTable6;else if(p=7) Two_byte=ShuTable7;else if(p=8) Two_byte=ShuTable8;else if(p=9) Two_byte=ShuTable9;else if(p=10) Two_byte=ShuTable10;LCD_write_byte(Hang,Lie,Two_byte);LCD_write_byte(Hang + 1,Lie,Two_byte + 8);/*向液晶寫符號(hào)*/void LCD_write_fuhao(unsigned char Hang,unsigned char Lie,unsigned char p)unsigned char *Two_byte; if(p=0) Two_byte=FuhaoTable0;else if(p=1) Two_byte=FuhaoTable1;LCD_write_byte(Hang,Lie,Two_byte);LCD_write_byte(Hang + 1,Lie,Two_byte + 8);/*向液晶寫漢字*/void LCD_write_hanzi(unsigned char Hang,unsigned char Lie,unsigned char Four_byte)LCD_write_byte(Hang,Lie,Four_byte);LCD_write_byte(Hang,Lie + 1,Four_byte + 8);LCD_write_byte(Hang + 1,Lie,Four_byte + 16);LCD_write_byte(Hang + 1,Lie + 1,Four_byte + 24);/*向液晶寫句子*/void LCD_Write_Sentence(unsigned char Hang,unsigned char Lie,unsigned char *wordp) unsigned int *word; word=(unsigned int *)wordp; while(*word)&0xff00)!=0x0000) LCD_write_hanzi(Hang,Lie,WordTableGetWordAddress(*word); word+;Lie+=2; 4.2.4 I2C操作程序/I2C操作SLADDWR EQU 0D0H /器件地址SLADDRD EQU 0D1HMDO EQU 0EFHMDE EQU 0EEHMCO EQU 0EDHMDI EQU 0ECH?PR?DELAY?TEST SEGMENT CODE PUBLIC DELAYRSEG ?PR?DELAY?TESTDELAY:/NOP/MOV R2,#30/DJNZ R2,$RET?PR?IICLK?TEST SEGMENT CODE/給I2C一個(gè)脈沖,結(jié)束時(shí)MCO為0 PUBLIC IICLKRSEG ?PR?IICLK?TESTIICLK:SETB MCOCALL DELAYCLR MCOCALL DELAYRET?PR?IICWRBYTE?TEST SEGMENT CODE/將A中數(shù)據(jù)寫入I2C,包括ACK, PUBLIC IICWRBYTERSEG ?PR?IICWRBYTE?TESTIICWRBYTE:MOV R3,#08I2CWRBYTE_LP2:RLC AMOV MDO,CCALL DELAYCALL IICLKDJNZ R3,I2CWRBYTE_LP2CLR MDECALL IICLK /ACKSETB MDERET?PR?IICSTART?TEST SEGMENT CODE/i2cstart PUBLIC IICSTARTRSEG ?PR?IICSTART?TESTIICSTART:SETB MDESETB MDOCALL DELAYSETB MCO CALL DELAYCLR MDOCALL DELAYCLR MCO CALL DELAY/SRET?PR?IICSTOP?TEST SEGMENT CODE/I2Cstop PUBLIC IICSTOPRSEG ?PR?IICSTOP?TESTIICSTOP:CLR MDOCALL DELAYSETB MCOCALL DELAYSETB MDOCALL DELAYRET/*?PR?_I2CWR?TEST SEGMENT CODE /I2CWR(A,B)將數(shù)據(jù)A寫入1307地址 B PUBLIC _I2CWR RSEG ?PR?_I2CWR?TEST_I2CWR:CALL IICSTARTMOV A,#SLADDWRCALL IICWRBYTEMOV A,R5 /REG ADDRESSCALL IICWRBYTEMOV A,R7 /DATACALL IICWRBYTECALL IICSTOPRETIICRDBYTE: /IIC讀取1字節(jié),結(jié)果在AMOV R3,#8IICRDBYTE_LP1:SETB MCOCALL DELAYMOV C,MDICLR MCOCALL DELAYRLC ADJNZ R3,IICRDBYTE_LP1CALL IICLK /ACKRET/*?PR?_I2CRD?TEST SEGMENT CODE /I2CRD(A)返回1307A地址內(nèi)容 PUBLIC _I2CRD RSEG ?PR?_I2CRD?TEST_I2CRD:CALL IICSTARTMOV A,#SLADDWRCALL IICWRBYTEMOV A,R7 /REG ADDRESSCALL IICWRBYTECALL IICSTOP /寫入REG地址CALL IICSTARTMOV A,#SLADDRDCALL IICWRBYTECLR MDECALL IICRDBYTECALL IICSTOPMOV R7,A /準(zhǔn)備返回值RETEND4.2.5 主程序/主程序,timemain.c#include <ADUC848.H>#include <LCD12864.H>#include <math.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned char#define ulong unsigned longvoid init(void);/初始化void I2CWR(uchar DATA,uchar ADDR);/寫IICuchar I2CRD(uchar ADDR);/讀IICuchar idata DPRAM13;/顯示緩沖uchar idata TM7;/TM0-6存放秒分時(shí)日月年星期uchar FUNSEL=0;/功能選擇 0:功能菜單 1:日期顯示 2:日期調(diào)整 3:跑表功能 4:鬧鐘設(shè)置uchar keyscan();/按鍵掃描uchar keyNO=16;/按鍵返回值uchar keyNO1=16;uchar key1=0;void delayms(uint n);/1ms延時(shí)void DPTM(void);/將TM中數(shù)據(jù)轉(zhuǎn)移到DPRAM中void TMDP(void);/將DPRAM中數(shù)據(jù)轉(zhuǎn)移到TM中uchar sel=1;/選擇調(diào)整時(shí)間位uchar sell=0; /選擇調(diào)整鬧鐘位bit FLASH=0;void TFLASH(uchar FLASH, uchar p);void tiaoshi(uchar n,uchar m); /調(diào)時(shí)void tiaoxingqi();uchar keyfan();uchar CT1FLASH1=20;/顯時(shí)計(jì)數(shù) uchar CT1FLASH2=20;/調(diào)時(shí)計(jì)數(shù)uchar CT1FLASH3=20;/鬧鐘計(jì)數(shù)bit A_clock=0;/鬧鐘標(biāo)志位 0:不響 1:響bit B_clock=0;/鬧鐘與時(shí)鐘相等為1,不等為0bit C_clock=1;/從鬧鐘返回時(shí)鐘位bit D_clock=0;ulong coclock=0;/鬧鐘計(jì)時(shí)uchar idata clk4;/存鬧鐘時(shí)分void tiaonaoz(uchar n,uchar m);uchar selln=1;/選擇調(diào)整鬧鐘位uchar sellm=0;void xianshi0(void);/顯示菜單void xianshi1(void);/顯示時(shí)間void xianshi2(void);/顯示調(diào)時(shí)void xianshi3(void);/顯示跑表void xianshi4(void);/顯示鬧鐘uchar PB8;/跑表數(shù)據(jù)bit PBSTOP=0;/1:跑 0:停bit PBZT=0;/1:把PB8放入顯存 0:不放入sbit Buzzer=P26;unsigned char Timer0_High,Timer0_Low,timer;

注意事項(xiàng)

本文(湖南大學(xué)基于ADUC848單片機(jī)多功能定時(shí)裝置(電子時(shí)鐘)設(shè)計(jì).doc)為本站會(huì)員(wux****ua)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!