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

正文內容

單片機課程設計刑天(編輯修改稿)

2025-07-23 09:42 本頁面
 

【文章內容簡介】 ,I/O引腳變?yōu)楦咦钁B(tài)。上電動行時,RST必須保持低電平。中有在SCLK 為低電平時,才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK始終是輸入端。圖8 時鐘電路DS1302接線圖2. DS1302數(shù)據(jù)操作原理DS1302在每次進行讀、寫程序前都必須初始化,先把SCLK端置“0”,接著把RST端置“1”,最后才給予SCLK脈沖。DS1302的控制字,此控制字的位7必須置1,若為0則不能把對DS1302進行讀寫數(shù)據(jù)。對于位6,若對程序進行讀/寫時RAM=1,對時間進行讀/寫時,CK=0。位1至位5指操作單元的地址。位0是讀/寫操作位,進行讀操作時,該位為1;該位為0則表示進行的是寫操作??刂谱止?jié)總是從最低位開始輸入/輸出的。DS1302的日歷、時間寄存器內容:“CH”是時鐘暫停標志位,當該位為1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當該位為0時,時鐘開始運行。“WP”是寫保護位,在任何的對時鐘和RAM的寫操作之前,“WP”必須為0。當“WP”為1時,寫保護位防止對任一寄存器的寫操作。 顯示模塊的設計顯示模塊由主控模塊和LCD1602構成,其硬件連接調試電路如圖9所示:圖9 LCD1602液晶顯示模塊電路2. LCD1602的一般初始化(復位)過程延時15mS寫指令38H(不檢測忙信號)延時5mS寫指令38H(不檢測忙信號)延時5mS寫指令38H(不檢測忙信號)以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號寫指令38H:顯示模式設置寫指令08H:顯示關閉寫指令01H:顯示清屏寫指令06H:顯示光標移動設置寫指令0CH:顯示開及光標設置 按鍵模塊的設計根據(jù)設計要求需要選擇三個獨立按鍵分別為設置、加、減,按鍵模塊如圖10所示。圖10 按鍵模塊設計按鍵介紹:K1:功能鍵(設置鍵),本按鍵共有秒、分、時、日、月、年、返回共7個功能循環(huán),設置按鍵按動一次,秒位置顯示光標,每多按一次依次向下循環(huán),到按動7次時返回。K2:加鍵,當光標處于相應位置時,此按鍵按動一次,該光標處的數(shù)值將增一,并且在相應的數(shù)據(jù)范圍內循環(huán)。K3:減鍵,功能類似加鍵,只是當光標處于相應位置時,此按鍵按動一次,該光標處的數(shù)值將減一。 第3章 系統(tǒng)的軟件設計 主函數(shù)設計在程序中,液晶寫入有關函數(shù)會在DS1302的函數(shù)中調用,所以液晶程序要放在前面;當時間顯示后方可設置,則鍵盤掃描子函數(shù)凡在DS1302的函數(shù)后面,具體流程圖如下圖11所示。 圖11 主程序流程圖主程序://*******************主函數(shù)**************************//void main(){ lcd_init()。 //調用液晶屏初始化子函數(shù) ds1302_init()。 //調用DS1302時鐘的初始化子函數(shù) init()。 //調用定時計數(shù)器的設置子函數(shù) //led=0。 //打開LCD的背光電源 delay(80)。 while(1) //無限循環(huán)下面的語句: { keyscan()。 //調用鍵盤掃描子函數(shù) }}DS1302初始化子函數(shù):void ds1302_init() //1302芯片初始化子函數(shù)(20120612,09:45:05){RST=0。SCLK=0。write_1302(0x8e,0x00)。 //允許寫,禁止寫保護 //write_1302(0x80,0x05)。 //向DS1302內寫秒寄存器80H寫入初始秒數(shù)據(jù)05//write_1302(0x82,0x45)。 //向DS1302內寫分寄存器82H寫入初始分數(shù)據(jù)43//write_1302(0x84,0x09)。//向DS1302內寫小時寄存器84H寫入初始小時數(shù)據(jù)09//write_1302(0x86,0x012)。 //向DS1302內寫日期寄存器86H寫入初始日期數(shù)據(jù)12//write_1302(0x88,0x06)。 //向DS1302內寫月份寄存器88H寫入初始月份數(shù)據(jù)06write_1302(0x8c,0x12)。 //向DS1302內寫年份寄存器8cH寫入初始年份數(shù)據(jù)12write_1302(0x8e,0x80)。 //打開寫保護}在液晶顯示子函數(shù)中,首先應對LCD1602進行初始化設置,然后再對顯示數(shù)據(jù)的位置進行設置;在需要對時間進行校準時,還要設置光標的顯示位置,其流程圖如下圖,圖12 液晶初始化程序流程圖://***液晶初始化函數(shù)****//lcd_init(){ write_1602(0x38)。//設置液晶工作模式 write_1602(0x0c)。//開顯示不顯示光標 write_1602(0x06)。//整屏不移動,光標自動右移 write_1602(0x01)。//清顯示 write_1602(yh+1)。//日歷顯示固定符號從第一行第1個位置之后開始顯示 for(a=0。a10。a++) { write_1602dat(tab1[a])。//向液晶屏寫日歷顯示的固定符號部分 delay(3)。 } write_1602(er+2)。//時間顯示固定符號寫入位置,從第2個位置后開始顯示 for(a=0。a8。a++) { write_1602dat(tab2[a])。//寫顯示時間固定符號,兩個冒號 //delay(3)。 }}1.液晶寫入子函數(shù)流程圖,如圖13所示。圖13 液晶寫入子函數(shù)流程圖/********液晶寫入指令函數(shù)與寫入數(shù)據(jù)函數(shù),以后可調用**************/write_1602(uchar )//****液晶寫入指令函數(shù)****{ rs=0。//數(shù)據(jù)/指令選擇置為指令 rw=0。 //讀寫選擇置為寫 P1=。//送入數(shù)據(jù) delay(1)。 en=1。//拉高使能端,為制造有效的下降沿做準備 delay(1)。 en=0。//en由高變低,產生下降沿,液晶執(zhí)行命令}write_1602dat(uchar dat)//***液晶寫入數(shù)據(jù)函數(shù)****{ rs=1。//數(shù)據(jù)/指令選擇置為數(shù)據(jù) rw=0。 //讀寫選擇置為寫 P1=dat。//送入數(shù)據(jù) delay(1)。 en=1。 //en置高電平,為制造下降沿做準備 delay(1)。 en=0。 //en由高變低,產生下降沿,液晶執(zhí)行命令}調整時間用3個調整按鈕,1個作為功能控制用,另外2個分別作為加調整,減調整。時間調整程序流程圖如圖B所示:圖B 時間調整程序流程圖第4章 軟件測試與硬件仿真在開發(fā)軟件Keil中,建立新工程,根據(jù)設計的相應模塊電路接線圖編寫調用子函數(shù),并且編寫主程序,編譯、運行,根據(jù)編譯結果進行相應修改,最終得到符合系統(tǒng)要求的程序代碼,并產生“HEX文件”。系統(tǒng)源程序代碼見附錄三。在Proteus 軟件中將設計的各個模塊電路連接好,檢查接線無誤后,將軟件測試產生的“HEX文件”燒錄到AT89S51中,進行仿真測試,根據(jù)結果修改相應電路。系統(tǒng)電路圖見附錄一,Proteus仿真圖見附錄二。附 錄附錄一:系統(tǒng)電路圖:附錄二:Proteus仿真圖附錄三:電子日歷時鐘源程序:includedefine uint unsigned intdefine uchar unsigned charuchar a,miao,shi,fen,ri,yue,nian,flag,key1n,temp。define yh 0x80 //LCD第一行的初始位置,因為LCD1602字符地址首位D7恒定為1(100000000=80)define er 0x80+0x40 //LCD第二行初始位置(因為第二行第一個字符位置地址是0x40)//液晶屏的與C51之間的引腳連接定義(顯示數(shù)據(jù)線接C51的P0口)sbit rs=P3^5。sbit en=P3^7。sbit rw=P3^6。 //如果硬件上rw接地,就不用寫這句和后面的rw=0了 //DS1302時鐘芯片與C51之間的引腳連接定義sbit IO=P2^2。sbit SCLK=P2^1。sbit RST=P2^0。sbit ACC0=ACC^0。sbit ACC7=ACC^7。//校時按鍵與C51的引腳連接定義sbit key1=P2^5。 //設置鍵sbit key2=P2^6。 //加鍵sbit key3=P2^7。 //減鍵/*************************************************/uchar code tab1[]={20 }。 //年顯示的固定字符uchar code tab2[]={ : : }。//時間顯示的固定字符void delay(uint xms)//延時函數(shù),有參函數(shù){ uint x,y。 for(x=xms。x0。x) for(y=110。y0。y)。}/********液晶寫入指令函數(shù)與寫入數(shù)據(jù)函數(shù),以后可調用**************//*液晶寫入有關函數(shù)會在DS1302的函數(shù)中調用,所以液晶程序要放在前面*/write_1602(uchar )//****液晶寫入指令函數(shù)****{ rs=0。//數(shù)據(jù)/指令選擇置為指令 rw=0。 //讀寫選擇置為寫 P1=。//送入數(shù)據(jù) delay(1)。 en=1。//拉高使能端,為制造有效的下降沿做準備 delay(1)。 en=0。//en由高變低,產生下降沿,液晶執(zhí)行命令}write_1602dat(uchar dat)//***液晶寫入數(shù)據(jù)函數(shù)****{ rs=1。//數(shù)據(jù)/指令選擇置為
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1