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

正文內(nèi)容

基于單片機(jī)控制直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)正文(參考版)

2024-11-16 14:58本頁面
  

【正文】 /**/ } 。low_flag=1。} if(t1==wide)//wide 的值即為低電平的時(shí)間 {PWM=0。 t2=0。//低電平時(shí)間計(jì)時(shí) t2++。TL0=0X9c。 time++。 //while(TI) {TI=0。 } void time0() interrupt 1 //定時(shí)器 0用于產(chǎn)生 PWM ,占空比通過 PID 計(jì)算獲得 {// SBUF=39。run_count++。 display_num1(ge,1)。 display_num1(shi,2)。amp。amp。 shi=(num%100)/10。bai==0)bai=11。 if(qian==11amp。 display_num1(qian,4)。 qian=num/1000。 } 智能儀器綜合設(shè)計(jì)用紙 48 delay1_ms(2)。break。break。break。break。 } void display_num1(uint dat,uchar num1) //指定的位上顯示 指定的一位數(shù)據(jù) { P0=xianshi[dat]。inum。 } void delay1(uint num) { uint i。j123。itime。 } void delay1_ms(uint time) //1ms 延時(shí)函數(shù) { uint i,j。key1==1。itimeamp。 } 智能儀器綜合設(shè)計(jì)用紙 47 void delay(uint time) { uint i。 //計(jì)算 wide,用于調(diào)節(jié) PWM 的占空比,計(jì)算周期為 100ms if(wide900)wide=900。en_1=en。 else if(un 400)un = 400。 un=a0*ena1*en_1+a2*en_2。 pid()。stop_count=run_count/2。amp。amp。amp。 } else //如果系統(tǒng)處于運(yùn)行模式則顯示電機(jī)的實(shí)際轉(zhuǎn)速值 display_num4(stop_count)。 if(set_count100) set_count=1。state_flag==0) //KEY3 為按鍵減 { while(key3==0)。key3==0amp。key2==1amp。 } if(key1==1amp。 set_count+=1。state_flag==0) //KEY2 為按鍵加 { while(key2==0)。key3==1amp。key2==0amp。 } } if(key1==1amp。 display_num4(set_count)。t1=0。stop_count=0。TR0=0。 } if(state_flag==0) //如果系統(tǒng)處于設(shè)置模式,則關(guān)閉定時(shí)器中斷和外部中斷,同時(shí)初始化部分變量 { PWM = 0。 a=1。un =0。en_1 =0。TR0=1。 state_flag=~state_flag。amp。amp。EA=1。 TR1=1。ET0=1。TL0=0X33。TH1=0xfa。 TMOD=0x21。 SCON=0x40。 void pid(void)。 void display_num1(uint dat,uchar num1)。 定義延時(shí)子函數(shù) void delay1(uint num)。 //定義 三個(gè)時(shí)刻的誤差存儲(chǔ)變量 float a0=,a1=,a2 =,un=0。 //電機(jī)轉(zhuǎn)速存儲(chǔ)變量 uint time=0。//設(shè)定轉(zhuǎn)速值 uint run_count=0。 bit state_flag=0。 bit high_flag=0。 uint time_high=100。 //低電平脈寬 uint t2=0。 uint wide=100。 sbit key2=P1^1。 sbit PWM=P1^7。同事,在 老師的身上我學(xué)得到很多實(shí)用的知識(shí),在此我表示感謝!同時(shí),對(duì)給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示衷心的感謝。 此次的設(shè)計(jì)并不奢望一定能成功,但一定要對(duì)已學(xué)的各種電子知識(shí)能有一定的運(yùn)用能力,我做設(shè)計(jì)的目的是希 望能檢查下對(duì)所學(xué)知識(shí)的運(yùn)用能力的好壞,并且開始慢慢走上創(chuàng)造的道路,這是非??少F的一點(diǎn)。 還有就是數(shù)字 PID 算法,因?yàn)檫@是關(guān)鍵的一步,位置型和增量型都是數(shù)字型 PID 算法,但是兩者都有自己的優(yōu)缺點(diǎn)。這就是 PID 算法的優(yōu)越性。 總之,通過本次設(shè)計(jì)不僅進(jìn)一步強(qiáng)化了專業(yè)知識(shí),還掌握了設(shè)計(jì)系統(tǒng)的方法、步驟等,為今后的工作和學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。 在編寫串口時(shí),需要了解單片機(jī)串行口的基礎(chǔ)知識(shí),串行口的結(jié)構(gòu)、有關(guān)的寄存器、串行口的工作方式、波特率等。在編寫程序的過程中遇到了一些問題,通過解決這些問題,我也有了一些收獲。 如果系統(tǒng)處于運(yùn)行模式 , xcount 開始計(jì)時(shí),當(dāng) xcount=82 時(shí),即為 1s 時(shí),調(diào)用串口中斷子程序,單片機(jī)開始發(fā)送數(shù)據(jù),模擬 I/O 口輸出 PWM,此時(shí) PWM 波的頻率為 ,周期為 ,然后調(diào)用 PID 函數(shù),計(jì)算出PWM 波輸出的占空比,最后上位機(jī)顯示轉(zhuǎn)速。 首先需要確定主程序, 主程序主程序是一個(gè)循環(huán)程序,其主要思路是, 首先 判斷系統(tǒng)的運(yùn)行模式,如果 KEY1鍵按下 , 且 state_flag為 1則系統(tǒng)處于運(yùn)行模式,如果 state__flag為 0則為設(shè)置模式 。同時(shí)在對(duì)硬件電路設(shè)計(jì)的過程中,鞏固了我的專業(yè)課知識(shí),使自己受益匪淺。通過這次設(shè)計(jì), 加強(qiáng)了我對(duì)單片機(jī)應(yīng)用知識(shí)的掌握,同時(shí)了解了目前工業(yè)生產(chǎn)中數(shù)字化系統(tǒng)的重要性,使我對(duì)使用單片機(jī)實(shí)現(xiàn)自動(dòng)化控制的設(shè)計(jì)過程有了全面地了解。 下面的圖片是最后調(diào)試出來的結(jié)果。后來因?yàn)樵O(shè)置轉(zhuǎn)速改變的原因,導(dǎo)致波形圖不能顯示的問題,后來通過更改 Y 標(biāo)尺幅值的大小得到解決。 總體的設(shè)計(jì)方案如圖 1 和圖 2: 圖 1 前面板 智能儀器綜合設(shè)計(jì)用紙 36 圖 2 程序框圖 智能儀器綜合設(shè)計(jì)用紙 37 在最后的調(diào)試階段還是出現(xiàn)不少的問題。 /指數(shù)字符串至數(shù)值轉(zhuǎn)換 從偏移量位置開始,使字符串中的下列字符: 0加號(hào)、減號(hào)、 e、 E、小數(shù)點(diǎn)(通常是句點(diǎn))解析為工程、科學(xué)或分?jǐn)?shù)格式的浮點(diǎn)數(shù),通過數(shù)字返回 。 這個(gè)函數(shù)節(jié)點(diǎn)可以幫助我們以字符串形式保存所要接收的數(shù)據(jù)。該函數(shù)拆分字符串,通過匹配之前的子字符串和匹配+剩 余字符串返回剩余的兩個(gè)字符串。 可在特定字符或子字符串上拆分字符串。 另外,我們需要用兩個(gè)開關(guān)按鈕指示是否打開串口和接收數(shù)據(jù),實(shí)現(xiàn)以上要求,需要兩個(gè)條件結(jié)構(gòu)的嵌套。 在串口通 信中 ,如果指定讀 取 100 個(gè)串口緩沖區(qū)的字節(jié)數(shù) ,如果當(dāng)前緩沖區(qū)的數(shù)據(jù) 量 不足 100 個(gè)時(shí) ,程序會(huì)一直停在 VISA 讀取 這個(gè)節(jié)點(diǎn)上 ,如果在超時(shí)的時(shí)間 (默認(rèn)是 10 秒 )內(nèi)還沒有湊足 100個(gè)數(shù)據(jù)的話 ,程序就會(huì)報(bào) Time out的錯(cuò)誤 ,如果超時(shí)時(shí)間設(shè)置得太長(zhǎng) ,有可能導(dǎo)致程序很長(zhǎng)時(shí)間停止在 VISA 讀取 這個(gè)節(jié)點(diǎn)上。正常情況下,發(fā)送線為高電平,每當(dāng)接收端檢測(cè)到傳輸線上檢測(cè)到發(fā)送過來的低電平就知道發(fā)送端已經(jīng)開始發(fā)送數(shù)據(jù);當(dāng)接收端接收到字符幀中的停止位時(shí),就確定發(fā)送完畢。發(fā)送端和接收端可以由各自的時(shí)鐘來控制數(shù)據(jù)的發(fā)送和接收,兩個(gè)時(shí)鐘源彼此獨(dú)立,互不同步。其中字節(jié)總 數(shù)端口,我們接收 8 位數(shù)據(jù)自然輸入一個(gè)常量 課程設(shè)計(jì)所要使用的是異步通信,在異步通信中,數(shù)據(jù)通常以字符或字節(jié)為單位組成字符幀傳送。 數(shù)據(jù)位 端口 是輸入數(shù)據(jù)的位數(shù) , 數(shù)據(jù)位的值介于 5 和 8 之間 , 默認(rèn)值為 8,我們選擇的也是 端口 指定要傳輸或接收的每一幀使用的奇偶校驗(yàn) ,本次課程設(shè)計(jì)中只需要從單片機(jī)向 PC 傳輸數(shù)據(jù),選擇方式 1,所以奇偶端口選擇 . 清空 I/O 緩沖區(qū) 運(yùn)用此函數(shù)來清除發(fā)送和接收的 I/O 接口的緩沖區(qū)。下位機(jī)中 T1 設(shè)置的計(jì)數(shù)初值分別是 TL1=0xfa和 TH1=0xfa。如果計(jì)數(shù)器的初始值為 X,則每過 256— X 個(gè)機(jī)器周期 T1 就產(chǎn)生溢出,溢出的周期為( 256— X) *12/fosc。T1 溢出率 。波特率可變,取決于定時(shí)器 T1 或 2 的溢出率。在下位機(jī)的主函數(shù)中設(shè)置 SCON=0x40 及 PCON=0x80,所以串行口工作于方式 1 且波特率倍增位SMOD=1,為波特率可變的 8 位異步通信接口。所以在這次的課程設(shè)計(jì)中選擇作為上位機(jī)。因?yàn)樯衔粰C(jī)需要實(shí)時(shí)監(jiān)控電機(jī)的轉(zhuǎn)速,所以在與下位機(jī)的串口通信中選擇了 LabVIEW 作為上位機(jī)。很希望大學(xué)期間可以多有一些這樣的課程設(shè)計(jì)。 實(shí)驗(yàn)過程中,大家在一起交流學(xué)習(xí),共同為一個(gè)課題而努力,這是平時(shí)很難得的機(jī)會(huì)。并且為了能夠不出錯(cuò),對(duì)于各個(gè)導(dǎo)線都 要進(jìn)行測(cè)試是否導(dǎo)通。 對(duì)于無線收發(fā)模塊和信號(hào)調(diào)理模塊(轉(zhuǎn)動(dòng)源模塊)了解還不夠透徹,主機(jī)模塊中的AT89S52 是本次設(shè)計(jì)的核心。主要就是 ZYMCU02 主機(jī)模塊 、 顯示與鍵盤模塊、 ZigBee 無線收發(fā) 實(shí)驗(yàn)?zāi)K 和 轉(zhuǎn)動(dòng)源實(shí)驗(yàn)?zāi)K 的運(yùn)用異界連接。對(duì)于運(yùn)用LabVIEW 進(jìn)行上位機(jī)對(duì)轉(zhuǎn)動(dòng)源的監(jiān)控,大家需要合作完成。同時(shí)在對(duì)硬件電路設(shè)計(jì)的過程中,鞏固了我的專業(yè)課知識(shí),使自己受益匪淺。 通過本次設(shè)計(jì),加強(qiáng)了我對(duì)單片機(jī)應(yīng)用知識(shí)的掌握,同時(shí)了解了目前工業(yè)生產(chǎn)中數(shù)字化系統(tǒng)的重要性,使我對(duì)使用單片機(jī)實(shí)現(xiàn)自動(dòng)化控制的設(shè)計(jì)過程有了全面地了解。我們組的課題 —— 直流電機(jī)轉(zhuǎn)速測(cè)量與控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。還有顯示圖的比列不協(xié)調(diào)等問題,都一一通過自動(dòng)調(diào)節(jié)標(biāo)尺和自動(dòng)調(diào)整圖例大小的設(shè)置得到解決。剛開始遇到串口線不能使用的問題,所以我們只能接一根串口轉(zhuǎn) USB線。 波形圖表并不能將字符串轉(zhuǎn)化為圖表形式,所以需要借助這個(gè) 函數(shù)節(jié)點(diǎn)令上面接收德字符串形式數(shù)據(jù)轉(zhuǎn)化為波形圖表可以接受的數(shù)值型數(shù)據(jù)。在搜索字符串 /字符輸入端接入字符串常量 F即可。如該函數(shù)沒有找到搜索字符串,匹配偏移量可返回 1,匹配之前的子字符串返回整個(gè)原始字符串,匹配+剩余字符串返回空字符串。在字符串中搜索 /拆分搜索字符串 /字符中指定的字符串或字符。 /拆分字符串 主要作用:使一個(gè)字符串拆分為兩個(gè)子串。解決的辦法是使用 Bytes at Port這個(gè)串口的屬性節(jié)點(diǎn) ,在 VISASerialadvance 下 ,也可以在 VISA 資源線上右鍵 創(chuàng)建 屬性節(jié)點(diǎn) 串口設(shè)置 Bytes at Port, Bytes at Port 這個(gè)屬性節(jié)點(diǎn)讀取當(dāng)前串口緩沖區(qū)有多少字節(jié)數(shù) ,然后將它的輸出連接到 VISA 讀取的 讀取字節(jié)數(shù) 這個(gè)輸入端上即可 ,這樣當(dāng)前緩沖區(qū)中有多少個(gè)字節(jié)就讀回多少個(gè) ,不會(huì)有任何等待。所以在讀取緩沖區(qū)端 口輸出的是字符串。異步通信通過規(guī)定字符幀格式來協(xié)調(diào)發(fā)送端和接收端的數(shù)據(jù)發(fā)送和接收。字符幀由發(fā)送端一幀一幀地發(fā)送。 讀取 這個(gè)函數(shù)的作用是從 VISA 資源名稱指定的設(shè)備或接口中讀取指定數(shù)量的字節(jié),并使數(shù)據(jù) 返回至讀取緩沖區(qū)。使用 的晶振,最后得出的波特率為 9600bit/s,在函數(shù)波特率選擇端口可以加上條件結(jié)構(gòu)予以選擇,當(dāng)然在這里我們要選擇 9600bit/樣,所以也需要使用條件結(jié)構(gòu),這里我們用的是 COM1 口。據(jù)此可計(jì)算溢出率和波特率。 T1 工作于模式 2,此時(shí)為初值自動(dòng)加載的定時(shí)方式。波特率= 2^SMOD/32傳送一幀信息總共 10 位,即 1位起始位( 0), 8位數(shù)據(jù)位(低位在前)和 1 位停止位( 1)。 /**/ } 智能儀器綜合設(shè)計(jì)用紙 25 第五章 上位機(jī)設(shè)計(jì) 函數(shù)介紹 配置串口 此函數(shù)主要的作用是使 VISA 資源名稱指定的串口按特定設(shè)置初始化。low_flag=1。} if(t1==wide)//wide 的值即為低電平的時(shí)間 {PWM=0。 t2=0。//低電平時(shí)間計(jì)時(shí) t2++。TL0=0X9c。 time++。 //while(TI) {TI=0。 時(shí)器中斷子程序: 關(guān)中斷 開啟計(jì)數(shù)器 T1 工作 計(jì)數(shù)器清零 調(diào)用子程序 dis_num()
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1