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

正文內(nèi)容

基于atmega16單片機的電子時鐘設(shè)計_畢業(yè)設(shè)計(參考版)

2024-08-29 17:35本頁面
  

【正文】 } 。 //讀取當(dāng)前時間 lcd_disp()。 //初始化背光指示函數(shù) delayms(10)。 while (1) { settime()。 //外部中斷 0、 1 使能 SREG=0x80。 //lcd 端口初始化 MCUCR=0x00。 //切換地址 } } void main(void) { port_start()。i++) //循環(huán) 7 次 { ds1302write(dizhi,set_time[i])。 //顯示 0 for(i=0。 //從第 0 行第 0 列開始顯示 lcd_wdat(0x32)。 //D 端口置為輸出 } /***********初始時間設(shè)置函數(shù) ************/ void chu_time() { uchar dizhi=0x80,i。 //B 端口置為輸出 PORTD=0x0f。 //A 端口置為輸出 PORTB=0xff。 //關(guān)閉指示燈 } } 第 30頁 (共 30 頁) /***********端口初始化函數(shù) *********/ void port_start() { PORTA=0x00。 //取出 BCD 碼 ds1302write(add,h)。 } m=key_scan(max)。break。break。break。break。break。break。break。 //判斷是否有按鍵按下 if(i) //有按鍵按下 { add=qie_huan()。 //定義中間變量 if(INT0) //標(biāo)志位為 1 { =1。} //地址歸零 return address。 //地址不變 } QIEHUAN=0。 //返回二進制碼 } /*************時間地址切換函數(shù) *************/ uchar qie_huan() { if(QIEHUAN) //判斷標(biāo)志位 1 第 29頁 (共 30 頁) { address+=2。 //轉(zhuǎn)換成二進制碼 he=x+y。 //左移四位 ge=m%10。 //取出十位數(shù) x=d_x(shi)。 //返回轉(zhuǎn)換后的二進制碼 } /*************BCD 碼合成函數(shù) ******************/ uchar hecheng(uchar m) { uchar shi,ge,x,y,he。 //求 和運算 n=n/2。 //將數(shù)組 k 變量存入 d } else //判斷為 0 { d=0x00。i++) //四次循環(huán) { a=n%2。 //存儲低四位的二進制 for(i=0。 uchar k[4]={0x01,0x02,0x04,0x08}。 逐位轉(zhuǎn)換。 //返回變量值 第 28頁 (共 30 頁) } /*********************************** 函數(shù)功能:將 2 為十進制數(shù)轉(zhuǎn)換成 ds1302 芯片內(nèi)部可接受數(shù)據(jù)。 } if(nl) //判斷時 間是否調(diào)節(jié)正確 {n=0。 } while(key_press())。break。break。0x0f。 //消除抖動 if(key_press()) //有鍵按下 { key=PIND。 //如果有鍵按下返回 1 } } /***********獨立鍵值掃描函數(shù) ****************/ uchar key_scan(uchar l) { uchar key。 //取出 D 端口低四位的值 if(i==0x0f) //判斷是否有鍵按下 { return 0。 //讀取 D 端口值 i=iamp。 //INT0 取反 } /***********獨立鍵盤掃描函數(shù) ****************/ uchar key_press() { uchar i。 //顯示百分為 lcd_wdat(0x56)。 //顯示“ .” lcd_wdat(d[1])。 //在第二行 12 列開始顯示 lcd_wdat(d[0])。 //取出中間位 d[2]=a%10%10+0x30。 //并轉(zhuǎn)為 3 為整形數(shù)據(jù) d[0]=a/100+0x30。 //啟動 AD 使能,開始轉(zhuǎn)換 j=ADCH。 //定義中間變量存取 ad 轉(zhuǎn)換后的變量 ADMUX=0x63。 //日個位數(shù)據(jù) day[6]=week%16|0x30。 //月個位數(shù)據(jù) day[4]=date/16|0x30。 //年個位數(shù)據(jù) day[2]=month/16|0x30。 //秒個位數(shù)據(jù) day[0]=year/16|0x30。 //分鐘個位數(shù)據(jù) time[4]=sec/16|0x30。 //小時個位數(shù)據(jù) time[2]=min/16|0x30。 //讀取星期 time[0]=hour/16|0x30。 //讀取月 year=ds1302read(0x8d)。 //讀取時 date=ds1302read(0x87)。 //讀取秒 min=ds1302read(0x83)。 //控制命令 ,WP=0,允許寫操作 write_ds1302(0x90,0xab)。 //rst 置為 0,停止寫數(shù)據(jù) } /********以下是讀取時間函數(shù) ,負責(zé)讀取當(dāng)前的時間 ,并將讀取到的時間轉(zhuǎn)換為 10 進制數(shù)********/ void get_time() 第 26頁 (共 30 頁) { uchar sec,min,hour,date,month,year,week。 //開始寫入數(shù)據(jù) sclk=0。 //rst 置為 1,開始傳輸數(shù)據(jù) ds1302writebyte(cmd)。 //顯示秒個位 } /*************時間函數(shù) ******************/ void write_ds1302(uchar cmd,uchar dat) { sclk=0。 lcd_wdat(time[4])。 //顯示 39。 //顯示分鐘十位 lcd_wdat(time[3])。:39。 //顯示小時個位 lcd_wdat(0x3a)。 //從第 2 行第 1 列開始顯示 lcd_wdat(time[0])。 //第 1 行 16 位開始顯示 lcd_wdat(day[6])。 //顯示日十位 lcd_wdat(day[5])。 //顯示月個位 lcd_wdat(0x2d)。 //顯示“ — ” lcd_wdat(day[2])。 //顯示年十位 lcd_wdat(day[1])。 //讀取結(jié)束 } /********LCD 顯示的數(shù)據(jù)函數(shù) **********/ void lcd_disp () { lcd_wcmd(0x02 | 0x80)。 //寫入要修改的時間 /日期 sclk=1。 //初始化 rst 置為 1,傳輸開始 ds1302writebyte(cmd)。 //初始化 rst 置為 0 sclk=0。 //讀取結(jié)束 return dat。 //讀取要得到的時間 /日期 sclk=1。 //初始化 rst 置為 1,傳輸開始 ds1302writebyte(cmd)。 //初始化 rst 置為 0 sclk=0。 //返回數(shù)據(jù) } /***********向 ds1302 讀數(shù)據(jù)函數(shù) *********/ uchar ds1302read(uchar cmd) { uchar dat。 //數(shù)據(jù)右移一位,準(zhǔn)備接受下位數(shù)據(jù) } DDRA=0xf7。 //延時 10us sclk=0。 //把要傳送的當(dāng)前位數(shù)據(jù)置為 0,其余位保持不變 sclk=1。 //把要傳送的當(dāng)前位數(shù)據(jù)置為 1,其余位保持不變 else dat=datamp。n8。 //設(shè)置 ds1302 的 io 端口為輸出 delayus(10)。 //數(shù)據(jù)右移一位,準(zhǔn)備傳送下位數(shù)據(jù) } } /*********讀時間函數(shù) *********/ uchar ds1302readbyte() { uchar n,dat。 //延時 10us sclk=1。 //延時 10us sclk=0。0x01。m8。 //串行時鐘低電平 delayus(10)。 //定義循環(huán)變量 DDRA=0xf7。 //清除 LCD 的顯示內(nèi)容 delayms(5)。 //移動光標(biāo) delayms(5)。 //顯示開,關(guān)光標(biāo) delayms(5)。 //16*2 顯示, 5*7 點陣, 8 位數(shù)據(jù) delayms(5)。 } /*********lcd 初始化函數(shù) *********/ void lcd_init(
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1