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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于at89c51的數(shù)控直流電流源設(shè)計(jì)-資料下載頁(yè)

2024-12-03 19:37本頁(yè)面

【導(dǎo)讀】隨著單片機(jī)技術(shù)的快速發(fā)展,基于單片機(jī)的微處器的應(yīng)用越來(lái)越廣泛。碼管顯示實(shí)際輸出電流值和電流設(shè)定值。轉(zhuǎn)換器輸出模擬量,再經(jīng)過(guò)運(yùn)算放大器隔離放大,控制輸出功率管的基極,隨著功率管基極電壓的變化而輸出不同的電流??刂撇糠诌x用單片機(jī)與專(zhuān)用的PWM調(diào)制。芯片相結(jié)合的方式來(lái)控制MOSFET開(kāi)關(guān)管的導(dǎo)通。其輸出電流的大小通過(guò)隔離型電流傳感。器轉(zhuǎn)換成對(duì)應(yīng)的模擬信號(hào)。實(shí)際測(cè)試結(jié)果表明,本系統(tǒng)實(shí)際應(yīng)用于需要高穩(wěn)定度小功率

  

【正文】 單片機(jī)的主程序主要包括 A/D 采樣子程序、 D/A 輸出(給定電流)子程序、鍵盤(pán)顯示程序及過(guò)流保護(hù)子程序等。 A/D 采樣子程序主要是采集電路中的電流信號(hào),再通過(guò)單片機(jī)運(yùn)算并顯 示出當(dāng)前的電流大小。 D/A 輸出程序?qū)⒂脩?hù)設(shè)定的恒流值轉(zhuǎn)換為模擬信號(hào),作為PWM 控制器的給定信號(hào), PWM 控制器再通過(guò)硬件實(shí)現(xiàn)自動(dòng)恒流控制。鍵盤(pán)與程序用 LED 動(dòng)態(tài)顯示數(shù)據(jù)信息,在一個(gè)主程序周期中掃描檢測(cè)一次鍵盤(pán),查看是否有有效的按鍵按下,再根據(jù)按鍵的狀態(tài)作出相應(yīng)的處理。 A/D 采樣程序 A/D 在檢測(cè)電流信號(hào)時(shí),使用 ADS7841 的通道 0。單片機(jī)給 ADS7841 發(fā)出通道選擇信號(hào),然后等待 A/D 芯片轉(zhuǎn)換數(shù)據(jù),最后讀取其轉(zhuǎn)換數(shù)據(jù)。在軟件中,還采用了濾波子程序,增強(qiáng)了 A/D采樣的抗干擾能力。 A/D 采樣程序流 程圖如圖 所示: N Y 圖 A/D采樣程序 開(kāi)始 初始化 ADS7841 送轉(zhuǎn)換的通道地址 轉(zhuǎn)換完否? 讀 A/D 轉(zhuǎn)換數(shù)據(jù) 返回 基于 AT89C51 的 數(shù)控直流電流源 設(shè)計(jì) 21 int main() { SP_ Init_ IOA(OxffOO, OxffOO, OxffOO)。 //設(shè)置 A口高八位為高電平輸出口 SP_ Init_ IOB(OxfOOf, OxffOOO, OxfOOf)。 KeyDownTimes=0。 KeyFlag=NoKey。 //SP_ INT_ 128Hz()。 SACM_ S480_ Initial(Auto)。 //自動(dòng)方式播放初始化 //SP_ INT_ 128Hz()。 SACM_ S480_ Play(14,DAC1,Ramp_ UpDn_ On)。 //語(yǔ)音 : 請(qǐng)輸入指定電流值 While(1) { //SIO_ Data=OxOfff。 //if(SIO_ Data!=SIO_ DataA) //{ SIO_ DAC(SIO_ Data)。 //調(diào)用 SIO_DAC()。 里面 // SIO_ DataA=SIO_ Data。 //} F_ ClearWatchdog()。 F_ Key_ Scan()。 While(KeyFlag==HaveKey) { KeyVal=F_ Get_ Key()。 KeyFlag=0。 Switch(KeyVal) { case 0。 //錯(cuò)誤鍵處理 break。 case 1: if(KeyDownTimes< 4) { SACM_ S480_ Play(0,DAC1,Ramp_ UpDn_ On)。 //定義語(yǔ)言索引號(hào)、播放通 ,允許音量增 /減調(diào)節(jié) KeycodeLED[KeyDownTime]=KeyVal。 // 將鍵值保存到數(shù)據(jù)組中去 KeyDownTimes++。 } break。 case 2: if(KeyDownTimes< 4) { SACM_ S480_ Play(1,DAC1,Ramp_ UpDn_ On)。 沈陽(yáng)工程學(xué)院畢業(yè)設(shè)計(jì)(論文) 22 KeycodeLED[KeyDownTimes]=KeyVal。 KeyDownTimes++。 } break。 case 3: if(KeyDownTimes< 4) { SACM_ S480_ Play(2,DAC1,Ramp_ UpDn_ On)。 KeycodeLED[KeyDownTimes]=KeyVal。 KeyDownTimes++。 } break。 case 4: if(KeyDownTimes< 4) { SACM_ S480_ Play(3,DAC1,Ramp_ UpDn_ On)。 KeycodeLED[KeyDownTimes]=KeyVal。 KeyDownTimes++。 } break。 case 5: if(KeyDownTimes< 4) { SACM_ S480_ Play(4,DAC1,Ramp_ UpDn_ On)。 KeycodeLED[KeyDownTimes]=KeyVal。 KeyDownTimes++。 } break。 case 6: if(KeyDownTimes< 4) { SACM_ S480_ Play(5,DAC1,Ramp_ UpDn_ On)。 KeycodeLED[KeyDownTimes]=KeyVal。 KeyDownTimes++。 } break。 case 7: if(KeyDownTimes< 4) { SACM_ S480_ Play(6,DAC1,Ramp_ UpDn_ On)。 KeycodeLED[KeyDownTimes]=KeyVal。 KeyDownTimes++。 } 基于 AT89C51 的 數(shù)控直流電流源 設(shè)計(jì) 23 break。 case 8: if(KeyDownTimes< 4) { SACM_ S480_ Play(7,DAC1,Ramp_ UpDn_ On)。 KeycodeLED[KeyDownTimes]=KeyVal。 KeyDownTimes++。 } break。 case 9: if(KeyDownTimes< 4) { SACM_ S480_ Play(8,DAC1,Ramp_ UpDn_ On)。 KeycodeLED[KeyDownTimes]=KeyVal。 KeyDownTimes++。 } break。 case 10: if(KeyDownTimes< 4) { SACM_ S480_ Play(9,DAC1,Ramp_ UpDn_ On)。 KeyVal=0。 KeycodeLED[KeyDownTimes]=KeyVal。 KeyDownTimes++。 } break。 case 11: //刪除鍵處理 { SACM_ S480_ Play(13,DAC1,Ramp_ UpDn_ On)。 KeyDownTimes=0。 //參數(shù)復(fù)位 for(a=0。a< 4。a++) KeycodeLED[a]=o。 TurnOffLed()。 SIO_ Data=0。 DA_ Data=0。 KeyDownTimes=0。 //保存按鍵按次 數(shù) TempLED[1]=0。 TempLED[1]=0。 TempLED[1]=0。 TempLED[1]=0。 KeycodeLED[0]=0。KeycodeLED[1]=0。KeycodeLED[2]=0。KeycodeLED[3]=0。 //熄滅所有的燈 。 } break。 case 12: //確認(rèn)按鍵處理 KeyVal=0。 沈陽(yáng)工程學(xué)院畢業(yè)設(shè)計(jì)(論文) 24 b=KeyDownTimes。 SACM_ S480_ Play(12,DAC1,Ramp_ UpDn_ On)。 for(a=0。a< KeyDownTimes。a++) { TempLED[b- 1]=KeycodeLED[a]。 b。 } DA_ Data=TempLED[0]+TempLED[1]*10。 DA_ Data+=TempLED[2]*100。 DA_ Data+=TempLED[3]*1000。 if(DA_ Data< 0x0004‖ DA_ Data> 2044) Out_ Away()。 else SIO_ Data=DA_ Data*2。 break。 case 13: //〞 〞鍵處理 SACM_ S480_ Play(10,DAC1,Pamp_ UpDn_ On)。 b=KeyDownTimes。 for(a=0。a< KeyDownTimes。a++) { TempLED[b- 1=]KeycodeLED[a]。 b。 } DA_ Data=TempLED[0]+TempLED[1]*10。 DA_ Data+=TempLED[2]*100。 DA_ Data+=TempLED[3]*1000。 if(DA_ Data< 0x0004‖ DA_ Data> 2044) Out_ Away()。 a=TempLED[0]。b=TempLED[1]。c=TempLED[2]。d=TempLED[3]。 LED_ Jian(a,b,c,d)。 KeyVal=0。 Key_ Jian+=1。 SIO_ Data=(DA_ Data+1)*2。 break。 case 14: //〞 +〞鍵處理 SACM_ S480_ Play(11,DAC1,Ramp_ UpDn_ On)。 b=KeyDownTimes。 for(a=0。a< KeyDownTimes。a++) { TempLED[b- 1]=KeycodeLED[a]。 b。 } DA_ Data=TempLED[0]+TempLED[1]*10。 DA_ Data+= TempLED[2]*100。 基于 AT89C51 的 數(shù)控直流電流源 設(shè)計(jì) 25 DA_ Data+= TempLED[3]*1000。 if(DA_ Data0x004‖ DA_ Data2044) Out_Away()。 a= TempLED[0]。b= TempLED[1]。c= TempLED[2]。d= TempLED[3]。 LED_Zeng(a,b,c,d)。 //LED_Show()。 KeyVal=0。 Key_Zeng+=1。 SIO_Data=(DA_Data+1)*2。 break。 default: break。 } } //SIO_Data=0x0fff。 //if(SIO_Data!=SIO_DataA) //{ //SIO_DAC(SIO_Data)。 //調(diào)用 SIO_DAC()。 里面 //SIO_DataA=SIO_Data。 //} //SIO_Data=0xffff。 //DAC(SIO_Data)。 //10 位 DAC while(SACM_S480_Status()amp。0x0001) { SACM_S480_ServiceLoop()。 F_ClearWatchdog()。 LED_Show()。 } //獲取語(yǔ)音數(shù)據(jù)并將其添入解碼隊(duì)列 SACM_S480_Stop()。 LED_Show()。 } } //=================================================================== // 結(jié)束 //===================================================================
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1