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

正文內(nèi)容

單片微型機(jī)原理應(yīng)用與實(shí)驗(yàn)-wenkub

2023-07-11 12:44:34 本頁面
 

【正文】 存器。比如跑步運(yùn)動(dòng)員需要秒表計(jì)時(shí),學(xué)生需要鬧鐘提醒上課,等…..目的: 設(shè)計(jì)一個(gè)電子時(shí)鐘包括日期,秒表溫度,音樂,鬧鐘,貪睡。應(yīng)解決的主要問題: 單片機(jī)程序的設(shè)計(jì)和改動(dòng)I/o口的分配;硬件電路的設(shè)計(jì)和故障的的排除。,.音樂的設(shè)定一,包括,love transfer和Fairy Tale兩首歌,由于單片機(jī)空間有限只放了兩首歌。)4 設(shè)計(jì)結(jié)果及分析結(jié)果如圖所示5 總結(jié)通過本學(xué)期學(xué)習(xí)的單片機(jī)課我們學(xué)到了很多知識(shí),雖然讓自己寫下來幾乎不可能,但起碼看得懂,還有會(huì)改動(dòng)。在經(jīng)過參考書的學(xué)習(xí)和自己的認(rèn)真思考花了很大的時(shí)間終于調(diào)試成功。莫名其妙的各種問題層出不窮,經(jīng)過多次排查總結(jié)規(guī)律,焊工的水平有限虛焊很多,還有在排查問題時(shí)發(fā)現(xiàn)問題我們應(yīng)該遵從2個(gè)順序去1先看現(xiàn)象分析問題可能有什么導(dǎo)致,是沒加上電?還是虛焊有的功能沒實(shí)現(xiàn)/2查找問題模塊化,一個(gè)模塊一個(gè)模塊的的去檢查這樣有順序不盲目或者遺漏! 經(jīng)過多天的的課程設(shè)計(jì)我們學(xué)習(xí)到了很多,不僅是知識(shí)更寶貴的是經(jīng)驗(yàn)!感謝老師的辛苦輔導(dǎo)和同學(xué)的認(rèn)真幫助。define LCD1602_DATA P0 //1602液晶數(shù)據(jù)口sbit LCD1602_RS=P1^0。 //實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳 sbit DS1302_IO = P3^1。 //蜂鳴器sbit esc=P1^7。 //減少鍵sbit ok = P1^7 。bit first_flag=1, //一級主界面顯示標(biāo)志 second_flag, //二級菜單顯示標(biāo)志 third_flag, //三級菜單顯示標(biāo)志 playmusic, //播放音樂的標(biāo)志 light_flag1=1, //背光第一次計(jì)時(shí)標(biāo)志 light_flag=1 。 //溫度暫存//////以下為播放音樂的設(shè)置define SYSTEM_OSC 12000000define SOUND_SPACE 4/5uint code FreTab[12] = { 262,277,294,311,330,349,369,392,415,440,466,494 }。 //音符定時(shí)器初值暫存 uchar Sound_Temp_TH1,Sound_Temp_TL1。//按鍵加減調(diào)整暫存數(shù)char position1,position2,position3,position4,position5,position6,position7。char code week[][4]={MON,TUE,WED,THU,FRI,SAT,SUN}。 for(x=z。y)。 LCD1602_EN = 1 。 }/**********************************************************寫指令 ************************************************************/ void LCD1602_write_cmd(uchar cmd){ LCD1602_check_busy()。 LCD1602_EN = 1 。 LCD1602_RS = 1 。 _nop_()。//CGRAM起始地址 for(i=0。 //8位數(shù)據(jù),雙列顯示,5*7字形 LCD1602_write_cmd(0x0c)。}/************************************************************指定位置寫字符*************************************************************/ void LCD1602_write_char(uchar x , uchar y , uchar chardata){ LCD1602_set_postion(x,y) 。\039。 ACC = d。 //相當(dāng)于匯編中的 RRC DS1302_CLK = 1。 for(i=8。 DS1302_CLK = 1。 DS1302_CLK = 0。 // 寫1Byte數(shù)據(jù) DS1302_CLK = 1。 DS1302_CLK = 0。 // 讀1Byte數(shù)據(jù) DS1302_CLK = 1。//允許寫操作 Write1302(0xc0,0xf0) 。//星期 Write1302(0x88,0x05) 。//分 Write1302(0x80,0x55) 。 //貪睡初始值 關(guān)閉 /******鬧鐘初始值******/ Write1302(0xc2,0) 。//鬧鐘次數(shù)標(biāo)志 ////第二個(gè)鬧鐘 Write1302(0xca,0) 。//鬧鐘次數(shù)標(biāo)志 //////////// Write1302(0xd8,0) 。//禁止寫操作 }}/*********************************************************** ******************DS18B20驅(qū)動(dòng)程序******************************************************************************/ void delay_18b20(unsigned int i)//延時(shí)函數(shù){ while(i)。 //稍做延時(shí) DQ = 0。 x=DQ。for (i=8。 DQ = 1。}//寫一個(gè)字節(jié)void WriteOneChar(unsigned char dat){ unsigned char i=0。 DQ = datamp。 dat=1。unsigned char t=0。 // 啟動(dòng)溫度轉(zhuǎn)換delay_18b20(200)。 //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度a=ReadOneChar()。0xf0)4。 LCD1602_write_data(Read1302(0x8d)/16+0x30)。 // 十月 LCD1602_write_data(Read1302(0x89)%16+0x30)。 // 日 LCD1602_write_data(2)。)。 39。 // 時(shí) LCD1602_write_data(39。 // 十分 LCD1602_write_data(Read1302(0x83)%16+0x30)。 LCD1602_write_char(6,1,Read1302(0x81)/16+0x30)。 //溫度顯示 LCD1602_write_data(temp%10+0x30)。)。 //10ms RCAP2L=(6553610000)%256。 ET2 = 1。 //10ms TL1=(6553610000)%256。}/******************************************************************** ************二級菜單顯示函數(shù)********************************************************************************/void second_interface(){ LCD1602_write_char(0,(menu_num*3)%2,4)。 //清除殘留顯示三角形 if(!((menu_num*3)%2)) //判斷是否要往液晶寫入顯示,menu_num每跳變2時(shí)寫一次 { LCD1602_write_string(1,0,menu[menu_num])。 // 1602液晶第二行顯示 } }/******************************************************************** ************三級菜單顯示函數(shù)********************************************************************************/void third_interface(){ switch(menu_num) { case 0 : { if(!position1) //時(shí)間設(shè)置界面,僅進(jìn)入三級菜單界面時(shí)刻顯示一下 { LCD1602_write_string(0,0,20)。 //顯示自定義字符“年” LCD1602_write_data(Read1302(0x89)/16+0x30)。 // 十日 LCD1602_write_data(Read1302(0x87)%16+0x30)。 // 十時(shí) LCD1602_write_data(Read1302(0x85)%16+0x30)。 LCD1602_write_char(3,1,Read1302(0x83)/16+0x30)。)。//第一次進(jìn)入三級菜單時(shí)將光標(biāo)放的位置 position1=1。 // 時(shí) LCD1602_write_data(39。 // 十分 LCD1602_write_data(Read1302(0xc5)%16+0x30)。 // 十時(shí) LCD1602_write_data(Read1302(0xcb)%16+0x30)。 LCD1602_write_char(3,1,Read1302(0xcd)/16+0x30)。 // 鬧鐘次數(shù)標(biāo)志 LCD1602_write_cmd(0x80+1)。 if(Read1302(0xd3)) LCD1602_write_string(3,1,Love Transfer)。 } }break。 LCD1602_write_char(6,1,Read1302(0xd5)/16+0x30)。 } }break。 LCD1602_write_char(5,1,Read1302(0xdb)/16+0x30)。 } }break。)。 LCD1602_write_char(10,1,39。 } LCD1602_write_char(2,1,hour1/10+0x30)。 LCD1602_write_char(8,1,sec1/10+0x30)。 }break。 }}/******************************************************************** ************播放音樂函數(shù)********************************************************************************/void InitialSound(){ playmusic=1。 // 計(jì)算TH1應(yīng)裝入的初值 TH1 = Sound_Temp_TH1。 ET1 = 0。}void BeepTimer0() interrupt 1 //音符發(fā)生中斷{ if(esc==0) { delay(5)。 TH0 = Sound_Temp_TH0。 unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength。i++) // 根據(jù)調(diào)號(hào)及升降八度來生成新的頻率表 { j = i + Signature。 if(Octachord == 1) NewFreTab[i]=2。 } Point = 0。 // 算出1分音符的長度(幾個(gè)10ms) LDiv4 = LDiv0/4。 while(Point SoundLength) { SL=Tone%10。 //查出對應(yīng)音符的頻率 if(SL!=0) { if (SM==1) CurrentFre = 2。 Sound_Temp_TL0 = Temp_T%256。 //算出是幾分音符 XG=Length/10%10。 if(XG!=1) if(XG==0) //算出普通音符的演奏長度 if (SLen=4)
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1