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

正文內(nèi)容

基于單片機的電腦時鐘設(shè)計完美實現(xiàn)版-文庫吧資料

2024-11-18 02:43本頁面
  

【正文】 10 + 39。 TimeDateString[1] = 39。 } void DateToStr(SYSTEMTIME *Time) //將時間年 ,月 ,日 ,星期數(shù)據(jù)轉(zhuǎn)換成液晶顯示字符串 ,放到數(shù)組里 DateString[] { if(hide_year2) //這里的 if,else 語句都是判斷位閃爍 ,2 顯示數(shù)據(jù) ,2 就不顯示 ,輸出字符串為 2020/07/22 { TimeDateString[0] = 39。0x70)4)*10 + (ReadValueamp。 ReadValue = Read1302(DS1302_YEAR)。0x70)4)*10 + (ReadValueamp。 ReadValue = Read1302(DS1302_MONTH)。0x70)4)*10 + (ReadValueamp。 ReadValue = Read1302(DS1302_WEEK)。0x70)4)*10 + (ReadValueamp。 ReadValue = Read1302(DS1302_DAY)。0x70)4)*10 + (ReadValueamp。 ReadValue = Read1302(DS1302_HOUR)。0x70)4)*10 + (ReadValueamp。 // 高三位取出讀出乘⑩ ReadValue = Read1302(DS1302_MINUTE)。0x70)4)*10 + (ReadValueamp。 ReadValue = Read1302(DS1302_SECOND)。 return(ucData)。 // 讀 1Byte 數(shù)據(jù) DS1302_CLK = 1。 DS1302InputByte(ucAddr|0x01)。 DS1302_CLK = 0。 } unsigned char Read1302(unsigned char ucAddr) //讀取 DS1302 某地址的數(shù)據(jù) { unsigned char ucData。 // 寫 1Byte 數(shù)據(jù) DS1302_CLK = 1。 DS1302InputByte(ucAddr)。 DS1302_CLK = 0。 } 25 void Write1302(unsigned char ucAddr, unsigned char ucDa) //ucAddr: DS1302 地址 , ucData: 要寫的數(shù)據(jù) { DS1302_RST = 0。 DS1302_CLK = 0。 //相當(dāng)于匯編中的 RRC ACC7 = DS1302_IO。 i0。 } } unsigned char DS1302OutputByte(void) //實時時鐘讀取一字節(jié) (內(nèi)部函數(shù) ) { unsigned char i。 DS1302_CLK = 0。 i) { DS1302_IO = ACC0。 for(i=8。 define AM(X) X define PM(X) (X+12) // 轉(zhuǎn)成 24小時制 define DS1302_SECOND 0x80 //時鐘芯片的寄存器位置 ,存放時間 define DS1302_MINUTE 0x82 24 define DS1302_HOUR 0x84 define DS1302_WEEK 0x8A define DS1302_DAY 0x86 define DS1302_MONTH 0x88 define DS1302_YEAR 0x8C void DS1302InputByte(unsigned char d) //實時時鐘寫入一字節(jié) (內(nèi)部函數(shù) ) { unsigned char i。 }SYSTEMTIME。 unsigned char DateString[11]。 unsigned char Month。 unsigned char Week。 unsigned char Minute。 str++。\039。 if(y==1) LCD_Write(LCD_COMMAND,0x80|(x0x40))。 //清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE)。 LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR)。 LCD_Write(LCD_COMMAND,0x38)。 } 22 // 設(shè) 置 輸 入 模 式************************************************************ define LCD_AC_UP 0x02 define LCD_AC_DOWN 0x00 // default define LCD_MOVE 0x01 // 畫面可平移 define LCD_NO_MOVE 0x00 //default void LCD_SetInput(unsigned char InputMode) { LCD_Write(LCD_COMMAND, 0x04|InputMode)。 LCD_Wait()。//注意順序 LcdEn=0。//注意 順序 LcdEn=1。 DBPort=input。 LcdRw=0。 21 } // 向 LCD 寫 入 命 令 或 數(shù) 據(jù)************************************************************ define LCD_COMMAND 0 // Command define LCD_DATA 1 // Data define LCD_CLEAR_SCREEN 0x01 // 清屏 define LCD_HOMING 0x02 // 光標(biāo)返回原點 void LCD_Write(bit style, unsigned char input) { LcdEn=0。 LcdEn=0。 LcdEn=1。 LcdRw=1。 sfr DBPort = 0x80。 sbit LcdRw = P2^6。 void show_time()。 uchar temp_value。 //立刻跳出調(diào)整模式按鈕 sbit DQ = P1^0。 //加法按鈕 sbit Down = P2^2。 //秒 ,分 ,時到日 ,月 ,年位閃的計數(shù) sbit Set = P2^0。 sbit ACC7 = ACC^7。 20 sbit wireless_4 = P3^3。 sbit wireless_2 = P3^1。 //實時時鐘數(shù)據(jù)線引腳 sbit DS1302_RST = P1^5。 19 圖 LCD顯示流程圖 八、 程 序清單 include include //include //include define uint unsigned int define uchar unsigned char sbit DS1302_CLK = P1^7。 在次掃描過程中,如果檢測到跳出鍵按下,則直接回到顯示界面。讀出的數(shù)據(jù)同樣要轉(zhuǎn)為ASC II 碼 ,然后儲存起來 ,等待 送去顯示。無論是讀數(shù)據(jù)還是寫數(shù)據(jù) ,都要滿足 DS1302 對時序的要求。因為在液晶 顯示器上顯示的是字符的 ASCII 碼 ,因而還要轉(zhuǎn)換為 BCD,在加 30H 轉(zhuǎn)換為 ASCⅡ碼。每次對器件進行讀寫操作時 , 必須嚴(yán)格按照 DS18B20 的時序要求。主程序主要完成器件的初始化 ,并判斷有無按鍵按下 ,并根據(jù)判斷的結(jié)果調(diào)用相應(yīng)的子模塊程序 ; 而溫度采集子模塊程序和 日歷 日期數(shù)據(jù)子模塊程序完成相應(yīng)的數(shù)據(jù)采集、處理和保存 ,按鍵處理子模塊程序完成日期 和鬧鐘 的設(shè)置 ,而 液晶 顯示子模塊只要把上述子模塊儲存的數(shù)據(jù)送去顯示即可。 ( 2)用按鍵 (S4)和其他部件組成的復(fù)位電路與芯片連接來實現(xiàn)整個程序及硬件的重新復(fù)位功能。電阻 R2 作為 DS18B20 的 I/O 口的上拉電阻,在讀時隙結(jié)束時, I/O 引腳將通過此上拉電阻拉回至高電平。 本設(shè)計中使用 DS18B20 溫度傳感器進行環(huán)境溫度采集和轉(zhuǎn)化。C 范圍內(nèi),可編程為 9 位 — 12 位 A/D 轉(zhuǎn) 換精度,工作電壓在 3V— 5V 之間。C~+125176。 電源有兩種接法: 1)遠端因入; 2)寄生電源方式。 圖 按鍵電路 溫度采集電路 DS18B20 傳感器,主要由四部分組成: 64 位 ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器 TH 和 TL、配置寄存器。按鍵的去抖動由軟件來實現(xiàn)。按鍵電路如圖 。矩陣式鍵盤適合按鍵較多時使 用。獨立式鍵盤是各個按鍵相互獨立,每個按鍵占用一個 I/O 口線,每根 I/O 口線上的按鍵不會影響其他 I/O 口上按鍵工作狀態(tài)。 圖 顯示電路 按鍵 電路 在該 電路 中,采用 三 個按鍵作為電子時鐘的控制輸入,通過按鍵來實現(xiàn)時鐘的 日期,星期,時間設(shè)置 。 LCD1602 分兩行顯示,每行可現(xiàn)實多達 16 個字符,其內(nèi)部的字符發(fā)生器已經(jīng)存儲了 160 個不同的點陣字符圖形,通過內(nèi)部指令可實現(xiàn)對其顯示多樣的控制。 LCD 顯示電路 采用 LCD 顯示, LCD 顯示具有豐富多樣性,靈活性,電路簡單、易于控制而且功耗小,對于信息量多的系統(tǒng),是比較適合的 ,LCD 液晶顯示模塊采用 LCD1602型 號,具有很低的功耗,正常工作室電流僅 。 C1 和 C2 兩端連接的晶振 X1,該晶振頻率為 。 作為串行時鐘接口, 作為時鐘數(shù)據(jù)的 I/O。該硬件電路設(shè)計簡單,抗干擾能力強。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對后備 電源進行涓細電流充電的能力。實時時鐘可提供秒、分、時、日、星期、月和年,一個月 小于 31 天時可以自動調(diào)整,且具有閏年補償功能。 實際電路 如圖 。按鍵電平復(fù)位是相當(dāng)于 RST 端通過電阻接高電平,如圖 (b)所示;按鍵脈沖復(fù)位,利用 RC 微分電路產(chǎn)生正脈沖,如圖 (c)所示。上電瞬間, RC電路充電, RST 端出現(xiàn)正脈沖,隨著充電電流的減少, RST 的電位逐漸下降。 RST 端的外部復(fù)位電路有兩種操作方式:上電自動復(fù)位和按鍵手動 復(fù)位。 89C51 單片機復(fù)位信號的輸入端是 RST 引腳,高電平有效。單片機復(fù)位后,除了 PC 之外,還對片內(nèi)的特殊功能寄存器有影響,它們的復(fù)位狀態(tài)如表 所示。除了進入系統(tǒng)的正常初始化之外,當(dāng)單片機系統(tǒng)在運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,也可按復(fù)位鍵重新啟動。電源部分是用電池來提供的 3v5v,晶體振蕩器采用的是 12MHz 的石英晶體振蕩器。 在比較了 這 三種實現(xiàn)方案之后,考慮單片機貨源充足、價格低廉,可軟硬件結(jié)合使用,能夠較方便的實現(xiàn)系統(tǒng)的多功能性,故采用單片機作為本設(shè)計的硬件基礎(chǔ)。然而系統(tǒng)時鐘誤差較大,電 腦時 鐘的積累誤差也可能較大,所以可以通過誤差修正軟件加以修正,或者在設(shè)計中加入高精度時鐘日歷芯片,以精確時間。 利用單片機的智能性,可方便地實現(xiàn)具有智能的電 腦時 鐘設(shè)計。 從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機通過軟件方法來實現(xiàn)了。 所以單片機的應(yīng)用非常廣泛,在智能儀表、機電一體化、實時控制、分布式多機系統(tǒng)以及人們的生活中均有用武之地。就其組成和功能而言,一塊單片機芯片就是一臺計算機。但是受芯片引腳數(shù)量和功能限制,不容易實現(xiàn)電子時鐘的多功能性。輸出的脈沖信號 V0 的頻率 F 為: 8 CRRF ??? )2/( 21 式 ( ) 可通過調(diào)節(jié) 式 中的 3 個參數(shù),使輸出 V0的頻率為精確的 1Hz。 采用 NE555 時基電路或其他振蕩電路產(chǎn)生秒脈沖信號,作為秒加法電路的時鐘信號或微處理器的外部中斷輸入信號,可構(gòu)成電子鐘。 555 定時器是一種數(shù)字與模擬混合型的 集成電路,應(yīng)用廣泛。 NE555 時基電路設(shè)計方案 555 定時器 是美國 Sigics 公司 1972 年研制的用于取代機械式定時器的中規(guī)模集成電路,因輸入端設(shè)計有三個 5KΩ 的電阻而得名。 應(yīng)用 FPGA 能夠?qū)r鐘設(shè)計為為四種類型:全局時鐘、門控時鐘、多級邏輯時鐘和波動式時鐘。當(dāng)然,有時根據(jù)需要,也會應(yīng)用 MAX+plus 開發(fā)集成環(huán)境進 行設(shè)計。 可編程邏輯 器件 的設(shè)計過程是利用 EDA 開發(fā)軟件和編程工具對器
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1