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

正文內(nèi)容

基于單片機(jī)的電子萬(wàn)年歷帶計(jì)算器(文件)

 

【正文】 void Reset() { num1 = 0。 pointnum=1。 str[1]=39。 len = 0。 if(PointFlag==0) { i=0。 len = LongToString(str, (s32)number)。pointnum4) { if(n=0amp。n==0) ZeroFlag=1。 i++。 if(ZeroFlag==1amp。 第 28 頁(yè) ZeroFlag=0。 LcdShowStr(16len,1,str)。amp。 num2=num2+(float)(n/(pow(10,(pointnum1))))。 i++。 if(ZeroFlag==1amp。 LcdShowStr(16pointnum+1,0,.)。 Lc。 ShowOprt(1, type)。i==2) LcdShowStr(14,1,0)。 LcdShowStr(16pointnum,1,.)。 len1=LongToString(str1, (s32)temp)。amp。amp。 number=num2。i==2) LcdShowStr(14,1,0)。 LcdShowStr(16pointnum,1,.)。 temp=temp*10+n。n=9) { if(i==0amp。 } else if(PointFlag==1amp。 num1 = num1*10 + n。 if(step 1) { Reset()。 number=0。 str[0]=39。 step = 0。 break。 break。 psec = 。SwitchFuction==0 { //每隔 200ms 且未處于設(shè)置狀 第 27 頁(yè) 態(tài)時(shí), flag200ms = 0。SwitchFuction==0)// flag200ms amp。 } if ( flag200ms amp。amp。 //配置 T0 定時(shí) 1ms InitDS1302()。extern u8 PointFlag。extern void LcdWriteDat(unsigned char dat)。extern void InitLcd1602()。extern void GetRealTime(struct sTime *time)。 // u8 LongToString(u8 *str, s32 dat)。u8 T0RH = 0。long number=0。u8 len 。s16 temp=0 。 bit flag200ms = 1。 unsigned char min。 // struct sTime { //日期時(shí)間結(jié)構(gòu)體定義 unsigned int year。 typedef unsigned int u16。 39。 //顯示器開,光標(biāo)關(guān)閉 LcdWriteCmd(0x06)。 }} /* 打開光標(biāo)的閃爍效果 */ void LcdOpenCursor() { LcdWriteCmd(0x0F)。 //設(shè)置 RAM 地址 } /* 在液晶上顯示字符串, (x,y)對(duì)應(yīng)屏幕上的起始坐標(biāo), str字符串指針 */ void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str) { LcdSetCursor(x, y)。} /* 設(shè)置顯示 RAM 起始 地址,亦即光標(biāo)位置, (x,y)對(duì)應(yīng)屏幕上的字符坐標(biāo) */ void LcdSetCursor(unsigned char x, unsigned char y) { unsigned char addr。 LCD1602_RW = 0。 LCD1602_E = 1。 //bit7 等于 1 表示液晶正忙,重復(fù)檢測(cè)直到其等于 0 為止 } /* 向 LCD1602 液晶寫入一字節(jié)命令, cmd待寫入命令值 */ void LcdWriteCmd(unsigned char cmd) { LcdWaitReady()。 sta = LCD1602_DB。 LCD1602_DB = 0xFF。 }} LCD1602 的顯示程序 include define LCD1602_DB P0 sbit LCD1602_RS = P1^0。 case 3: KEY_OUT_3 = 1。 break。 KEY_OUT_1 = 0。 } //執(zhí)行下一次的掃描輸出 keyout++。k++) { if((keybuf1[k]amp。 } else if ((keybuf[keyout][i] amp。 //消抖后更新按鍵狀態(tài) 第 24 頁(yè) for (i=0。 keybuf[keyout][0] = (keybuf[keyout][0] 1) | KEY_IN_1。 //矩陣按鍵掃描輸出索引 static unsigned char keybuf[4][4] = { //矩陣按鍵掃描緩沖區(qū) {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF} }。 j++) { if (backup[i][j] != KeySta[i][j]) //檢測(cè)按鍵動(dòng)作 { if (backup[i][j] != 0) //按鍵按下時(shí)執(zhí)行動(dòng)作 { KeyAction(KeyCodeMap[i][j])。 for (i=0。 } } else if (keycode == 0x1B) //Esc 鍵,取消當(dāng)前設(shè)置 { ExitTimeSet(0)。 } else if (keycode == 0x25) //向左鍵,向左切換設(shè)置位 第 23 頁(yè) { LeftShiftTimeSet()。 (keycode=39。 } } if(SwitchFuction==0) { if ((keycode=39。 } else if(keycode == 0x0D) { GetResult()。 } else if(keycode == 0x26) { OprtKeyAction(0)。keycode)。) { PointFlag=1。) //||keycode==39。 (keycode = 39。 } if(SwitchFuction==1) { if(((keycode = 39。) { SwitchFuction=1SwitchFuction。 extern void EnterTimeSet()。 extern void IncSetTime()。 extern void NumKeyAction(unsigned char n)。 extern u8 setIndex 。S39。039。839。639。439。239。 unsigned char PointFlag=0。 sbit KEY_OUT_3 = P2^1。 sbit KEY_IN_3 = P2^6。 //設(shè)置 DS1302 為默認(rèn)的初始時(shí)間 } } 鍵盤按鍵程序 include typedef unsigned char u8。 //讀取秒寄存器 if ((dat amp。 struct sTime code InitTime[] = { //2020 年 10 月 8 日 12:30:00 星期二 0x2020,0x10,0x08, 0x12,0x30,0x00, 0x02 }。 buf[1] = timemin。 buf[5] = timeweek。 timeweek = buf[5]。 timeday = buf[3]。 } /* 獲取實(shí)時(shí)時(shí)間,即讀取 DS1302 當(dāng)前時(shí)間并轉(zhuǎn)換為時(shí)間結(jié)構(gòu)體格式 */ void GetRealTime(struct sTime *time) { unsigned char buf[8]。 //發(fā)送突發(fā)讀寄存器指令 for (i=0。 } DS1302_CE = 0。 DS1302ByteWrite(0xBE)。 //讀取字節(jié)數(shù) 據(jù) DS1302_CE = 0。 //除能片選信號(hào) } /* 用單次 讀操作從某一寄存器讀取一個(gè)字節(jié), reg寄存器地址,返回值 讀到的字節(jié) */ unsigned char DS1302SingleRead(unsigned char reg) { unsigned char dat。 //最后返回讀到的字節(jié)數(shù)據(jù) } /* 用單次寫操作向某一寄存器寫入一個(gè)字節(jié), reg寄存器地址, dat待寫入字節(jié) */ void DS1302SingleWrite(unsigned char reg, unsigned char dat) { DS1302_CE = 1。 mask=1) //低位在前,逐位讀取 { if (DS1302_IO != 0) //首先讀取此時(shí)的 IO 引腳,并設(shè)置 dat 中的對(duì)應(yīng)位 { dat |= mask。 //最后確保釋放 IO 引腳 } /* 由 DS1302 通信總線上讀取一個(gè)字節(jié) */ unsigned char DS1302ByteRead() { unsigned char mask。else DS1302_IO = 0。 for (mask=0x01。 //時(shí) unsigned char min。 struct sTime { //日期時(shí)間結(jié)構(gòu)體定義 unsigned int year。 //時(shí)間設(shè)置索引 extern void LcdShowStr(u8 x, u8 y, u8 *str)。 sbit DS1302_CK = P3^3。 第 18 頁(yè) 第八章 致謝 在此也很感謝學(xué)校和老師給我們提供了這樣的平臺(tái),能使我 們的動(dòng)手能力增強(qiáng);感謝老師對(duì)我們提供的幫助,感謝老師帶給我們新的知識(shí),使我們順利地完成本次的課程設(shè)計(jì)。經(jīng)歷了從最初的選題、硬件設(shè)計(jì)、軟件設(shè)計(jì)到最后仿真結(jié)果的出現(xiàn),從一定程度上提高了對(duì)專業(yè)知識(shí)的認(rèn)識(shí)及興趣。)我們的硬件測(cè)試比較順利,以下為實(shí)物演示圖。 、硬件調(diào)試 前期的那些準(zhǔn)備工作都是為了這最后的一步,先把元件排版好后,就是自己動(dòng)手焊接,制作出完整的實(shí)物。 我們用 proteus 繪制的仿真圖如下: 圖 、 軟件仿真 在硬件設(shè)計(jì)完成后,利用軟件對(duì)其進(jìn)行仿真,這樣,就會(huì)減少在做硬件時(shí)的錯(cuò)誤,做到更準(zhǔn)確。 、 DS1302 時(shí)鐘電路 電路原理圖如圖 , DS1302 與單片機(jī)的連接也僅需要 3 條線: CE 引腳、SCLK 串行 時(shí)鐘引腳、 I/O 串行數(shù)據(jù)引腳, Vcc2 為備用電源,外接 晶振,為芯片提供計(jì)時(shí)脈沖。矩陣鍵盤采用四條 I/O 線作為行線,四條 I/O 線作為列線組成鍵盤,在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一 第 14 頁(yè) 個(gè)按鍵。液晶顯示器采用背光的 ,本次設(shè)計(jì)選用 16 引腳的 LCD1602。起振電容 22pF 對(duì)振蕩器的頻率高低、振蕩器的穩(wěn)定性和起振的快速性影響較合適,復(fù)位電路為按鍵高電平復(fù)位。 圖 第 12 頁(yè) 第五章 整體設(shè)計(jì) 、設(shè)計(jì)方法
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1