




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于單片機(jī)的程控電源設(shè)計(jì)1、 項(xiàng)目背景 直流穩(wěn)壓源是一種常見的電子儀器,其廣泛應(yīng)用于實(shí)驗(yàn)教學(xué)和科學(xué)研究等領(lǐng)域。目前使用的直流穩(wěn)壓電源大部分存在諸多缺點(diǎn),如輸出不可調(diào),電壓不穩(wěn)定等等,因而導(dǎo)致實(shí)驗(yàn)結(jié)果不精確。本次項(xiàng)目就設(shè)計(jì)一個(gè)基于單片機(jī)控制的程控電源。描述:使用單片機(jī)輸出PWM去控制電源調(diào)壓模塊以控制電源電壓輸出,實(shí)現(xiàn)步進(jìn)可調(diào)。項(xiàng)目參數(shù):1 輸入電壓816V,如果輸入電壓低于8V或者高于16V,利用BEEP報(bào)警,并且關(guān)掉PWM的輸出2 輸出電壓614V,如果輸出電壓低于6V或者高于14V,利用BEEP報(bào)警,同樣關(guān)掉PWM的輸出3 調(diào)壓分辨率0.25V4 用按鍵輸入電壓預(yù)設(shè)值,然后通過(guò)按鍵的“+”
2、、“-”來(lái)步進(jìn)調(diào)節(jié)電源的輸出,達(dá)到預(yù)設(shè)值允許的范圍內(nèi)5 通過(guò)LM3037(LCD14432)來(lái)顯示當(dāng)前的電壓預(yù)設(shè)值,當(dāng)前電壓的輸出值以及分辨率2、 項(xiàng)目概要分析1、 硬件分析:2、 軟件分析:1) 熟悉單片機(jī)的原理與應(yīng)用2) BEEP報(bào)警程序設(shè)計(jì)3) 矩陣按鍵程序設(shè)計(jì)4) 液晶顯示驅(qū)動(dòng)程序設(shè)計(jì)5) 產(chǎn)生PWM程序設(shè)計(jì)6) 電壓反饋AD采樣程序設(shè)計(jì)3、 系統(tǒng)分析1、 硬件分析:1) 單片機(jī)與BEEP、矩陣按鍵、LM3037液晶顯示以及AD采樣轉(zhuǎn)換芯片的具體連接。(單片機(jī)控制芯片)(BEEP電路部分)(矩陣按鍵輸入部分)(LM3037液晶顯示部分)(TLC549CD A/D轉(zhuǎn)換)2) 程控電路部分
3、原理圖:2、 軟件分析:1)BEEP報(bào)警,P22引腳出現(xiàn)低電平,BEEP發(fā)出聲音。2)矩陣按鍵的掃描,采用逐行掃描模式,掃描每個(gè)按鍵是否按下,并做鍵值處理。3)LM3037液晶的顯示,可以采用并行顯示或者串行顯示,該液晶自帶中文字庫(kù)。4)AD549CD A/D轉(zhuǎn)換芯片驅(qū)動(dòng)程序的編寫,5)定時(shí)器程序的編寫 6)外部中斷程序的編寫7)PWM脈寬調(diào)制波的產(chǎn)生4、 程序流程圖5、 程序設(shè)計(jì)#include<reg52.h>#include<intrins.h>/*-兩個(gè)常用的宏定義-*/#define uint8 unsigned char #define uint16 uns
4、igned int/*-AD采樣時(shí)使用的延時(shí)定義-*/#define Wait1us_nop_();#define Wait2usWait1us;Wait1us;#define Wait4us Wait2us;Wait2us;#define Wait10us Wait4us;Wait4us;Wait2us;#define Wait20us Wait10us;Wait10us;sbit LED_Control = P20;/* -數(shù)碼管顯示函數(shù)的聲明 -*/void SEG_Disp(uint8 dat);/*-掃描按鍵的說(shuō)明-*/void KEY_Scan(void);/*-延時(shí)函數(shù)的說(shuō)明-*
5、/void Delay_ms(uint16 z);/*-數(shù)碼管段選的定義-*/sbit HC138_A0 = P11;sbit HC138_A1 = P12;sbit HC138_A2 = P13;/*-lcd14432的定義-*/sbit RS = P15;sbit RW = P16;sbit EN = P17;bit BUSY(void);void Write_cmd(uint8 cmd);void Write_dat(uint8 dat);void LCD14432_Init(void);void HZ_Disp(uint8 *p);void LCD_Test();/*-AD轉(zhuǎn)換的引腳定
6、義-*/sbit Tlc549_Dout = P23;sbit Tlc549_CS = P24;sbit Tlc549_Clock = P22;uint8 Read_ADConvert(void);/* -T0的函數(shù)聲明-*/void Timer0_Init(void);/*-PWM的輸出端口-*/sbit PWM0 = P12;void PWM_Out(uint8 rate);uint8 key_value=0;/按鍵值uint8 count = 0;/記錄定時(shí)次數(shù)uint8 count1 = 0;/uint8 rate1 = 50;uint8 flag = 0;/*-09的數(shù)碼管斷碼表-*
7、/uint8 SEG_data10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uint8 AD_Value5;int main(void)uint8 i=0;uint8 Convert_value=0;uint8 temp=0,temp1=0,temp2=0;LED_Control = 0;Timer0_Init();/初始化定時(shí)器0LCD14432_Init();LCD_Test();while(1)/*本程序只顯示一位*/Convert_value = Read_ADConvert();Convert_value = Convert
8、_value +0.5;temp = Convert_value /51;temp = temp *2;/temp = (float)temp *10;/temp1 =(float) temp/10;/temp2 =(float) temp%10;Write_cmd(0x83);Write_dat(0x30+key_value);/預(yù)設(shè)電壓值8VWrite_dat('V');Write_cmd(0x87);/輸出電壓值Write_dat(0x30+temp);/Write_dat('.');/Write_dat(0x30+temp2);Write_dat(
9、9;V');/HZ_Disp("8");/程控電源顯示界面/SEG_Disp(temp);KEY_Scan();if(flag=1)/"+"分辨率rate1 = rate1+2;if(rate1>98)rate1 = 98;flag = 0;if(flag=2)/"+"分辨率rate1 = rate1-2;if(rate1<8)rate1 = 8;flag = 0;/SEG_Disp(count1);return 0;/*函數(shù)名稱:void SEG_Disp(uint8 dat)函數(shù)功能:數(shù)碼管的顯示函數(shù)入口參數(shù):
10、顯示09出口參數(shù):無(wú)調(diào)用模塊:MAIN*/void SEG_Disp(uint8 dat)P0 = SEG_datadat;HC138_A0 = 0;HC138_A1 = 0;HC138_A2 = 0;void KEY_Scan(void)uint8 temp;P3 = 0xf0;/設(shè)置輸入輸出/*-掃描第一行-*/P3 = 0xfe;/第一行輸出 0temp = P3;/讀取P3的值temp = temp & 0xf0;/屏蔽高4位,if( temp!= 0xf0)/判斷是否有鍵按下Delay_ms(100);if( temp!= 0xf0)/判斷是否有鍵按下switch(temp)
11、/做鍵值處理case 0xe0:key_value = 1;break;case 0xd0:key_value = 2;break;case 0xb0:key_value = 3;break;case 0x70:key_value = 4;break;/有鍵按下/temp = temp & 0xf0;/判斷按鍵有沒(méi)有松開,如果按鍵松開程序繼續(xù)執(zhí)行,/如果沒(méi)有松開,不斷讀取P3口的值來(lái)作為while的判斷條件while(temp!=0xf0)/等待松開按鍵temp = P3;/讀取P3的值temp = temp & 0xf0;/屏蔽高4位,/*-掃描第二行-*/P3 = 0xfd
12、;/第二行輸出 0temp = P3;/讀取P3的值temp = temp & 0xf0;/屏蔽高4位,if( temp!= 0xf0)/判斷是否有鍵按下Delay_ms(100);if( temp!= 0xf0)/判斷是否有鍵按下switch(temp)/做鍵值處理case 0xe0:key_value = 5;break;case 0xd0:key_value = 6;break;case 0xb0:key_value = 7;break;case 0x70:key_value = 8;break;/有鍵按下/temp = temp & 0xf0;/判斷按鍵有沒(méi)有松開,如果
13、按鍵松開程序繼續(xù)執(zhí)行,/如果沒(méi)有松開,不斷讀取P3口的值來(lái)作為while的判斷條件while(temp!=0xf0)/等待松開按鍵temp = P3;/讀取P3的值temp = temp & 0xf0;/屏蔽高4位,/*-掃描第三行-*/P3 = 0xfb;/第二行輸出 0temp = P3;/讀取P3的值temp = temp & 0xf0;/屏蔽高4位,if( temp!= 0xf0)/判斷是否有鍵按下Delay_ms(100);if( temp!= 0xf0)/判斷是否有鍵按下switch(temp)/做鍵值處理case 0xe0:key_value = 9;break;
14、case 0xd0:key_value = 0;break;case 0xb0:flag = 1;break;/"+"case 0x70:flag = 2;break;/"-"/有鍵按下/temp = temp & 0xf0;/判斷按鍵有沒(méi)有松開,如果按鍵松開程序繼續(xù)執(zhí)行,/如果沒(méi)有松開,不斷讀取P3口的值來(lái)作為while的判斷條件while(temp!=0xf0)/等待松開按鍵temp = P3;/讀取P3的值temp = temp & 0xf0;/屏蔽高4位,/*-掃描第四行-*/P3 = 0xf7;/第二行輸出 0temp = P3
15、;/讀取P3的值temp = temp & 0xf0;/屏蔽高4位,if( temp!= 0xf0)/判斷是否有鍵按下Delay_ms(100);if( temp!= 0xf0)/判斷是否有鍵按下switch(temp)/做鍵值處理case 0xe0:key_value = 3;break;case 0xd0:key_value = 4;break;case 0xb0:key_value = 5;break;case 0x70:key_value = 6;break;/有鍵按下/temp = temp & 0xf0;/判斷按鍵有沒(méi)有松開,如果按鍵松開程序繼續(xù)執(zhí)行,/如果沒(méi)有松開
16、,不斷讀取P3口的值來(lái)作為while的判斷條件while(temp!=0xf0)/等待松開按鍵temp = P3;/讀取P3的值temp = temp & 0xf0;/屏蔽高4位,bit BUSY(void)bit Bit;P0 = 0x00;RS = 0;RW = 1;EN = 1;Delay_ms(1);Bit = (bit)(P0 & 0x80);/最高位為忙信號(hào)位EN = 0;return Bit;void Write_cmd(uint8 cmd)/while(BUSY();RS = 0;/寫指令RW = 0;/寫操作EN = 0;/P0 = cmd;/發(fā)送命令Dela
17、y_ms(5);EN = 1;P0 = cmd;/發(fā)送命令Delay_ms(5);EN = 0;/拉低ENvoid Write_dat(uint8 dat)/while(BUSY();RS = 1;RW = 0;EN = 0;P0 = dat;Delay_ms(5);EN = 1;P0 = dat;Delay_ms(5);EN = 0;void LCD14432_Init(void)_nop_(); /延時(shí)1usWrite_cmd(0x30); /使用基本指令集Delay_ms(5);Write_cmd(0x0c);/功能:顯示開關(guān)ON ,游標(biāo)OFF,反白OFF Delay_ms(5);Wri
18、te_cmd(0x01); /清除顯示屏幕,把DDRAM 位址計(jì)數(shù)器調(diào)整為"00H"Delay_ms(5);Write_cmd(0x06);/AC自動(dòng)加1,畫面不動(dòng)/Write_cmd(0x07);/AC自動(dòng)加1,畫面移動(dòng)_nop_(); /延時(shí)1usvoid Delay_ms(uint16 z)uint16 x,y;for(x=z;x>0;x-)for(y=124;y>0;y-);void Timer0_Init(void)TMOD = 0x01;/工作在方式1/TH0 = (65535-50000)/256 /TL0=/TH0 = 0x3C;/定時(shí)器初值50
19、ms/TL0 = 0xAF;TH0 = 0xfe;/定時(shí)器初值0.5msTL0 = 0x3c;EA = 1;/打開總開關(guān)ET0 = 1;/開T0中斷開關(guān)TR0 = 1;/啟動(dòng)定時(shí)器void Timer0_IRQ() interrupt 1/TH0 = 0x3C;/定時(shí)器初值50ms/TL0 = 0xAF;TH0 = 0xfe;/定時(shí)器初值0.5msTL0 = 0x3c;count+;PWM_Out(rate1);/*if(count=20)count= 0;count1+;if(count1=10)count1 = 0;*/uint8 Read_ADConvert(void)uint8 i=0
20、;/計(jì)數(shù)脈沖uint8 Convert_value = 0;/保存AD轉(zhuǎn)換的值/*-參考時(shí)序編寫驅(qū)動(dòng)程序-*/Tlc549_Clock = 0;/初始化Tlc549_CS = 1;Wait2us;/延時(shí)2USTlc549_CS = 0;Wait2us;/延時(shí)2USfor(i=0;i<8;i+)/丟掉前面8個(gè)數(shù)據(jù)Tlc549_Clock = 1;/Wait2us;Tlc549_Clock = 0;Tlc549_CS = 1;/準(zhǔn)備轉(zhuǎn)換Wait20us;/等待轉(zhuǎn)換結(jié)束Wait20us;Tlc549_CS = 0; /準(zhǔn)備讀取AD數(shù)據(jù)for(i=0;i<8;i+)/讀取數(shù)據(jù)(下降沿)Tlc549_Clock = 1;Convert_value = Convert_value <<1;if(Tlc549_Dout=1)/根據(jù)數(shù)據(jù)線上得數(shù)據(jù),將
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新員工入職安全培訓(xùn)考試試題帶答案
- 2024-2025企業(yè)員工崗前安全培訓(xùn)考試試題及答案 完整
- 2025年下水道疏通清洗車合作協(xié)議書
- 大型寵物護(hù)欄、網(wǎng)及圈企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 無(wú)石棉紙基摩擦材料企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 微波終端機(jī)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 農(nóng)林牧漁業(yè)專用機(jī)械制造企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 制粉設(shè)備企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 原動(dòng)設(shè)備企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 新能源汽車電池(組)管理系統(tǒng)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 重慶外國(guó)語(yǔ)學(xué)校2024屆化學(xué)高二第一學(xué)期期中綜合測(cè)試模擬試題含解析
- 圖形與坐標(biāo)復(fù)習(xí)(評(píng)學(xué)科帶頭人)
- 九年級(jí)上冊(cè)歷史知識(shí)點(diǎn)復(fù)習(xí)課件(部編版)
- 脫碳塔CO2脫氣塔設(shè)計(jì)計(jì)算
- 2022年四川省阿壩州中考物理真題及答案
- 香港匯豐銀行大廈結(jié)構(gòu)選型
- 房屋硬裝裝修合同范本
- 2023年?yáng)|莞市人民醫(yī)院醫(yī)師規(guī)范化培訓(xùn)招生(放射科)考試參考題庫(kù)含答案
- 勾頭作業(yè)施工方案
- 中醫(yī)醫(yī)院重癥醫(yī)學(xué)科建設(shè)與管理指南
- 創(chuàng)傷性網(wǎng)胃炎
評(píng)論
0/150
提交評(píng)論