版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
模擬測(cè)速系統(tǒng)及LCD顯示摘要:在設(shè)定的時(shí)間段內(nèi),計(jì)算在該時(shí)間段內(nèi)的脈沖數(shù),達(dá)到模擬測(cè)速的效果。首先,采用 PIT定時(shí)器設(shè)定定時(shí)寬度;然后,在PIT計(jì)數(shù)結(jié)束時(shí)使用中斷,使用變量來(lái)統(tǒng)計(jì)改時(shí)間 內(nèi)采集到的脈沖數(shù),并使PIT重新開始定時(shí);最后,在LCD1602上顯示該變量數(shù)目。 本實(shí)驗(yàn)采用PIT定時(shí)器、中斷使能的方式,達(dá)到模擬測(cè)速的要求。關(guān)鍵詞:PIT定時(shí)器,中斷,LCD1602,MC9S12XS128芯片引言1.1 MC9S12XS128芯片=1\*GB3①PWM模塊PWM調(diào)制波有8個(gè)輸出通道,每一個(gè)輸出通道都可以獨(dú)立的進(jìn)行輸出。每一個(gè)輸出通道都有一個(gè)精確的計(jì)數(shù)器(計(jì)算脈沖的個(gè)數(shù)),一個(gè)周期控制寄存器和兩個(gè)可供選擇的時(shí)鐘源。每一個(gè)PWM輸出通道都能調(diào)制出占空比從0—100%變化的波形。=2\*GB3②定時(shí)器模塊基本的定時(shí)器模塊由1個(gè)增強(qiáng)的可編程預(yù)分頻器驅(qū)動(dòng)的可編程計(jì)數(shù)器、8個(gè)輸入捕捉/輸出比較通道和1個(gè)脈沖累加器組成。定時(shí)器模塊一共有8個(gè)引腳,其中脈沖累加器與第7號(hào)通道的引腳是共用的。=3\*GB3③A/D轉(zhuǎn)換模擬信號(hào)依次通過(guò)抽樣和保持(S/H)電路和模擬轉(zhuǎn)換器(A/D)后轉(zhuǎn)換為數(shù)字格式。抽樣和保持電路以均勻間隔對(duì)模擬信號(hào)進(jìn)行抽樣,并且在每個(gè)抽樣運(yùn)算后在足夠的時(shí)間內(nèi)保持抽樣值恒定,以保證輸出值可以被A/D轉(zhuǎn)換器精確轉(zhuǎn)換。下一步是通過(guò)模數(shù)轉(zhuǎn)換器將抽樣和保持電路的輸出轉(zhuǎn)換為數(shù)字形式。模數(shù)轉(zhuǎn)換器的輸出通常表示為二進(jìn)制編碼的形式。轉(zhuǎn)換精度由分辨率來(lái)表示,它由離散級(jí)數(shù)量決定。比如,對(duì)一個(gè)以二進(jìn)制形式編碼的長(zhǎng)度為N位的長(zhǎng)的輸出,有效地離散級(jí)數(shù)量是2的N次方,分辨率為離散數(shù)量級(jí)的倒數(shù)。12中A/D轉(zhuǎn)換共有兩個(gè)方塊,每個(gè)方塊各有8個(gè)輸入通道,使用時(shí)應(yīng)以標(biāo)頭ATD0或ATD1標(biāo)識(shí)。1.2 LCD1602工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。(16列2行)注:為了表示的方便,后文皆以1表示高電平,0表示低電平。1602液晶也叫1602字符型液晶,它是一種專門用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。系統(tǒng)設(shè)計(jì)2.1硬件設(shè)計(jì)設(shè)計(jì)圖框設(shè)定時(shí)間內(nèi)計(jì)算脈沖數(shù) 下一段單位時(shí)間2.2軟件設(shè)計(jì)=1\*GB3①流程圖開始開始初始化初始化輸入輸出端口的確定輸入輸出端口的確定確定LCD中各個(gè)塊的顯示位置及其內(nèi)容(除速度塊)確定LCD中各個(gè)塊的顯示位置及其內(nèi)容(除速度塊)ForFor設(shè)定定時(shí)器寬度設(shè)定定時(shí)器寬度輸出顯示調(diào)用中斷內(nèi)容速度計(jì)算輸出顯示調(diào)用中斷內(nèi)容速度計(jì)算小燈切換閃爍小燈切換閃爍=2\*GB3②程序編寫#include<hidef.h>/*commondefinesandmacros*/#include"derivative.h"/*derivative-specificdefinitions*/#defineepPTT_PTT3#definerwPTT_PTT2#definersPTT_PTT1intencoder_cnt,i1,j;//定義全局變量/*************************************************************//*初始化鎖相環(huán)*//*************************************************************/voidPLL_32M(void)//BUSCLOCK=32MHZ,PLLCLOCK=64MHZ{CLKSEL&=0x7f;//setOSCCLKassysclk時(shí)鐘選擇寄存器PLLCTL&=0x8F;//DisablePLLcircuit環(huán)控制寄存器CRGINT&=0xDF;中斷SYNR=0x43;REFDV=0x81;//PLLCLK=2×OSCCLK×(SYNR+1)/(REFDV+1)=64MHz,fbus=32MPLLCTL=PLLCTL|0x70;//EnablePLLcircuitasmNOP;asmNOP;while(!(CRGFLG&0x08));//PLLCLKisLockedalreadyCLKSEL|=0x80;//setPLLCLKassysclk}/*************************************************************//*PIT定時(shí)*//*************************************************************/voidPIT_inits(void)//定時(shí)間斷初始化函數(shù)1ms定時(shí)間斷設(shè)置{PITCFLMT_PITE=0;//關(guān)PITPITCE_PCE0=1;//定時(shí)器通道0使能PITMTLD0=32-1; //8位定時(shí)器初值設(shè)定,32分頻,在32MHzBusClock下,為1MHz。即1usPITLD0=1000-1;//16位定時(shí)器初值設(shè)定。1000*1us=1msPITINTE_PINTE0=1;//定時(shí)器間斷通道0間斷使能PITCFLMT_PITE=1;//使能PIT}/*************************************************************//*初始化累加器*//*************************************************************/voidPAI_inits(void){PACTL=0x50;//始能脈沖累加器,累加上升沿}//////////////////////////////////////////////////////////////voidPWM_Init(void){PWME_PWME3=0x00;//PWWisdisabled禁止PWMPRCLK=0x33;//0b00110011A=B=24M/8=3M時(shí)鐘預(yù)分頻寄存器設(shè)置PWMSCLA=150;//SA=A/2/150=10k時(shí)鐘設(shè)置PWMSCLB=150;//SB=B/2/15=10k時(shí)鐘設(shè)置PWMCTL=0x00;//noconcatenation控制寄存器設(shè)置PWMCLK_PCLK3=1;//PWM3-----SB時(shí)鐘源的選擇PWMPOL_PPOL3=1;//Duty=HighTime極性設(shè)置PWMCAE_CAE3=0;//left-aligned對(duì)齊方式設(shè)置PWMPER3=4;//Frequency=SB/250=40周期寄存器設(shè)置PWMDTY3=2;//Dutycycle=50%占空比寄存器設(shè)置PWME_PWME3=1;//enable使能}/////////////////////////////////////////////unsignedinta,b,c;unsignedchardis1[]={"MoNiCeSu-_-#"};unsignedchardis2[3];unsignedcharw[]={"speed:"};unsignedcharscales[]={"n/dt"};bytelcd_bz(void);//判忙//////////////////////////////////////voiddelay(unsignedcharms)////延遲函數(shù){unsignedinti;while(ms--){for(i=0;i<25000;i++);}}///////////////////////////////////////////bytelcd_bz(void)//判忙函數(shù){byteresult;DDRB=0X00;rs=0;rw=1;ep=1;result=(byte)(PORTB&0x80);ep=0;returnresult;}//////////////////////////////////////////voidlcd_wcmd(unsignedcharcmd)//初始化{while(lcd_bz());//判LCD是否忙碌DDRB=0XFF;rs=0;rw=0;ep=0;PORTB=cmd;ep=1;ep=0;}///////////////////////////////////////////voidlcd_pos(unsignedcharpos)//初始化{lcd_wcmd(pos|0x80);}//////////////////////////////////////////////voidlcd_wdat(unsignedchardat)//初始化{while(lcd_bz());//判斷LCD是否忙碌DDRB=0XFF;rs=1;rw=0;ep=0;PORTB=dat;ep=1;ep=0;}////////////////////////////////////////////////voidlcd_init(void)//lcd初始化清屏{PTT_PTT0=0;lcd_wcmd(0x38);delay(1);lcd_wcmd(0x0c);delay(1);lcd_wcmd(0x06);delay(1);lcd_wcmd(0x01);delay(1);}voidGPIO_INITS_1(void){DDRK|=0X88;}//////////////////////////////////////////////voidmain(void)//主函數(shù){unsignedinti;1出0入GPIO_INITS_1();DDRB=0XFF;DB0-DB7B0-B7入DDRT=0X7F;//根據(jù)連線端口選擇T7口01111111===0x7Flcd_init();//初始化LCDdelay(10);//////////lcd_pos(0x00);//設(shè)置第一行顯示位置i=0;while(dis1[i]!='\0'){lcd_wdat(dis1[i]);//顯示第一行字符i++;}/////////lcd_pos(0x40);//設(shè)置speed顯示位置i=0;while(w[i]!='\0'){lcd_wdat(w[i]);i++;}//////lcd_pos(0x4b);//n/dt顯示位置i=0;while(scales[i]!='\0'){lcd_wdat(scales[i]);//顯示n/dt字符i++;}//////DisableInterrupts;PLL_32M();//PLL倍頻PIT_inits();//PIT初始化PAI_inits();PWM_Init(); EnableInterrupts;///////for(;;){PITMTLD0=32-1;//8位定時(shí)器初值設(shè)定,32分頻,在32MHzBusClock下,為1MHz。即1usPITLD0=65535;//設(shè)置定時(shí)寬度delay(10);1a=(j-j%100)/100;//j為中斷函數(shù)里面的值2b=(j%100-j%10)/10;3c=j%10;dis2[0]=a+0x30;//看pdf數(shù)字0對(duì)應(yīng)位置為001100001對(duì)應(yīng)00110001dis2[1]=b+0x30;dis2[2]=c+0x30;lcd_pos(0x47);//a顯示位置lcd_wdat(dis2[0]);//顯示字符alcd_pos(0x48);//b顯示位置lcd_wdat(dis2[1]);//顯示字符blcd_pos(0x49);//c顯示位置lcd_wdat(dis2[2]);//顯示字符cwhile(PACNT==0)//用小燈切換的速度為中斷信號(hào){PORTK_PK3=0;//單位時(shí)間越短,小燈切換速度越快PORTK_PK7=1;delay(10);}PORTK_PK3=1;PORTK_PK7=0;}}/*************************************************************//*中斷函數(shù)*//*************************************************************/#pragmaCODE_SEG__NEAR_SEGNON_BANKEDvoidinterrupt66PIT0(void)//1ms{i1++;//中斷執(zhí)行程序j=encoder_cnt=PACNT;//
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年公司資產(chǎn)轉(zhuǎn)讓協(xié)議模板
- 2024年度旅游大巴租賃服務(wù)協(xié)議
- 2024年員工派遣服務(wù)協(xié)議
- 2024賽季足球場(chǎng)租賃協(xié)議范本
- 2024年建設(shè)工程委托代理協(xié)議
- 2024年科技支持服務(wù)協(xié)議樣本
- 2024隔音設(shè)施安裝及施工協(xié)議樣本
- 店鋪?zhàn)赓U經(jīng)營(yíng)規(guī)范協(xié)議2024年
- 2024年采購(gòu)協(xié)議模板與協(xié)議細(xì)則
- 2024年店面房租賃協(xié)議樣本
- 《交互設(shè)計(jì)》課件
- 懷孕的hcg驗(yàn)血報(bào)告單
- 應(yīng)力的概念講解
- JF-2023-合同中小學(xué)校校外供餐合同示范文本
- 內(nèi)鏡中心考試題及答案
- 如何培養(yǎng)學(xué)生的思辨能力
- 統(tǒng)計(jì)學(xué)職業(yè)生涯規(guī)劃
- 為家長(zhǎng)設(shè)計(jì)一份午餐食譜的步驟同課異構(gòu)
- 食堂人員操作規(guī)范培訓(xùn)課件
- 《股票入門》課件
- ADA糖尿病指南版醫(yī)學(xué)幻燈片
評(píng)論
0/150
提交評(píng)論