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

正文內(nèi)容

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

2024-12-29 18:54 本頁面


【正文】 控制要求。在電路中單片機(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í)向電池充電,以延長電池使用時(shí)間。備份電池也可用1 微法以上的超容量電容代替,但需要注意的是備份電池電壓應(yīng)略低于主電源工作電壓。DS1302 與STC89C52 。 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)行。 程序設(shè)計(jì)includeincludedefine uint unsigned intdefine uchar unsigned charsbit 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 0x01define WR 0x00define C_SEC 0x80define C_MIN 0x82define C_HR 0x84define C_DAY 0x86define C_MTH 0x88define C_WK 0x8adefine C_YR 0x8cdefine C_WP 0x8edefine CLK_HALT 0x80define CLK_START 0x00define M12_24 0x80define PROTECT 0x80define UNPROTECT 0x00void 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++) { 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)。 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。 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) 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。 } 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。 if(flag==0) { temp=DS1302_readD(C_SEC)。 DS1302_writeD(C_WP|WR,UNPROTECT)。 DS1302_writeD(C_SEC|WR,temp|0x80)。 DS1302_writeD(C_WP|WR,PROTECT)。 flag=1。 } setkey()。 switch(count) { case 1:do { outkey()。 upkey()。 if(up_flag==1) { DS1302_writeD(C_WP|WR,UNPROTECT)。 DS1302_writeD(C_SEC|WR,temp|0x80)。 DS1302_writeD(C_WP|WR,PROTECT)。 up_flag=0。 } //dis_play()。 hide_sec++。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1