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

正文內(nèi)容

課程設(shè)計(jì)-單片機(jī)基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)-文庫吧

2025-05-18 08:02 本頁面


【正文】 ,首先應(yīng)對(duì)硬件電路使用的端口進(jìn)行定義聲明 ,并初始化芯片引腳及工作狀態(tài) ,系統(tǒng)一切 就緒后執(zhí)行讀寫操作。同時(shí) ,DS1302 在執(zhí)行相應(yīng)操作時(shí) ,應(yīng)保證延時(shí)時(shí)間的選擇需滿足芯片的時(shí)序要求 ,并注意 RTS 引腳的及時(shí)打開與關(guān)閉 ,以確保數(shù)據(jù)的正常讀寫和避免 CPU 的長(zhǎng)時(shí)間占用 ,減少干擾 ,提高程序的執(zhí)行效率。這里由于篇幅的原因僅給出程序設(shè)計(jì)流程 ,驅(qū)動(dòng)程序有需要可向筆者索取。具體程序流程如圖。 南華大學(xué)船山學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì) 第 8 頁 共 29 頁 圖 DS1302工作流程圖 接口電路設(shè)計(jì) 在溫度測(cè)量記錄儀表中 ,DS1302 與微處理器的接口電路如圖 2 所示。該微處理器采用宏晶科技推出的 STC89C516RD + 單片機(jī)作為主控芯片 ,該產(chǎn)品具有片內(nèi)資源豐富、超強(qiáng)抗干擾、高抗靜電、超低功耗、寬電壓、不怕電源抖動(dòng)、在系統(tǒng)可編程、加密性強(qiáng)、無法解密、可降低單片機(jī)時(shí)鐘對(duì)外部電磁輻射等特點(diǎn) [7 ] ,其良好的性能保證了各個(gè)器件的協(xié)調(diào)可靠工作及控制要求。在電路中單片機(jī)的 P1. 7 控制 DS1302 的復(fù)位輸入端 , P1. 4 與數(shù)據(jù)輸入 / 輸出引腳相 連 , P1. 3 用來作為 DS1302 的輸入時(shí)鐘 SCL K 控制端。由于單片機(jī)復(fù)位時(shí) ,所有單片機(jī)的端口均為高電平 ,如果直接用單片機(jī)的某一口線同 DS1302 的 RST 相連 ,則影響了系統(tǒng)加電時(shí)對(duì) DS1302 的初始化 ,從而造成DS1302 計(jì)時(shí)的不穩(wěn)定。因此 ,本電路在設(shè)計(jì)時(shí)采用反相器來完成單片機(jī)的 I/ O 線同DS1302 的 RST 相連。供電時(shí) ,儀表主電源 (5 V) 接 VCC2 ,備份電池采用可充電鎘鎳電池 (3. 6 V) 接 VCC1 ,可啟用內(nèi)部涓流充電器在主電壓正常時(shí)向電池充電 ,以延長(zhǎng)電池南華大學(xué)船山學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì) 第 9 頁 共 29 頁 使用時(shí)間。備份 電池也可用 1 微法以上的超容量電容代替 ,但需要注意的是備份電池電壓應(yīng)略低于主電源工作電壓 。 DS1302 與 STC89C52 單片機(jī)的接口電路如圖 。 圖 DS1302 與 STC89C51 單片機(jī)的接口電路 5 調(diào)試與 軟件設(shè)計(jì) 調(diào)試 調(diào)試 分為硬件調(diào)試和軟件調(diào)試,硬件調(diào)試就是 檢測(cè)電路是否有錯(cuò)誤或者 有短路、虛焊、短路的現(xiàn)象,通過萬用表的檢測(cè)可以最終完成硬件的調(diào)試。 軟件調(diào)試是指通過 Keil 軟件編譯生成 Hex 文件,在通過 Protus 軟件的聯(lián)調(diào),再進(jìn)行仿真,出現(xiàn)所能實(shí)現(xiàn)的功能,最后通過串口下載到 STC89C52 單片機(jī)芯片中讓整個(gè)硬件可以得到運(yùn)行。 南華大學(xué)船山學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì) 第 10 頁 共 29 頁 程序設(shè)計(jì) include include define uint unsigned int define uchar unsigned char sbit rtc_clk=P1^0。 sbit rtc_io=P1^1。 sbit rtc_rst=P1^2。 sbit set=P1^3。 sbit up=P1^4。 sbit out=P1^5。 sbit qiehuan=P1^6。 uchar t,num。 uchar done,count,temp,up_flag,flag。 uchar time[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00}。 uchar code SEG7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。 //uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。 uchar hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year。 uchar ACT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}。 define RD 0x01 define WR 0x00 define C_SEC 0x80 define C_MIN 0x82 define C_HR 0x84 define C_DAY 0x86 define C_MTH 0x88 define C_WK 0x8a define C_YR 0x8c define C_WP 0x8e define CLK_HALT 0x80 define CLK_START 0x00 define M12_24 0x80 define PROTECT 0x80 define UNPROTECT 0x00 void delay(uint k) { uint i,j。 for(i=0。ik。i++) for(j=0。j121。j++)。 } void DS1302_writeB(uchar byte) { uchar i。 for(i=0。i8。i++) 南華大學(xué)船山學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì) 第 11 頁 共 29 頁 { if(byteamp。0x01) rtc_io=1。 else rtc_io=0。 rtc_clk=0。 rtc_clk=1。 delay(1)。 byte=byte1。 } } uchar DS1302_readB() { uchar i,date。 for(i=0。i8。i++) { date=date1。 rtc_clk=1。 rtc_clk=0。 delay(1)。 if(rtc_io==1) date=date|0x80。 else date=dateamp。0x7f。 } return(date)。 } void DS1302_writeD(uchar add,uchar date) { rtc_rst=0。 rtc_clk=0。 rtc_rst=1。 DS1302_writeB(add)。 delay(1)。 DS1302_writeB(date)。 rtc_clk=0。 rtc_rst=0。 } uchar DS1302_readD(uchar add) { uchar date。 rtc_rst=0。 rtc_clk=0。 rtc_rst=1。 delay(1)。 南華大學(xué)船山學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì) 第 12 頁 共 29 頁 DS1302_writeB(add|RD)。 delay(1)。 date=DS1302_readB()。 delay(1)。 rtc_clk=0。 rtc_rst=0。 return(date)。 } void DS1302_init()//開啟 ds1302 { uint second。 second=DS1302_readD(C_SEC)。 if(secondamp。0x80) { DS1302_writeD(C_WP|WR,UNPROTECT)。 DS1302_writeD(C_SEC|WR,CLK_START)。 DS1302_writeD(C_WP|WR,PROTECT)。 } else { void DS1302_getT()。 } } void DS1302_getT() { uchar i,value。 uchar addr=0x80。 for(i=0。i7。i++) { value=DS1302_readD(addr)。 // time[i]=DS1302_readD(addr|RD)。 time[i]=((valueamp。0x70)4)*10+(valueamp。0x0f)。 addr+=2。 } } void outkey()//跳出調(diào)整按鍵 { // out=1。 uchar second。 if(out==0) { delay(10)。 if(out==0)。 { count=0。 南華大學(xué)船山學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì) 第 13 頁 共 29 頁 hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week,hide_month=0,hide_year=0。 // hide_sfm=0,hide_nyr=0,hide_week=0。 second=DS1302_readD(C_SEC)。 DS1302_writeD(C_WP|WR,UNPROTECT)。 DS1302_writeD(C_SEC|WR,secondamp。0x7f)。 DS1302_writeD(C_WP|WR,PROTECT)。 done=0。 while(out==0)。 } } } void upkey()//升序按鍵 { // uchar valueble。 up=1。 if(up==0) { delay(20)。 if(up==0)。 { while(up==0)。 switch(count) { case 1: temp=DS1302_readD(C_SEC)。 //temp=((valuebleamp。0x70)4)*10+(valuebleamp。0x0f)。 temp=temp+1。 up_flag=1。 if((tempamp。0x7f)0x59) temp=0。 break。 case 2: temp=DS1302_readD(C_MIN)。 temp=temp+1。 up_flag=1。 if((tempamp。0x7f)0x59) temp=0。 break。 case 3: temp=DS1302_readD(C_HR)。 temp=temp+1。 up_flag=1。 if((tempamp。0x7f)0x23) 南華大學(xué)船山學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì) 第 14 頁 共 29 頁 temp=0。 break。 case 4: temp=DS1302_readD(C_WK)。 temp=temp+1。 up_flag=1。 if((tempamp。0x7f)0x07) temp=1。 break。 case 5: temp=DS1302_readD(C_DAY)。 temp=temp+1。 up_flag=1。 if((tempamp。0x7f)0x31) temp=1。 break。 case 6: temp=DS1302_readD(C_MTH)。 temp=temp+1。 up_flag=1。 if((tempamp。0x7f)0x12) temp=1。 break。 case 7: temp=DS1302_readD(C_YR)。 temp=temp+1。 up_flag=1。 if((tempamp。0x7f)0x85) temp=0。 break。 } } } } void setkey()//功能切換 { set=1。 if(set==0) { delay(10)。 if(set==0) { count=count+1。 done=1。 } 南華大學(xué)船山學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì) 第 15 頁 共 29 頁 while(set==0)。 } } void qiehuankey() { qiehuan=1。 if(qiehuan==0) { delay(10)。 if(qiehuan==0) { while(qiehuan==0)。 num=num+1。 } } if(num==2) num=0。 } void keydone() { uchar value。 uchar second。
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1