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

正文內容

單片微型機原理應用與實驗-wenkub

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

【正文】 存器。比如跑步運動員需要秒表計時,學生需要鬧鐘提醒上課,等…..目的: 設計一個電子時鐘包括日期,秒表溫度,音樂,鬧鐘,貪睡。應解決的主要問題: 單片機程序的設計和改動I/o口的分配;硬件電路的設計和故障的的排除。,.音樂的設定一,包括,love transfer和Fairy Tale兩首歌,由于單片機空間有限只放了兩首歌。)4 設計結果及分析結果如圖所示5 總結通過本學期學習的單片機課我們學到了很多知識,雖然讓自己寫下來幾乎不可能,但起碼看得懂,還有會改動。在經(jīng)過參考書的學習和自己的認真思考花了很大的時間終于調試成功。莫名其妙的各種問題層出不窮,經(jīng)過多次排查總結規(guī)律,焊工的水平有限虛焊很多,還有在排查問題時發(fā)現(xiàn)問題我們應該遵從2個順序去1先看現(xiàn)象分析問題可能有什么導致,是沒加上電?還是虛焊有的功能沒實現(xiàn)/2查找問題模塊化,一個模塊一個模塊的的去檢查這樣有順序不盲目或者遺漏! 經(jīng)過多天的的課程設計我們學習到了很多,不僅是知識更寶貴的是經(jīng)驗!感謝老師的辛苦輔導和同學的認真幫助。define LCD1602_DATA P0 //1602液晶數(shù)據(jù)口sbit LCD1602_RS=P1^0。 //實時時鐘時鐘線引腳 sbit DS1302_IO = P3^1。 //蜂鳴器sbit esc=P1^7。 //減少鍵sbit ok = P1^7 。bit first_flag=1, //一級主界面顯示標志 second_flag, //二級菜單顯示標志 third_flag, //三級菜單顯示標志 playmusic, //播放音樂的標志 light_flag1=1, //背光第一次計時標志 light_flag=1 。 //溫度暫存//////以下為播放音樂的設置define SYSTEM_OSC 12000000define SOUND_SPACE 4/5uint code FreTab[12] = { 262,277,294,311,330,349,369,392,415,440,466,494 }。 //音符定時器初值暫存 uchar Sound_Temp_TH1,Sound_Temp_TL1。//按鍵加減調整暫存數(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。 //相當于匯編中的 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) 。 //貪睡初始值 關閉 /******鬧鐘初始值******/ Write1302(0xc2,0) 。//鬧鐘次數(shù)標志 ////第二個鬧鐘 Write1302(0xca,0) 。//鬧鐘次數(shù)標志 //////////// Write1302(0xd8,0) 。//禁止寫操作 }}/*********************************************************** ******************DS18B20驅動程序******************************************************************************/ void delay_18b20(unsigned int i)//延時函數(shù){ while(i)。 //稍做延時 DQ = 0。 x=DQ。for (i=8。 DQ = 1。}//寫一個字節(jié)void WriteOneChar(unsigned char dat){ unsigned char i=0。 DQ = datamp。 dat=1。unsigned char t=0。 // 啟動溫度轉換delay_18b20(200)。 //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度a=ReadOneChar()。0xf0)4。 LCD1602_write_data(Read1302(0x8d)/16+0x30)。 // 十月 LCD1602_write_data(Read1302(0x89)%16+0x30)。 // 日 LCD1602_write_data(2)。)。 39。 // 時 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時寫一次 { LCD1602_write_string(1,0,menu[menu_num])。 // 1602液晶第二行顯示 } }/******************************************************************** ************三級菜單顯示函數(shù)********************************************************************************/void third_interface(){ switch(menu_num) { case 0 : { if(!position1) //時間設置界面,僅進入三級菜單界面時刻顯示一下 { LCD1602_write_string(0,0,20)。 //顯示自定義字符“年” LCD1602_write_data(Read1302(0x89)/16+0x30)。 // 十日 LCD1602_write_data(Read1302(0x87)%16+0x30)。 // 十時 LCD1602_write_data(Read1302(0x85)%16+0x30)。 LCD1602_write_char(3,1,Read1302(0x83)/16+0x30)。)。//第一次進入三級菜單時將光標放的位置 position1=1。 // 時 LCD1602_write_data(39。 // 十分 LCD1602_write_data(Read1302(0xc5)%16+0x30)。 // 十時 LCD1602_write_data(Read1302(0xcb)%16+0x30)。 LCD1602_write_char(3,1,Read1302(0xcd)/16+0x30)。 // 鬧鐘次數(shù)標志 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。 // 計算TH1應裝入的初值 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ù)調號及升降八度來生成新的頻率表 { j = i + Signature。 if(Octachord == 1) NewFreTab[i]=2。 } Point = 0。 // 算出1分音符的長度(幾個10ms) LDiv4 = LDiv0/4。 while(Point SoundLength) { SL=Tone%10。 //查出對應音符的頻率 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)
點擊復制文檔內容
物理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1