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

正文內(nèi)容

基于dsp的頻率計(jì)畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2025-07-24 17:26 本頁面
 

【文章內(nèi)容簡介】 C08可尋址2片。TEST—測試,用于對存儲器的檢測。VCC—電源電壓+5V。GND—接地端。NC—未連接。ATC24C02是目前最常用的型號,支持器件地址編碼,統(tǒng)一串行總線最多時(shí)可同時(shí)連接1~8片,支持硬件設(shè)置數(shù)據(jù)保護(hù)。由于單片機(jī)沒有時(shí)鐘模塊,故外接一個(gè)晶振,來產(chǎn)生系統(tǒng)時(shí)鐘脈沖。時(shí)鐘脈沖電路的主要作用是對外發(fā)出時(shí)序控制信號,在AT89S51芯片上,XTAL1和XTAL2分別為反向放大器的輸入和輸出,其中,當(dāng)與本試驗(yàn)線路相同時(shí),即使用內(nèi)部時(shí)鐘方式時(shí),XTAL1和XTAL2必須外接石英晶體和微調(diào)電容,其中電容CC2對振蕩頻率起穩(wěn)定的作用,——12MHz。該反向放大器可以配置為片內(nèi)振蕩器。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號要通過一個(gè)二分頻觸發(fā)器,因此對外部時(shí)鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。時(shí)鐘頻率越高,單片機(jī)控制器的節(jié)拍越快,運(yùn)算速度也越快。本設(shè)計(jì)中使用的振蕩電路,有12MHZ晶體振蕩器和兩個(gè)約33PF的電容組成,在XTAL1和XTAL2兩端跨接晶體,電容的大小不會(huì)影響振蕩頻率的高低。在整個(gè)系統(tǒng)中為系統(tǒng)各個(gè)部分提供基準(zhǔn)頻率,以防因其工作頻率不穩(wěn)定而造成相關(guān)設(shè)備的工作頻率不穩(wěn)定,晶振可以在電路中產(chǎn)生振蕩電流,發(fā)出時(shí)鐘信號。具體電路設(shè)計(jì)如圖所示:圖38 時(shí)鐘模塊電路設(shè)計(jì)按鍵電路中,通過軟件編程,當(dāng)按下按鍵計(jì)數(shù)器開始工作,開始計(jì)價(jià);當(dāng)彈起按鍵時(shí)計(jì)數(shù)器停止工作,停止計(jì)價(jià),啟動(dòng)/停止按鍵帶自鎖功能。按下啟動(dòng)按鍵,開關(guān)處于導(dǎo)通狀態(tài),這時(shí)TR0=1,計(jì)數(shù)器開始工作,調(diào)用計(jì)價(jià)子程序開始計(jì)價(jià)。,按下功能鍵實(shí)現(xiàn)對計(jì)價(jià)器的價(jià)格調(diào)整。,按下清零按鍵,調(diào)用清零子程序,用于將顯示數(shù)據(jù)清零,在程序中給各位賦0代碼,以達(dá)到輕靈的目的,方便下次計(jì)價(jià)。另外為功能鍵,控制價(jià)格調(diào)整,這個(gè)按鍵是在沒有按下啟動(dòng)/停止按鍵時(shí)有作用,計(jì)價(jià)過程無效。圖39 按鍵電路設(shè)計(jì)4 軟件設(shè)計(jì)4 系統(tǒng)軟件設(shè)計(jì)8051單片機(jī)的應(yīng)用程序設(shè)計(jì),使用C51語言進(jìn)行程序設(shè)計(jì)雖然相對于匯編語言代碼效率有所下降,但可以方便地實(shí)現(xiàn)程序設(shè)計(jì)模塊化,代碼結(jié)構(gòu)清晰、可讀性強(qiáng),易于維護(hù)、更新和移植,適合較大規(guī)模的單片機(jī)程序設(shè)計(jì)。近年來,隨著C51語言的編譯器性能的不斷提高,在絕大多數(shù)應(yīng)用環(huán)境下,C51程序的執(zhí)行效率已經(jīng)非常接近匯編語言,因此,使用C51進(jìn)行單片機(jī)程序設(shè)計(jì)已經(jīng)成為單片機(jī)程序設(shè)計(jì)的主流選擇之一?!?】C51語言是目前最流行的單片機(jī)程序設(shè)計(jì)語言。單片機(jī)既具有匯編語言的硬件操作能力,又兼有其他高級語言的優(yōu)點(diǎn)。這便使得單片機(jī)C51的程序開發(fā)非常方便。在現(xiàn)代的單片機(jī)程序設(shè)計(jì)中,單片機(jī)C51語言日益得廣大開發(fā)者的青睞。單片機(jī)C51語言是由C語言發(fā)展繼承而來的。和C語言不同的是,C51語言運(yùn)行于單片機(jī)平臺,而C語言則運(yùn)行于普通平臺。C51有C語言結(jié)構(gòu)清晰的優(yōu)點(diǎn),便于學(xué)習(xí),同時(shí)具有匯編語言的硬件操作能力。51單片機(jī)程序設(shè)計(jì)語言主要有兩種:一是匯編程序設(shè)計(jì)。二是C語言編程設(shè)計(jì)。兩種程序設(shè)計(jì)語言都有各自的優(yōu)點(diǎn)。用匯編語言編寫和高級語言(C語言)比較起來節(jié)約空間,這樣對于存儲空間僅4Kb的芯片來說是極之有利的,52單片機(jī)能高速的運(yùn)行。C語言作為一種編譯型程序語言,它兼顧了多種高級語言的特點(diǎn),并具備匯編語言的功能。此外,C語言程序還具有完善的模塊程序結(jié)構(gòu),從而為軟件開發(fā)采用模塊化程序設(shè)計(jì)方法提供了有力的保障。因此,使用C語言進(jìn)行程序設(shè)計(jì)已經(jīng)成為軟件開發(fā)的主流。【8】在本次設(shè)計(jì)中就是采用C語言編寫的,由于采用模塊化操作,使得程序在修改,執(zhí)行的時(shí)候顯得方便易行。 系統(tǒng)程序設(shè)計(jì)本設(shè)計(jì)中,軟件設(shè)計(jì)采用模塊化操作,利用各個(gè)模塊之間的相互關(guān)系,在設(shè)計(jì)中采用主程序調(diào)用各個(gè)子程序的方法,使程序通俗易懂,我們設(shè)計(jì)了整體程序流程圖。在main函數(shù)編寫開始,要進(jìn)行初始化,包括對系統(tǒng)初始化和對存儲器初始化,要對硬件設(shè)備進(jìn)行初始化,并使硬件處于就緒狀態(tài)。通過判斷是否計(jì)費(fèi),調(diào)價(jià),清零等狀態(tài),來分別調(diào)用不同的子程序,使程序在設(shè)計(jì)之前,就有了很強(qiáng)的邏輯關(guān)系。這些對應(yīng)于硬件就是通過按下各個(gè)控制開關(guān),來分別進(jìn)行不同的動(dòng)作,最后數(shù)碼管根據(jù)輸入的信息,來顯示不同的數(shù)據(jù)信息,就達(dá)到了軟件控制硬件,同時(shí)輸入信息控制輸出信息的目的。整個(gè)程序的流程圖如下:圖41 主流程圖 各模塊程序設(shè)計(jì) 掉電模塊——I2C總線接口設(shè)計(jì)I2C總線的基本概念發(fā)送器:發(fā)送數(shù)據(jù)到總線的器件接收器:從總線接收數(shù)據(jù)的器件主機(jī):初始化發(fā)送、產(chǎn)生時(shí)鐘信號和終止發(fā)送的器件從機(jī):被主機(jī)尋址的器件I2C總線是雙向傳輸?shù)目偩€,因此主機(jī)和從機(jī)都可能成為發(fā)送器和接收器。時(shí)鐘信號SCL都要由主機(jī)來產(chǎn)生。信號的有效性:圖42 IIC時(shí)鐘信號1)數(shù)據(jù)線SDA的電平狀態(tài)必須在時(shí)鐘線SCL處于高電平期間保持穩(wěn)定不變。2)SDA的電平狀態(tài)只有在SCL處于低電平期間才允許改變,但是在I2C總線的起始和結(jié)束時(shí)例外。起始條件與停止條件:圖43 IIC起始、停止條件起始條件當(dāng)SCL處于高電平期間,SDA從高電平向低電平跳變時(shí)產(chǎn)生起始條件??偩€在起始條件產(chǎn)生后便處于忙的狀態(tài)。起始條件常常簡記為S。停止條件當(dāng)SCL處于高電平期間時(shí),SDA從低電平向高電平跳變時(shí)產(chǎn)生停止條件。總線在停止條件產(chǎn)生后處于空閑狀態(tài)。停止條件簡記為P。程序?qū)崿F(xiàn):起始時(shí)刻:void I2C_Start(){short_delay()。I2C_SDA=1。short_delay()。I2C_SCK=1。if(I2C_SDA==0)return 0。if(I2C_SCK==0)return 0。I2C_SDA=0。short_delay()。I2C_SCK=0。short_delay()。reture 1。}停止時(shí)刻:void I2C_Stop(){short_delay()。I2C_SDA=0。short_delay()。I2C_SCK=1。short_delay()。I2C_SDA=1。short_delay()。}從機(jī)地址:I2C總線不需要額外的地址譯碼器和片選信號。多個(gè)具有I2C總線接口的器件都可以連接到同一條I2C總線上,它們之間通過器件地址來區(qū)分。主機(jī)是主控器件,它不需要器件地址,其它器件都屬于從機(jī),要有器件的地址。必須保證同一條I2C總線上所有從機(jī)的地址都是唯一確定的,否則I2C總線將不能正常工作。一般從機(jī)地址有7位地址位和一位讀寫標(biāo)志R/W組成,7位地址占據(jù)高7位,讀寫位在最后。讀寫位是0,表示主機(jī)將要向從機(jī)寫入數(shù)據(jù);讀寫位是1,則表示主機(jī)將要從從機(jī)讀取數(shù)據(jù)。應(yīng)答狀態(tài)位:在I2C總線傳輸數(shù)據(jù)過程中,每傳輸一個(gè)字節(jié),都要跟一個(gè)應(yīng)答狀態(tài)位。接收器接收數(shù)據(jù)的情況可以通過應(yīng)答位來告知發(fā)送器。應(yīng)答位的時(shí)鐘脈沖仍有主機(jī)產(chǎn)生,而應(yīng)答位的數(shù)據(jù)狀態(tài)則遵循“誰接收誰產(chǎn)生”的原則,即總是由接收器產(chǎn)生應(yīng)答位。I2C總線規(guī)定:應(yīng)答位為0表示接收器應(yīng)答(ACK),常常簡記為A;為1則表示非應(yīng)答位(NACK),常常簡記為N。發(fā)送器發(fā)送完LSB之后,應(yīng)當(dāng)釋放SDA(拉高SDA,輸出晶體管截止),以等待接收器產(chǎn)生應(yīng)答位?!?2】圖44 發(fā)送控制信號I2C應(yīng)答程序?qū)崿F(xiàn):void I2C_Ack(void){short_delay()。I2C_SDA=1。short_delay()。I2C_SCK=1。} 按鍵模塊設(shè)計(jì)如下程序段用來定義按鍵位置寄存器變量,按鍵按下時(shí),對應(yīng)位置寄存器值發(fā)生變化,產(chǎn)生相應(yīng)中斷去調(diào)用對應(yīng)的子程序,出租車開始計(jì)費(fèi)和顯示行駛里程。sbit DistanceFuseIn =P3^4。sbit Start =P1^0。sbit Markup =P1^1。sbit Depreciate =P1^2。sbit Clear =P1^3。 顯示模塊設(shè)計(jì)設(shè)計(jì)6位(高三位顯示里程,低三位顯示計(jì)價(jià))8段數(shù)碼管以動(dòng)態(tài)顯示方式實(shí)現(xiàn),利用人眼視覺的暫停效應(yīng)及LED顯示特性,可以較好實(shí)現(xiàn)里程及計(jì)價(jià)顯示,LED動(dòng)態(tài)刷新子程序如下:void ReFreshLed(void){ static unsigned char DispCnt =0。 SetSegEn(FALSE)。 //短暫禁止顯示 SetSegCode(SegCode[DispBuf[DispCnt]])。 //送段碼到P0口 SetBitCode(DispCnt)。 //送位選信號到P2口 SetSegEn(TRUE)。 //開顯示 //依次顯示 if(DispCnt 5) { DispCnt++。 } else { DispCnt =0。 }} 測試?yán)锍棠K設(shè)計(jì)我們知道,在實(shí)際出租車計(jì)價(jià)器設(shè)計(jì)中,出租車行駛里程的測試是通過檢測車輪上的霍爾傳感器,來檢測在出租車行駛過程中車輪轉(zhuǎn)過多少圈(檢測到2次霍爾中斷為車輪行駛一圈),再根據(jù)車輪直徑計(jì)算出行駛里程(π*D*行駛?cè)?shù))。本方案中采用按鍵模擬車輪上的霍爾檢測,按鍵一次代表檢測到霍爾中斷,按鍵兩次代表車輪轉(zhuǎn)過一圈,而在程序設(shè)計(jì)上就以車輪轉(zhuǎn)過一圈表示行駛1公里(這里采取的是簡化的做法,實(shí)際可能要很多個(gè)2次按鍵,出租車才會(huì)行駛到1公里,為了是程序調(diào)試和演示的可操作性,就以按2次按鍵,車輪行駛一圈的距離表示出租車行駛了1公里)。測試?yán)锍痰淖映绦蚰K如下:【7】void ReadDistanceFuse(void){ static unsigned char Fuse =1。 static unsigned char Cnt =0。 if((DistanceFuseIn ==0)amp。amp。(Fuse ==1)) { if(Cnt 1) //2個(gè)脈沖為一公里??梢孕薷臑槠渌麛?shù)值。 { Cnt++。 } else { if(Distance 1000) { Distance ++。 } Cnt =0。 } } Fuse = DistanceFuseIn。} 計(jì)費(fèi)模塊設(shè)計(jì)在程序中,設(shè)置為2公里之內(nèi)為8元,里程在2公里和35公里之間,每公里單價(jià)為2元,超過35公里之后,單價(jià)變?yōu)?元。下圖為計(jì)價(jià)模塊流程圖:圖45 計(jì)價(jià)模塊流程圖void CalcFees(void){ unsigned int buf。 if(Distance =2) //起步距離 { Fees =8。 //起步價(jià)8元 } else if(Distance 35) { Fees =8 + 2*(Distance 2) + 1。 } else {
點(diǎn)擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1