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

正文內(nèi)容

基于模擬路燈控制系統(tǒng)的設(shè)計(jì)畢業(yè)論文說明書-資料下載頁

2025-06-27 20:19本頁面
  

【正文】 后TL0重新計(jì)數(shù),如此重復(fù)不止,這不但省去了用戶程序中的重裝指令,而且有利于提高定時精度。但這種方式下計(jì)數(shù)值有限,最大只能到256。這種自動重新加載工作方式非常適用于連續(xù)定時或計(jì)數(shù)應(yīng)用。當(dāng)為計(jì)數(shù)工作方式時,計(jì)數(shù)值的范圍是:1256(28)當(dāng)為定時工作方式時,定時時間計(jì)算公式為:(28計(jì)數(shù)初值)x晶振周期x12或 (28計(jì)數(shù)初值)x機(jī)器周期通過上述四種方式的比較,根據(jù)本計(jì)時軟件設(shè)計(jì)的要求,所以我們就采用了T0定時器的方式1。時間調(diào)整子程序流程圖: 圖42 時間調(diào)整子程序流程圖這次設(shè)計(jì)用到了T0和T1進(jìn)行中斷控制,T0和T1用的都是方式一。在中斷子程序中放進(jìn)了顯示程序,中斷時間為1Ms,可以實(shí)現(xiàn)數(shù)碼管的動態(tài)掃描且無閃爍感。 中斷程序所謂的中斷就是指在計(jì)算機(jī)執(zhí)行程序過程中,當(dāng)出現(xiàn)某種情況時(例如:發(fā)生停電或其他情況),先由服務(wù)對象向CPU發(fā)出中斷請求信號,要求CPU暫時中斷當(dāng)前程序的執(zhí)行,而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,等待處理程序執(zhí)行完畢后,再繼續(xù)處理執(zhí)行原來被中斷的程序。實(shí)現(xiàn)這一個功能的部件稱作為中斷系統(tǒng),申請CPU中斷的請求源稱之為中斷源,單片機(jī)的中斷系統(tǒng)一般允許多個中斷源,若當(dāng)多個中斷源同時向CPU請求中斷時,就存在一個中斷優(yōu)先權(quán)的問題。通常情況下,根據(jù)中斷源的優(yōu)先級別,優(yōu)先處理最緊急事件的中斷請求源,即最先響應(yīng)級別最高的中斷請求。MCS51單片機(jī)的中斷控制系統(tǒng)有兩種中斷方式,即外部中斷與內(nèi)部中斷。外部中斷是指從單片機(jī)的外部引腳/INT0和/INT1輸入中斷請求信號的中斷,即外部中斷源共有兩個。如輸入/輸出的中斷請求、掉電和設(shè)備故障的中斷請求都可以作為外部中斷源,從引腳輸入。內(nèi)部中斷是指單片機(jī)芯片內(nèi)部產(chǎn)生的中斷,MCS51單片機(jī)的內(nèi)部中斷有定時/計(jì)數(shù)器T0和T1的溢出中斷、串行口的發(fā)送/接收中斷。當(dāng)定時/計(jì)數(shù)器T0和T1的定時或計(jì)數(shù)到時,由硬件自動置位TCON的TF1或TF0,然后向CPU申請中斷;CPU響應(yīng)中斷而轉(zhuǎn)向中斷服務(wù)程序時,由硬件自動將TF0或TF1清零。當(dāng)串行口發(fā)送或接收完一幀數(shù)據(jù)時,由硬件自動置位SCON的TI或RI,以此向CPU申請中斷;CPU響應(yīng)中斷后,硬件不能自動將TI或RI清零,即CPU響應(yīng)串行口中斷后不能自動撤除中斷請求信號,必須由用戶采用軟件方法將TI或RI清零,來撤除中斷請求信號。中斷過程分為5個階段:中斷請求、中斷優(yōu)先、中斷響應(yīng)、中斷處理和中斷返回。其中中斷處理就是執(zhí)行中斷服務(wù)程序,這就是中斷系統(tǒng)的核心。不同的計(jì)算機(jī)系統(tǒng)的中斷處理過程各具特色,但是對多數(shù)計(jì)算機(jī)而言,中斷服務(wù)程序的流程如下。中斷處理的過程基本上是由3部分組成,第一部分為準(zhǔn)備部分,它的基本功能是保護(hù)現(xiàn)場,相對于非向量中斷方式則需要確定中斷源,然后開放中斷,允許更高級的中斷請求來打斷低級的中斷服務(wù)程序;第二部分是處理部分,即真正執(zhí)行具體的為某個中斷源服務(wù)的中斷服務(wù)程序;第三部分是結(jié)尾部分,首先要關(guān)掉中斷,以便返回原來的程序后可響應(yīng)其他的中斷請求。中斷服務(wù)程序的最后一條指令一定是中斷返回指令了。流程圖如下: 圖43 中斷程序流程圖 按鍵程序?qū)τ诎存I電路的設(shè)計(jì),在沒有鍵按下去時一直為高電平,有按鍵按下時就變?yōu)榈碗娖健纹瑱C(jī)據(jù)此作為判斷的依據(jù)。用來表示每個不同的按鈕按下能夠?qū)崿F(xiàn)不同的功能,例如:調(diào)節(jié)定時開燈時間、定時關(guān)燈時間等等。當(dāng)單片機(jī)查到按鍵閉合時,就調(diào)用按鍵功能程序,來實(shí)現(xiàn)相應(yīng)的功能。 程序清單與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),界面友好,易學(xué)易用。include sbit function = P1^0。 sbit hour_add = P1^1。sbit hour_sub = P1^2。sbit minute_add = P1^3。sbit minute_sub = P1^4。sbit lamp1 = P3^0。sbit lamp2 = P3^1。sbit lamp3 = P3^2。sbit lamp4 = P3^3。sbit guang=P0^2。bit EN_COCLK = 1。bit BEGIN = 0。unsigned char t。unsigned char hour。unsigned char minute。unsigned char second。unsigned char half_second。unsigned int ms50。struct time{ unsigned char hour。 unsigned char minute。 unsigned char second。 }ds[2]。code unsigned char seg[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。 unsigned char code tab[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。 // CA//unsigned char code choose_bit[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}。 unsigned char code choose_bit[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}。unsigned char idata disdata[7]。unsigned char idata dissetup[7]。unsigned char turnon[4]={0x01,0x02,0x04,0x08}。unsigned char key_min_hour = 0。 // 分或秒閃爍unsigned char disp_type = 0。 // 記錄時間組unsigned char rn。 // 按定時開關(guān)鍵次數(shù)/**************************************** 延時1毫秒*****************************************/void delay1ms(unsigned int i) { unsigned int a,b。 for(a=0。ai。a++) for(b=0。b120。b++)。}void delay(unsigned char a){ while(a) 。}/******************************* 顯示時鐘*******************************/void disp_clock(void){ unsigned char display。 unsigned char i。 disdata[0] = hour/10。 disdata[1] = hour%10。 disdata[2] = minute/10。 disdata[3] = minute%10。 disdata[4] = second/10。 disdata[5] = second%10。 for(i=0。 i6。 i++) { P0 = 0xff。 display = tab[disdata[i]]。 if(half_secondamp。amp。(i==3)) { display amp。= 0x7f。 } P2 = choose_bit[i]。 P0 = display。 delay1ms(1)。 } P0 = 0xff。 // 關(guān)燈}/******************************* 顯示設(shè)置時間值*******************************/void disp_init(void){ unsigned char display。 unsigned char i。 dissetup[0] = ds[disp_type1].hour/10。 dissetup[1] = ds[disp_type1].hour%10。 dissetup[2] = ds[disp_type1].minute/10。 dissetup[3] = ds[disp_type1].minute%10。 dissetup[4] = ds[disp_type1].second/10。 dissetup[5] = ds[disp_type1].second%10。 for(i=0。i6。i++) { P0 = 0xff。 display = tab[dissetup[i]]。 if(i==3||i==1) { display amp。= 0x7f。 } P2 = choose_bit[i]。 P0 = display。 delay1ms(1)。 } P0 =0xff。} /****************************** 鍵盤掃描子程序******************************/void keyscan(void){ unsigned char houradd =1。 unsigned char minadd =1。 if(!function) { delay1ms(20)。 if(function==0){ while(function==0)。 EN_COCLK = 0。 if(++disp_type==3) { disp_type = 0。 EN_COCLK = 1。 } }} if(!hour_add) { delay1ms(20)。 if(hour_add==0){ while(hour_add==0)。 switch(disp_type) { case 0: if(++hour=24) hour = 0。 break。 case 1: if(++ds[0].hour=24) ds[0].hour = 0。 break。 case 2: if(++ds[1].hour=24) ds[1].hour = 0。 break。 default: break。 } }} if(!hour_sub) { delay1ms(20)。 if(hour_sub==0) { while(hour_sub==0)。 switch(disp_type){ case 0: if(hour==0xff) hour = 23。 break。 case 1: if(ds[0].hour==0xff) ds[0].hour = 23。 break。 case 2: if(ds[1].hour==0xff) ds[1].hour = 23。 break。 default: break。 }}} if(!minute_add) { delay1ms(20)。 if(minute_add==0) { while(minute_add==0)。 switch(disp_type) { case 0: if(++minute=60) minute = 0。 break。 case 1: if(++ds[0].minute=60) ds[0].minute = 0。 break。 case 2: if(++ds[1].minute=60) ds[1].minute = 0。 break。 default: break。 }}}if(!minute_sub) { delay1ms(20)。 if(minute_sub==0) { while(minute_sub==0)。 switch(disp_type) { case 0: if(minute==0xff) minute = 59。 break。 case 1: if(ds[0].minute==0xff) ds[0].minute = 59。 break。 case 2: if(ds[1].minute==0xff) ds[1].minute = 59。 break。 default: break。 } } }} /************************************** conctrl_lamp() 控制路燈**************************************/void conctrl_lamp(void){ // 默認(rèn)狀態(tài)下設(shè)置,晚上6點(diǎn)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1