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

正文內(nèi)容

c51課程設計報告(液晶時鐘)-wenkub

2023-04-26 22:17:51 本頁面
 

【正文】 、LED2(對應分)、LED3(對應秒)有效。解決方法:2:通過編寫自定義函數(shù),并設置對應的標記變量,用標記變量來控制對應函數(shù)的運行,進而解決了響應問題;通過外接3個LED燈,在設置時分秒時點亮對應的燈進行提示。除了以上介紹的模塊以外,本程序還編寫了其他的輔助模塊函數(shù)以及變量。鬧鈴修改模式下,計時不會暫停但鬧鈴不會響應,按鍵按鍵按鍵3以及按鍵4會響應,實現(xiàn)時間的加減、項目切換及退回主界面的操作。時間修改模式下計時會暫停,按鍵按鍵按鍵3以及按鍵4會響應,實現(xiàn)時間的加減、項目切換及退回主界面的操作。主顯示模塊包含了時間顯示模塊void TimeDisplay(void)函數(shù),其運行過程為首先讀取初始值,再通過定時器中斷TO的中斷服務函數(shù)void T0_int () interrupt 1 來進行秒計時并通過void TimeRunning(void)函數(shù)進行時間的加計數(shù)和進位運算;鬧鈴顯示模塊void AlarmDisplay(void),其運行過程為首先讀取初始值,再通過void AlarmRunning(void)來進行比較,如果預設時間與當前時間相等就將響鈴標記變量SoundFlage_1置為1,進而引發(fā)主函數(shù)中的響鈴事件。本程序共設計按鍵5個,按鍵及功能分別是1鍵:選擇功能界面下選擇時間修改、時間和鬧鈴修改狀態(tài)下的增加“1”計數(shù);2鍵:選擇功能界面下選擇鬧鈴修改、時間和鬧鈴修改狀態(tài)下的減少“1”計數(shù);3鍵:主顯示界面下進入選擇功能界面、時間和鬧鈴修改狀態(tài)下切換修改項目、修改完成退回主顯示界面;4鍵:時間和鬧鈴修改狀態(tài)下直接退回主顯示界面;5鍵:主顯示界面下控制鬧鈴的開關(guān)。開發(fā)測試環(huán)境選擇開發(fā)軟件選擇了ARM公司的KeiluVision4,仿真軟件選擇了英國Labcenter electronics公司的proteus7 professional,測試硬件選擇了普中的HC6800開發(fā)箱。在鬧鈴顯示模塊還包含了鬧鈴開關(guān)控制模塊,用于控制鬧鈴是否開啟,若鬧鈴開啟會,鬧鈴時間后就會顯示“P”字母。進行時間加減時,計數(shù)會循環(huán)變化,如:當時間為23:59:59時,時加會變?yōu)?0,分加會變?yōu)?0并且時會加1,秒同理;當時間為00:00:00時,時減會變?yōu)?3,分減會變?yōu)?9并且時會減1,秒同理。進行時間加減時,計數(shù)會循環(huán)變化,如:當鬧鈴時間為23:59:59時,時加會變?yōu)?0,分加會變?yōu)?0并且時會加1,秒同理;當時間為00:00:00時,時減會變?yōu)?3,分減會變?yōu)?9并且時會減1,秒同理。如前面提到的GetKey(void)讀按鍵值函數(shù),void QueryKeyboard(void)查詢按鍵函數(shù),還有SetTimeFlage設置時間標志,DisplayFlage=0顯示標志,用于防止在發(fā)生中斷時,切斷當前的顯示,防止造成顯示亂碼,SetAlarmFlage設置鬧鐘標志,SetFlage 設置標志位,用于在設置選擇時,防止在液晶第二行顯示鬧鐘的時間,SoundFlage_1用于控制的鬧鐘的開和關(guān)的標志位,SoundFlage_2用于計算響鈴的秒數(shù),Alarm_ON鬧鈴開關(guān)point_dis、mes用于定時器計時標志。四、附錄使用說明本程序下載到HC6800單片機開發(fā)箱的使用方法如下:a. 連接:,用連接線(排線或者杜邦線)分別將P3^0、P3^P3^P3^3連接到獨立按鍵的KKKKK5;分別將P1^0、P1^P1^2連接到8*1的LED等的DDD3,再在相應的位置插上1602型液晶屏。按鍵1能進行加1計數(shù),按鍵2能進行減1計數(shù),按鍵3能進行LED1~3的順序切換(LED3時再按一次則會回到主界面),按鍵4可直接退回主界面。 //定義時間的初始值char AHour=23,AMinute=59,ASecond=50。 sbit one_add = P3^0。sbit alarm_on = P3^4。sbit LED3 = P1^2。 //定義用于液晶顯示的字符串數(shù)組uchar Display2[]=1:Time 2:Alarm 。 //聲明1602液晶初始化函數(shù)void lcd_w_dat ( uchar dat )。 //聲明讀按鍵值函數(shù)void QueryKeyboard(void)。 //聲明主菜單顯示函數(shù)void Display(void)。 //聲明時鐘運行函數(shù)void AlarmRunning(void)。 //計算定時器進入中斷的次數(shù),也用于計算秒 if(mes5) ring=1。 else { point_dis=0。 if (SoundFlage_1==1) //若鬧鐘鈴被打開 { SoundFlage_2++。 //關(guān)蜂鳴器 } } } if (DisplayFlage==0) //判斷有無其它函數(shù)在對液晶進行寫操作 { Display()。 //初始化1602液晶 TMOD=0x01。 //打開總中斷 ET0=1。 //調(diào)用設置時間函數(shù) } if(SetAlarmFlage==1) //設置鬧鐘標志位被置1,就說明當前處于設置鬧鐘狀態(tài) { SetAlarm()。 Alarm_ON==1) //若時間到了,這標志位就會被置1 { if (ring==0) //,用于半秒響一次鈴、滅一次鈴 { Sound=1。 while (SetTimeFlage == 1) //直到時間設置完成才推出此循環(huán) { lcd_w_cmd(0x01)。\039。 //因為已經(jīng)進入設置時間狀態(tài),所以關(guān)總中斷和管定時器中斷 ET0=0。 while(KeyValue!=3) //等待按下確認按鍵 { LED1 = 0。 } if (KeyValue==2) //若按下按鍵2,就對時進行減1 { if(Hour1) Hour。 break。 //點亮LED2,用于顯示當前是在設置時鐘的分 KeyValue = GetKey()。 else Hour++。 else Hour。 } } LED2=1。 if (KeyValue==1) //若按下按鍵1,就對秒進行加1 { if(Second59) Second++。 else Hour++。 if(Minute==0) { Minute=59。 } } TimeDisplay()。 //打開相關(guān)中斷 ET0=1。 uchar aset_dis[]=Alarm setting。\039。 AlarmDisplay()。 else AHour=0。 //顯示當前時鐘的值,用于在液晶顯示刷新 if(KeyValue==4) { SetAlarmFlage=0。 while(KeyValue!=3) //若沒有按下確認按鍵,直到按下確認按鍵為止 { if(SetAlarmFlage==1) LED2=0。 if(AHour==23) AHour=0。 if(AHour==0) AHour=23。 break。 //點亮LED3,用于顯示當前是在設置時鐘的秒 KeyValue = GetKey()。 if(AHour==23) AHour=0。 els
點擊復制文檔內(nèi)容
教學教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1