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

正文內(nèi)容

基于89c51的智能交通燈軟件設(shè)計(jì)(編輯修改稿)

2025-02-14 14:46 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 不管是哪種工作方式,當(dāng)TL0的低五位計(jì)數(shù)溢出時(shí),向TH0進(jìn)位,而全部13位計(jì)數(shù)溢出時(shí),則向計(jì)數(shù)溢出標(biāo)志位TF0進(jìn)位。 門控位GATE:當(dāng)GATE=0時(shí),由于GATE信號(hào)封鎖了或門,使用TRO引腳信號(hào)無效。而這時(shí)或門輸出端的高電平狀態(tài)卻打開了與門。因此可以由TRO(TCON)的狀態(tài)來控制計(jì)數(shù)脈沖的接通與斷開。這時(shí)如果TRO=1,TRO則接通模擬開關(guān),使計(jì)數(shù)器進(jìn)行加法計(jì)數(shù),即定時(shí)器/計(jì)數(shù)器0工作。如果TRO=0,則斷開模擬開關(guān),停止計(jì)數(shù),定時(shí)器/計(jì)數(shù)器0不能工作。因此在單片機(jī)的定時(shí)或計(jì)數(shù)應(yīng)用中要注意GATE位的清“0”。 當(dāng)GATE=1,同時(shí)又TRO=1時(shí),有關(guān)電路的或門和與門全都打開,計(jì)數(shù)脈沖的接通與斷開由外引腳信號(hào)控制。當(dāng)該信號(hào)為高電平時(shí)計(jì)數(shù)器工作;當(dāng)該信號(hào)為低電平時(shí)計(jì)數(shù)器停止工作。這種情況可用于測(cè)量外信號(hào)的脈沖寬度。(2)、定時(shí)和計(jì)數(shù)應(yīng)用兩個(gè)前提:溢出停止和加法計(jì)數(shù)A、定時(shí)工作方式0在方式0工作方式下,當(dāng)為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:1~8192(213)當(dāng)為定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為:(213-計(jì)數(shù)初值)晶振周期12或 (213-計(jì)數(shù)初值)機(jī)器周期其時(shí)間單位與晶振周期或機(jī)器周期相同(us).B、定時(shí)工作方式1方式1是16位計(jì)數(shù)結(jié)構(gòu)的工作方式,計(jì)數(shù)器由TH0全部8位和TL0全部8位構(gòu)成。其邏輯電路和工作情況與方式0完全相同。所不同的只是組成計(jì)數(shù)器的位數(shù)。當(dāng)為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是: 1~65536(216)當(dāng)為定時(shí)工作方式時(shí),定時(shí)時(shí)間計(jì)算公式為:(216-計(jì)數(shù)初值)晶振周期12或 (216-計(jì)數(shù)初值)機(jī)器周期其時(shí)間單位與晶振周期或機(jī)器周期相同。在方式0和方式1中,每當(dāng)CPU響應(yīng)中斷后,都應(yīng)該在中斷服務(wù)子程序中對(duì)T0和T1初始化,即軟件重裝初值n。而且必須用兩條指令對(duì)TH0 和TL0(TH1和TL1)分別裝載初值。還應(yīng)該注意到中斷服務(wù)子程序執(zhí)行的時(shí)間可能部分地影響定時(shí)時(shí)間。5. 交通燈控制線路圖圖26第3章 交通燈控制系統(tǒng)軟件設(shè)計(jì) 程序設(shè)計(jì)流程圖 3.1.1 程序設(shè)計(jì)總框圖:如圖4所示,按功能分為4個(gè)模塊 1.顯示模塊:顯示模塊中用到了8個(gè)數(shù)碼管,該模塊是負(fù)責(zé)數(shù)碼管的正確顯示 2.控制模塊:控制模塊中用到了STC89C51芯片的P1口設(shè)置紅、綠燈點(diǎn)亮的功能。交通燈的點(diǎn)亮采用發(fā)光二極管實(shí)現(xiàn)??刂颇K實(shí)現(xiàn)的是紅、綠的時(shí)序控制。接收控制結(jié)果,并啟動(dòng)報(bào)警。 3.PC機(jī)與單片機(jī)的串行通訊模塊:PC機(jī)與單片機(jī)的串行通訊是通過MAX232的電平轉(zhuǎn)換和RSR232總線來實(shí)現(xiàn)的,它工作時(shí),通過調(diào)用MATLAB設(shè)備控制工具箱中的serial 類及相關(guān)函數(shù),來創(chuàng)建串口設(shè)備對(duì)象,得到設(shè)備的文件句柄, 從而以操作文件的方式實(shí)現(xiàn)對(duì)串行口的讀寫操作。 4.模擬串行口模塊:因?yàn)镻C機(jī)和單片機(jī)的數(shù)據(jù)通訊,要用到單片機(jī)的串行口,而8個(gè)數(shù)碼管的顯示也要用到串行口,這就需要設(shè)置一個(gè)模擬串行口。(RXD)、(TXD)來實(shí)現(xiàn)控制74HC164的。 5.圖像處理模塊:采用MATLAB函數(shù)編寫,在PC機(jī)上運(yùn)行,負(fù)責(zé)判斷是否在規(guī)定區(qū)域內(nèi)存在運(yùn)動(dòng)目標(biāo)。串行模塊控制模塊模擬串口模塊顯示模塊圖像處理模塊顯示 拍攝報(bào)警如圖313.1.2 程序詳細(xì)流程圖:如圖32開始設(shè)置定時(shí)器開中斷賦初值F0=1R0,R1分別送A。調(diào)用計(jì)時(shí)程序并調(diào)用延時(shí)R2=011Flag0=1跳到SECR2=021Flag1=1跳到THR,F0=1R2=03Flag1=1跳到FOUR2=04標(biāo)志位清0,跳到FIRR0=00R2加1,跳到DIAOY圖32 程序詳細(xì)流程圖流程圖說明:圖中定時(shí)器在每50ms中斷一下,設(shè)置為循環(huán)20次(此時(shí)為1秒),每1秒以后,R0,R1自動(dòng)減1。程序中的判斷在相等情況下從右邊出,不相同的情況往下走。延時(shí)方法可以有兩種一種是利用AT89S51內(nèi)部定時(shí)器的溢出中斷來確定1秒的時(shí)間,另一種是采用軟件延時(shí)的方法。 計(jì)數(shù)器初值計(jì)算定時(shí)器工作時(shí)必須給計(jì)數(shù)器送計(jì)數(shù)器初值,這個(gè)值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值設(shè)定為C和計(jì)數(shù)初值設(shè)定為TC 可得到如下計(jì)算通式: TC=M-C式中,M為計(jì)數(shù)器模值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)M為213 ;在方式1時(shí)M的值為216;在方式2和3為28 ; 算法公式:T=(M-TC)T計(jì)數(shù) 或TC=M-T/T計(jì)數(shù)T計(jì)數(shù)是單片機(jī)時(shí)鐘周期TCLK的12倍;TC為定時(shí)初值如單片機(jī)的主脈沖頻率為TCLK12MHZ ,經(jīng)過12分頻方式0    TMAX=213?。蔽⒚耄椒绞剑薄   MAX=216?。蔽⒚耄斤@然1秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題.實(shí)現(xiàn)1秒的方法:我們采用在主程序中設(shè)定一個(gè)初值為20的軟件計(jì)數(shù)器和使T1定時(shí)50毫秒。這樣每當(dāng)T1到50毫秒時(shí)CPU就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計(jì)數(shù)器減1,然后判斷它是否為零。為0表示1秒已到可以返回到輸出時(shí)間顯示程序。 相應(yīng)程序代碼(1)定時(shí)器的設(shè)置 定時(shí)器需定時(shí)50毫秒,故T1工作于方式1。 初值計(jì)算: TC=M-T/T計(jì)數(shù)?。?16-50ms/1us=15536=3CBOH START: MOV TMOD, 10H ;令TO為定時(shí)器方式1 MOV TH0, 3CH ;裝入定時(shí)器初值 MOV TL0, 0BOH   SETB EA   ; 打開總中斷 SETB ET1  ;開T1中斷SETB ER  ;啟動(dòng)T1計(jì)數(shù)器CLR FLAG1 CLR FLAG2 CLR FLAG3 MOV  R3,  20H   ;軟件計(jì)數(shù)器賦初值(2)相應(yīng)中斷服務(wù)子程序      ORG  001BH      LJMP  DSD      ORG 0030H  DSD: INC  R3   MOV TH0, 3CH ;重裝入定時(shí)器初值 MOV TL0, BOH   CJNE R3,20,F(xiàn)HDEC R0 DEC R1MOV R3,00HFH: RETI程序的軟件延時(shí):STC89C51的工作頻率為0—33MHZ,我們選用的STC89C51單片機(jī)的工作頻率為12MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/12M)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時(shí)間。具體的延時(shí)程序分析:DELAY: MOV R4,08H 延時(shí)1秒主程序 DE2: LCALL DELAY1 DJNZ R4, DE2 RETDELAY1:MOV R4,00H ;延時(shí)125us 子程序 D1: MOV R5,00H D2: DJNE R5,DL2 DJNE R4,D1 RET DELAY1為一個(gè)雙重循壞 循環(huán)次數(shù)為256*256=65536 所以延時(shí)時(shí)間=65536*2=131072us 約為125us DELAY R4設(shè)置的初值為8 主延時(shí)程序循環(huán)8次,所以125us*8= 1秒由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。 MATLAB的運(yùn)用3.3.1 MATLAB的實(shí)驗(yàn)平臺(tái)我們采用的是MATLAB的軟件。運(yùn)行在Windows XP操作平臺(tái)下。開啟計(jì)算機(jī)進(jìn)入MATLAB的軟件介面。3.3.2 MATLAB的概況   MATLAB是矩陣實(shí)驗(yàn)室(Matrix Laboratory)之意。除具備卓越的數(shù)值計(jì)算能力外,它還提供了專業(yè)水平的符號(hào)計(jì)算,文字處理,可視化建模仿真和實(shí)時(shí)控制等功能?! ATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué),工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完相同的事情簡(jiǎn)捷得多.  當(dāng)前流行的MATLAB (Toolbox).,可視化建模仿真,控制工具包,信號(hào)處理工具包,通信工具包等都屬于此類.  ,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對(duì)源程序的修改或加入自己編寫程序構(gòu)造新的專用工具包.3.3.3 MATLAB產(chǎn)生的歷史背景  在70年代中期,Cleve ,這兩個(gè)程序庫代表矩陣運(yùn)算的最高水平.  到70年代后期,身為美國New Mexico大學(xué)計(jì)算機(jī)系系主任的Cleve Moler,在給學(xué)生講授線性代數(shù)課程時(shí),想教學(xué)生使用EISPACK和LINPACK程序庫,但他發(fā)現(xiàn)學(xué)生用FORT編寫接口程序很費(fèi)時(shí)間,于是他開始自己動(dòng)手, Moler給這個(gè)接口程序取名為MATLAB,該名為矩陣(matrix),MATLAB在多所大學(xué)里作為教學(xué)輔軟件使用,并作為面向大眾的免費(fèi)軟件廣為流傳.  1983年春天,Cleve Moler到Standford大學(xué)講學(xué),MATLAB深深地吸引了工程師John ,他和Cleve Moler,Steve Bangert一起,.  1984年,Cleve Moler和John Little成立了Math Works公司,正式把MATLAB推向市場(chǎng),并繼續(xù)進(jìn)行MATLAB的研究和開發(fā).  在當(dāng)今30多個(gè)數(shù)學(xué)類科技應(yīng)用軟件中,就軟件數(shù)學(xué)處理的原始內(nèi)核而言,如MATLAB,Xmath,Gauss等,這類軟件長于數(shù)值計(jì)算,對(duì)處理大批數(shù)據(jù)效率高。另一類是數(shù)學(xué)分析型軟件,Mathematica,Maple等,這類軟件以符號(hào)計(jì)算見長,能給出解析解和任意精確解,在其卓越數(shù)值計(jì)算和圖示能力的基礎(chǔ)上,又率先在專業(yè)水平上開拓了其符號(hào)計(jì)算,文字處理,可視化建模和實(shí)時(shí)控制能力,開發(fā)了適合多學(xué)科,MATLAB以經(jīng)占據(jù)了數(shù)值軟件市場(chǎng)的主導(dǎo)地位.  在MATLAB進(jìn)入市場(chǎng)前,國際上的許多軟件包都是直接以FORTRANC語言等編程語言開發(fā)的。這種軟件的缺點(diǎn)是使用面窄,接口簡(jiǎn)陋,程序結(jié)構(gòu)不開放以及沒有標(biāo)準(zhǔn)的基庫,很難適應(yīng)各學(xué)科的最新發(fā)展,因而很難推廣。MATLAB的出現(xiàn),為各國科學(xué)家開發(fā)學(xué)科軟件提供了新的基礎(chǔ)。在MATLAB問世不久的80年代中期,原先控制領(lǐng)域里的一些軟件包紛紛被淘汰或在MATLAB上重建。  MathWorks公司1993年推出了MATLAB ,(for )。MATLAB ,其幫助信息采用超文本格式和PDF格式,在Netscape ,Acrobat Reader中可以方便地瀏覽?!? 時(shí)至今日,經(jīng)過MathWorks公司的不斷完善,MATLAB已經(jīng)發(fā)展成為適合多學(xué)科,多種工作平臺(tái)的功能強(qiáng)大大型軟件。在國外,MATLAB已經(jīng)經(jīng)受了多年考驗(yàn)。在歐美等高校,MATLAB已經(jīng)成為線性代數(shù),自動(dòng)控制理論,數(shù)理統(tǒng)計(jì),數(shù)字信號(hào)處理,時(shí)間序列分析,動(dòng)態(tài)系統(tǒng)仿真等高級(jí)課程的基本教學(xué)工具;成為攻讀學(xué)位的大學(xué)生,碩士生,博士生必須掌握的基本技能。在設(shè)計(jì)研究單位和工業(yè)部門,MATLAB被廣泛用于科學(xué)研究和解決各種具體問題。在國內(nèi),特別是工程界,MATLAB一定會(huì)盛行起來??梢哉f,無論你從事工程方面的哪個(gè)學(xué)科,都能在MATLAB里找到合適的功能。3.3.4 MATLAB的語言特點(diǎn)  一種語言之所以能如此迅速地普及,顯示出如此旺盛的生命力,是由于它有著不同于其他語言的特點(diǎn),正如同F(xiàn)ORTRAN和C等高級(jí)語言使人們擺脫了需要直接對(duì)計(jì)算機(jī)硬件資源進(jìn)行操作一樣,被稱作為第四代計(jì)算機(jī)語言的MATLAB,利用其豐富的函數(shù)資源,使編程人員從繁瑣的程序代碼中解放出來。MATLAB最突出的特點(diǎn)就是簡(jiǎn)潔。MATLAB用更直觀的,符合人們思維習(xí)慣的代碼,代替了C和 FORTRAN語言的冗長代碼。MATLAB給用戶帶來的是最直觀,最簡(jiǎn)潔的程序開發(fā)環(huán)境。以下簡(jiǎn)單介紹一下MATLAB的主要特點(diǎn)。(1) 語言簡(jiǎn)潔緊湊,使用方便靈活,庫函數(shù)極其豐富。MATLAB程序書寫形式自由,利用起豐富的庫函數(shù)避開繁雜的子程序編程任務(wù),壓縮了一切不必要的編程工作。由于庫函數(shù)都由本領(lǐng)域的專家編寫,用戶不必?fù)?dān)心函數(shù)的可靠性??梢哉f,用MATLAB進(jìn)行科技開發(fā)是站在專家的肩膀上?!? 具有FORTRAN和C等高級(jí)語言知識(shí)的讀者可能已經(jīng)注意到,如果用FORTRAN或C語言去編寫程序,尤其當(dāng)涉及矩陣運(yùn)算和畫圖時(shí),編程會(huì)很麻煩。例如,如果用戶想求解一個(gè)線性代數(shù)方程,就得編寫一個(gè)程序塊讀入數(shù)據(jù),然后再使用一種求解線性方程的算法(例如追趕法)編寫一個(gè)程序塊來求解方程,最后再輸出計(jì)算結(jié)果。在求解過程中,最麻煩的要算第二部分。解線性方程的麻煩在于要對(duì)矩陣的元素作循環(huán),選擇穩(wěn)定的算法以及代碼的調(diào)試動(dòng)不容易。即使有部分源代碼,用戶也會(huì)感到麻煩,且不能保證運(yùn)算的穩(wěn)定性。解線性方程的程序用FORTRAN和C這樣的高級(jí)語言編寫,至少需要四百多行,調(diào)試這種幾百行的計(jì)算程序可以說很困難。以下用MATLAB編寫以上兩個(gè)小程序的具體過程。MATLAB求解下列方程
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1