欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      基于單片機控制的紅外線遙控器設(shè)計_趙健衡.pdf[大全五篇]

      時間:2019-05-12 21:51:13下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《基于單片機控制的紅外線遙控器設(shè)計_趙健衡.pdf》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《基于單片機控制的紅外線遙控器設(shè)計_趙健衡.pdf》。

      第一篇:基于單片機控制的紅外線遙控器設(shè)計_趙健衡.pdf

      ISSN 1009-3044 Computer Knowledge and Technology 電腦知識與技術(shù) Vol.5,No.1,January 2009, pp.244-246

      E-mail: kfyj@cccc.net.cn http://004km.cn/hongwai/hs6221.pdf.[2] 臺灣義隆電子股份有限公司.EM78P153S 單片機說明書[EB/OL].http://004km.cn/datasheet/EM_mcu/em78p153.pdf.[3] 張愛全.紅外線遙控的基本原理和應(yīng)用范圍[J].山西電子技術(shù),2003(6):40-41.趙健衡(1963-),男,常州工學(xué)院講師,碩士,研究方向:測控技術(shù)與單片機應(yīng) 用技術(shù)。

      (上接第 222 頁)

      參考文獻(xiàn): 提高教學(xué)效率。在現(xiàn)實使用中,多媒體網(wǎng)絡(luò)教學(xué)軟件有很大的適應(yīng)性,但也存在一些使用缺陷,這就需要我們用創(chuàng)新的思維去發(fā)展它 的功能。多媒體網(wǎng)絡(luò)教室的發(fā)展方向,既要滿足廣播教學(xué)的需求,還要滿足交互方式的多樣化需求,更進(jìn)一步還要通過軟件實現(xiàn)電子 教室的高效可管理與高度可控。只要用創(chuàng)新與發(fā)展的眼光去發(fā)展軟件,就能將多媒體網(wǎng)絡(luò)教學(xué)軟件推向一個更高、更新的臺階。

      [1] 魯士文.多媒體網(wǎng)絡(luò)技術(shù)與應(yīng)用[M].北京:清華大學(xué)出版社,2002. [2] 李小平,曲大成.多媒體網(wǎng)絡(luò)通信[M].北京:北京理工大學(xué)出版社,2001. [3] 李克東.新編現(xiàn)代教育技術(shù)基礎(chǔ)[M].上海:華東師范大出版社,2002.

      張士剛(1977-),男,湖南武岡人,廣州鐵路職業(yè)技術(shù)學(xué)院講師,廣 東工業(yè)大學(xué)工程碩士生,學(xué)士,研 究方向: 計算機教學(xué)、軟件開發(fā)、軟件測試。

      246 計算機工程應(yīng)用技術(shù) 本欄目責(zé)任編輯:賈薇薇

      第二篇:基于單片機控制的交通燈設(shè)計系統(tǒng)

      基于單片機控制的交通燈設(shè)計系統(tǒng)

      班級:

      姓名:

      學(xué)號:

      第一章 概述 1.設(shè)計內(nèi)容

      本系統(tǒng)需要采用AT89C51單片機AT89C5中心器件來設(shè)計交通燈控制器,實現(xiàn)以下功能: 1.1初始東西綠燈亮,南北紅燈亮,東西方向通車。1.2黃燈閃爍后,東西路口紅燈亮同時南北路口綠燈亮,南北方向開始通車。1.3延時27s,南北方向綠燈滅,黃燈閃爍3次,然后又切換成東西方向通車,如此重復(fù)。

      設(shè)計交通燈控制系統(tǒng)硬件電路與軟件控制程序,對硬件電路與軟件程序分別進(jìn)行調(diào)試,并進(jìn)行軟硬件聯(lián)調(diào),要求獲得調(diào)試成功的仿真圖。2.設(shè)計目的

      2.1 了解交通燈管理的基本工作原理。2.2 熟悉AT89C51工作原理和應(yīng)用編程。

      2.3 熟悉AT89C51行接口的各種工作方式和應(yīng)用。

      2.4 熟悉AT89C51數(shù)器/定時器的工作方式和應(yīng)用編程外部中斷的方法。2.5 掌握多位LED顯示問題的解決。3.設(shè)計原理

      AT89C51片機具有控制二連體共陰極數(shù)碼管和發(fā)光二極管的輸出顯示以及檢測按鍵輸入的功能。利用AT89C51片機模仿制作室外十字路口多功能交通燈,實現(xiàn)室內(nèi)控制與室外顯示的功能。合理控制交通繁忙,交通特殊情況和恢復(fù)交通正常的三種情況。

      本設(shè)計用4個共陽極LED數(shù)碼管的分別表示東、西、南、北四個方向路口,以數(shù)碼管的上、中、下3個橫段分別代表紅、黃、綠3盞燈,用P0、P1口分別輸出控制模擬交通燈的狀態(tài)顯示的數(shù)碼管和倒計時顯示數(shù)碼管的狀態(tài)碼,P3^

      1、P3^

      2、P3^4-P3^7控制數(shù)碼管的位選,P2^0-P2^4接收中斷信號并反饋給INT0接口進(jìn)行中斷處理。

      第二章 硬件設(shè)計

      1.設(shè)計框圖 如圖2-1所示 此處要有文字說明

      圖2-1設(shè)計框圖

      2.元器件選擇及其功能介紹

      AT89C51是一種帶4K字節(jié)LASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。AT89C51片引腳圖如下圖2-2所示。

      圖2-2 AT89C51片引腳圖

      主要特性:

      ·與MCS-51 兼容

      ·4K字節(jié)可編程閃爍存儲器 ·壽命:1000寫/擦循環(huán) ·數(shù)據(jù)保留時間:10年 ·全靜態(tài)工作:0Hz-24MHz ·三級程序存儲器鎖定 ·128×8位內(nèi)部RAM ·32可編程I/O線

      ·兩個16位定時器/計數(shù)器,5個中斷源 ·可編程串行通道

      ·低功耗的閑置和掉電模式 ·片內(nèi)振蕩器和時鐘電路 3.設(shè)計原理圖

      硬件電路圖通過Proteus 仿真之后如圖2-3所示,其中: 按鈕K0連接P2^0端口實現(xiàn)紅燈全亮,處理交通意外 按鈕K1連接P2^1端口實現(xiàn)南北方向亮燈時間+1s 按鈕K2連接P2^2端口實現(xiàn)南北方向亮燈時間-1s 按鈕K3連接P2^3端口實現(xiàn)東西方向亮燈時間+1s 按鈕K4連接P2^4端口實現(xiàn)東西方向亮燈時間-1s

      圖2-3整體連接電路原理圖

      第三章 軟件設(shè)計

      1.各個程序段介紹 1.1數(shù)碼管顯示

      void Display(uchar j)//j控制顯示table中連續(xù)位的起始點 { char h,l;if(j<11)//根據(jù)狀態(tài)判定時間

      {

      h=Time_EW/10;//EW通行時間十位

      l=Time_EW%10;//EW通行時間個位

      } else if(j<23){

      h=Time_SN/10;//SN通行時間十位

      l=Time_SN%10;//SN通行時間個位

      } for(i=0;i<4;)//按位顯示通行狀況及時間

      {

      P0=table1[j];//通行狀況顯示

      P3=tab[i];//位選顯示

      i++;

      j++;

      if(i%2)//兩位計時顯示

      {

      P1=table[l];

      Delay(400);

      }

      else

      {

      P1=table[h];

      Delay(400);

      } } Delay(5);} 1.2 INT0外部中斷服務(wù)程序

      void EXINT0(void)interrupt 0//INT0外部中斷 { EX0=0;//關(guān)中斷

      if(Busy_Button==0){

      P0=0xFE;//意外按鈕按下全顯示紅燈

      for(;Busy_Button!=1;)//意外按鈕彈起時恢復(fù)之前狀態(tài)

      Display(24);} /*四個時間控制按鈕分別控制SN、EW方向初始通行時間加減,最長不超過s,最少不低于s*/ if(SN_Add==0)//SN+1 {

      SN1+=1;

      if(SN1>99)

      SN1=99;} if(SN_Red==0)//SN-1 {

      SN1-=1;

      if(SN1<20)

      SN1=20;} if(EW_Add==0)//EW+1 {

      EW1+=1;

      if(EW1>99)

      EW1=99;} if(EW_Red==0)//EW-1 {

      EW1-=1;

      if(EW1<20)

      EW1=20;} EX0=1;//開中斷 } 1.3延時子程序

      void Delay(uchar a)//循環(huán)a次 { uchar x;x=a;while(x--){;} } 2.程序

      #define uchar unsigned char #include uchar code table[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};uchar code table1[28]={0xF7,0xFE,0xF7,0xFE,0xBF,0xFE,0xBF,0xFE,0xFF,0xFE,0xFF,0xF E, 0xFE,0xF7,0xFE,0xF7,0xFE,0xBF,0xFE,0xBF,0xFE,0xFF,0xFE,0xFF, 0xFE,0xFE,0xFE,0xFE};uchar code tab[4]={0x1E,0x2D,0x4E,0x8D};uchar EW=30,SN=30,EW1=30,SN1=30;uchar count;uchar i,j;sbit Busy_Button=P2^0;sbit SN_Add=P2^1;sbit SN_Red=P2^2;sbit EW_Add=P2^3;sbit EW_Red=P2^4;char Time_EW;char Time_SN;void Delay(uchar a){

      uchar x;x=a;while(x--){;} } void Display(uchar j){ char h,l;if(j<11){

      h=Time_EW/10;

      l=Time_EW%10;} else if(j<23){

      h=Time_SN/10;

      l=Time_SN%10;} for(i=0;i<4;){

      P0=table1[j];

      P3=tab[i];

      i++;

      j++;

      if(i%2)

      {

      P1=table[l];

      Delay(400);

      }

      else

      {

      P1=table[h];

      Delay(400);

      } } Delay(5);} void EXINT0(void)interrupt 0 { EX0=0;if(Busy_Button==0){

      P0=0xFE;

      for(;Busy_Button!=1;)Display(24);} if(SN_Add==0){

      SN1+=1;

      if(SN1>99)

      SN1=99;} if(SN_Red==0){

      SN1-=1;

      if(SN1<20)

      SN1=20;} if(EW_Add==0){

      EW1+=1;

      if(EW1>99)

      EW1=99;} if(EW_Red==0){

      EW1-=1;

      if(EW1<20)

      EW1=20;} EX0=1;

      } void timer0(void)interrupt 1 using 1 { TH0=0x3C;TL0=0xB0;count++;if(count==20){

      Time_EW--;

      Time_SN--;

      count=0;} } 第四章 仿真結(jié)果及其總結(jié)

      1.仿真結(jié)果圖

      1.1正常狀態(tài)的仿真結(jié)果如圖4-1所示

      圖4-1正常狀態(tài)

      1.2黃燈狀態(tài)的仿真結(jié)果如圖4-2所示

      圖4-2黃燈狀態(tài)

      1.3緊急狀態(tài)的仿真結(jié)果如圖4-3所示

      圖4-3 緊急狀態(tài)

      1.4延長通行時間的仿真結(jié)果如圖4-4所示

      圖4-4延長通行時間

      2.總結(jié)

      通過這次交通燈的課程設(shè)計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決現(xiàn)實問題的能力。使我在單片機的基本原理、單片機應(yīng)用學(xué)習(xí)過程中,以及在常用編程設(shè)計思路技巧的掌握方面都能向前邁了一大步,為日后成為一名合格的應(yīng)用型人才打下良好的基礎(chǔ)。綜合課程設(shè)計讓我把以前學(xué)習(xí)到的知識得到鞏固和進(jìn)一步的提高認(rèn)識,對已有知識有了更深層次的理解和認(rèn)識。在此,由于自身能力有限,在課程設(shè)計中碰到了很多的問題,我通過查閱相關(guān)書籍、資料以及和周圍同學(xué)交流得到解決。

      通過這次交通燈的課程設(shè)計,使我了解了寫畢業(yè)設(shè)計的流程和方法。為自己以后的畢業(yè)論文的設(shè)計做一次練習(xí),具有積極的意義。還有交通燈是我們生活中非常常見的一種東西,對于我們學(xué)以致用的這種能力得到了很好鍛煉,能夠為我們以后的工作于學(xué)習(xí)打下基礎(chǔ)。

      由于本人的水平有限,設(shè)計中難免會有一些不合理的部分,系統(tǒng)的穩(wěn)定性還有待提高,望批評更正。

      第三篇:單片機控制的交通燈控制系統(tǒng)設(shè)計

      摘要

      本設(shè)計是單片機控制的交通燈控制系統(tǒng)設(shè)計。由單片機系統(tǒng)、LED顯示、交通燈演示系統(tǒng)、鍵盤電路及其控制電路組成。該系統(tǒng)除基本交通燈功能外,還具有倒計時、緊急情況處理、調(diào)整通行時間以及根

      據(jù)具體情況手動控制等功能。

      十字路口的交通燈在工作時應(yīng)具有如下特點:紅燈表示該條道路禁止通性;黃燈表示該條道路上未過停車線的車輛禁止通行,已過停車線的車輛繼續(xù)通性;綠燈亮表示該條道路允許通行。該系統(tǒng)使用12MHZ晶振與單片機AT89S52相連接,通過軟件編程的方法實現(xiàn)十字路口的交通燈控制,輸入裝置是鍵盤開關(guān),用于控制交通燈的運行模式以及設(shè)置通行時間,顯示裝置是兩位的LED七段數(shù)碼管。該系統(tǒng)是由AT89S52單片機控制的,可以實現(xiàn)以下功能:

      1.南北方向(主干道)車道和東西方向(支干道)兩條交叉道路上的車輛交替運行,主干道每次通行時間都設(shè)為30秒、支干道每次通行間為20秒,時間可設(shè)置修改。

      2.在綠燈轉(zhuǎn)為紅燈時,要求黃燈先亮5秒鐘,才能變換運行車道。

      3.黃燈亮?xí)r,要求每秒閃亮一次。

      4.東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時間都用顯示器進(jìn)行顯示(采

      用計時的方法)。

      5.一道有車而另一道無車(實驗時用開關(guān) K0 和 K1 控制),交通燈控制系統(tǒng)能立即讓有車道放行。

      6.有緊急車輛要求通過時,系統(tǒng)要能禁止普通車輛通行,A、B道均為紅燈。

      關(guān)鍵字:AT89S52單片機,交通燈,LED顯示,鍵盤開關(guān)電路。

      目 錄

      1概述…………………………………………………………………………-3-1.1設(shè)計背景 ……………………………………………………………-3-1.2設(shè)計目的 ……………………………………………………………-3-1.3設(shè)計要求 ……………………………………………………………-3-2 系統(tǒng)總體方案及硬件設(shè)計 ………………………………………………-4-2.1 設(shè)計原理……………………………………………………………-4-2.2 各功能模塊設(shè)計……………………………………………………-4-2.2.1單片機AT89S52介紹 …………………………………………-4-2.2.2總體方案 ………………………………………………………-5-2.2.3時鐘電路模塊 …………………………………………………-6-2.2.4復(fù)位電路模塊 …………………………………………………-6-2.2.5交通燈演示模塊 ………………………………………………-7-2.2.6 LED顯示模塊 …………………………………………………-7-2.2.7鍵盤開關(guān)模塊 …………………………………………………-8-3 軟件設(shè)計 …………………………………………………………………-10-3.1程序流程圖 …………………………………………………………-10-3.2系統(tǒng)軟件設(shè)計………………………………………………………-11-3.2.1 LED的編程……………………………………………………-11-3.2.2交通燈模塊的編程設(shè)計………………………………………-12-3.2.3定時器程序……………………………………………………-12-3.2.4鍵盤程序………………………………………………………-13-3.2.4.1通行時間設(shè)置程序………………………………………-13-3.2.4.2緊急情況處理程序………………………………………-14-3.2.4.3狀態(tài)調(diào)整程序……………………………………………-14-4 Proreus仿真 ……………………………………………………………-15-4.1正常工作狀態(tài)………………………………………………………-15-4.2時間調(diào)整……………………………………………………………-17-4.3緊急狀況……………………………………………………………-19-4.4狀態(tài)調(diào)整……………………………………………………………-20-5課程設(shè)計體會 ……………………………………………………………-22-參考文獻(xiàn)……………………………………………………………………-23-附1:源程序代碼 …………………………………………………………-24-附2:系統(tǒng)原理圖 …………………………………………………………-32-概述 1.1 設(shè)計背景

      人們越來越關(guān)注城市交通問題,而交通燈在安全行車過程中起十分重要的作用, 現(xiàn)在交通燈一般設(shè)在十字路口,在醒目位置用紅、綠、黃三種顏色的指示燈, 加上一個倒計時的顯示計時器來控制行車, 對于一般情況下的安全行車、車輛分流發(fā)揮著作用, 但根據(jù)實際行車過程中出現(xiàn)的情況, 主要有如下幾個缺點:

      1、車道讓車輪流放行時間相同且固定, 在十字路口, 經(jīng)常出現(xiàn)有些車道車輛較多, 放行時間應(yīng)該長些;而有些車道車輛較少,放行時間應(yīng)短些。

      2、沒有考慮緊急車通過時, 兩車道應(yīng)采取的措施, 譬如, 有消防車通過執(zhí)行緊急任務(wù)時, 兩車道的車都應(yīng)停止, 讓緊急車輛通過。根據(jù)行車過程中出現(xiàn)的實際情況, 如何合理高效地利用交通燈指示交通情況,這是一個迫切需要解決的問題。

      1.2 設(shè)計目的

      1.進(jìn)一步熟悉和掌握單片機的結(jié)構(gòu)及工作原理。

      2.掌握單片機的接口技術(shù)及相關(guān)外圍芯片的外特性,控制方法。3.通過課程設(shè)計,掌握以單片機核心的電路設(shè)計的基本方法和技術(shù)。4.通過實際程序設(shè)計和調(diào)試,逐步掌握模塊化程序設(shè)計方法和調(diào)試技術(shù)。5.了解開發(fā)單片機應(yīng)用系統(tǒng)的全過程,為今后從事相關(guān)事業(yè)打下基礎(chǔ)。

      1.3 設(shè)計要求

      1.設(shè)計一個十字路口的交通燈控制電路,要求南北方向(主干道)車道和東西方向(支干道)車道兩條交叉道路上的車輛交替運行,主干道每次通行時間都設(shè)為30秒、支干道每次通行時間為20秒,時間

      可設(shè)置修改。

      2.在綠燈轉(zhuǎn)為紅燈時,要求黃燈先亮5秒鐘,才能變換運行車道;

      3.黃燈亮?xí)r,要求每秒閃亮一次。

      4.東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時間都用顯示器進(jìn)行顯示(采

      用計時的方法)。

      5.一道有車而另一道無車(實驗時用開關(guān) K0 和 K1 控制),交通燈控制系統(tǒng)能立即讓有車道放行。

      6.有緊急車輛要求通過時,系統(tǒng)要能禁止普通車輛通行,A、B道均為紅燈。系統(tǒng)總體方案及硬件設(shè)計

      2.1 設(shè)計原理

      本設(shè)計使用的是單片機作為核心的控制元件,使得電路的可靠性比較高,功能也比較強大,而且可以隨時更新系統(tǒng),根據(jù)道路情況適時調(diào)整交通燈的狀態(tài),全面有效地利用交通燈指示交通情況。該設(shè)計是以單片機AT89S52為核心完成的,在硬件電路中采用P1口點亮交通指示燈,采用P0口和P2口作為2位LED數(shù)碼管的驅(qū)動接口,可顯示各個方向的交通燈的持續(xù)時間,單片機外圍接有按鍵開關(guān)電路,可以響應(yīng)外部中斷及鍵盤程序,實現(xiàn)緊急情況處理、調(diào)整交通燈的點亮?xí)r間等功能。芯片選用AT89C51 單片機,電路由下列部分組成:時鐘電路、復(fù)位電路、鍵盤電路、交通燈演示電

      路、LED顯示電路。

      2.2 各功能模塊設(shè)計 2.2.1 單片機AT89S52介紹

      AT89S52是一個低電壓,高性能CMOS型 8位單片機,片內(nèi)含8KB的可反復(fù)擦寫的Flash只讀程序存儲器(ROM)和256 B的隨機存取數(shù)據(jù)存儲器(RAM)。AT89S52是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,AT89S52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。

      引腳使用說明:

      I/O端口的編程實際上就是根據(jù)應(yīng)用電路的具體功能和要求對I/O寄存器進(jìn)行編程。具體步驟如下:

      l.根據(jù)實際電路的要求,選擇要使用哪些I/O端口。

      2.初始化端口的數(shù)據(jù)輸出寄存器,應(yīng)避免端口作為輸出時的開始階段出現(xiàn)不確定狀態(tài),影響外圍電

      路正常工作。

      3.根據(jù)外圍電路功能,確定PO端口的方向,初始化端口的數(shù)據(jù)方向寄存器。對于用作輸入的端口可以不考慮方向初始化,因為PO的復(fù)位缺省值為輸入。

      4.用作輸入的PO管腳,需上拉電阻。

      5.最后對I/O端口進(jìn)行輸出(寫數(shù)據(jù)輸出寄存器)和輸入(讀端口)編程,完成對外圍電路的相應(yīng)功能。

      幾個特殊管腳:

      XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。

      XTAL2:來自反向振蕩器的輸出。

      RST: 復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平。

      2.2.2 總體方案 此交通燈系統(tǒng)位于一個十字路口,此路口為東南西北走向。南北方向為主干道,東西方向為支干道。各干道有一組紅、綠、黃三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行,黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換。

      此交通燈系統(tǒng)工作過程分為4個狀態(tài)。狀態(tài)0南北方向綠燈亮,東西方向紅燈亮。過25秒后轉(zhuǎn)為狀態(tài)1,南北方向綠燈滅,黃燈每秒閃亮一次,東西方向還是紅燈亮。歷時5秒鐘再轉(zhuǎn)為狀態(tài)2,南北方向紅燈亮,東西方向綠燈亮。過15秒后轉(zhuǎn)為狀態(tài)3,南北方向還是紅燈亮,東西方向綠燈滅,黃燈每秒閃亮

      一次。歷時5秒鐘又循環(huán)至狀態(tài)0。

      交通燈的狀態(tài)表如下:

      狀態(tài)(時間)主干道—SN 紅—R 0 1 2 3 0 0 1 1

      綠—G 1 0 0 0

      黃—Y 0 1/0 0 0

      表01 交通燈的狀態(tài)表

      注:

      1:SN:南北方向。WE:東西方向。2:狀態(tài):0:熄。1:亮。1/0:閃。

      2.2.3 時鐘電路模塊

      時鐘電路模塊給單片機提供特定的時鐘周期,以備單片機工作使用。單片機的機器周期有6MHz和12MHz的兩種。這里采用的是12MHZ的晶振,以給單片機提供12MHz的機器周期。另外有兩個30P的電容,兩晶振引腳分別連到XTAL1和XTAL2振蕩脈沖輸入引腳。

      其電路圖如圖02所示:

      支干道—WE 紅—R 1 1 0 0

      綠—G 0 0 1 0

      黃—Y 0 0 0 1/0

      圖02 時鐘電路模塊

      2.2.4 復(fù)位電路模塊

      單片機系統(tǒng)的復(fù)位電路采用的是上電+按鈕復(fù)位電路形式,其中電阻R采用10KΩ的阻值,電容采用

      電容值為10μF的電解電容。其具體連接電路如圖03所示:

      圖03 復(fù)位電路模塊 2.2.5 交通燈演示模塊

      此交通燈演示模塊由單片機的P1口作信號輸出端來控制12個交通燈的亮滅,交通燈采用的是發(fā)光二極管。因為單片機的輸出電流非常小,為了使發(fā)光二極管能夠發(fā)光或者更亮,二極管采用共陽極接法。即陽極通過470Ω電阻接+5V直流電源,陰極接單片機P1口。同時南北方向同色燈連同上拉電阻一起并聯(lián),東西方向也是一樣,以保證同一干道上的同色燈同時點亮或熄滅,并且流過二極管的電流不會因并聯(lián)

      而減半。

      其具體連接電路如圖04所示:

      圖04交通燈演示電路 2.2.6 LED顯示模塊 由于同一干道上的兩個方向的紅燈,綠燈,黃燈點亮?xí)r間相同,所以南北方向只需一個數(shù)碼管顯示

      相應(yīng)的時間即可,同理東西方向也只需一個。

      本次交通燈設(shè)計采用兩位一體的共陰極數(shù)碼管來顯示相應(yīng)的時間。由單片機的P0口輸出字型碼,P2口的前四位P2.0~P2.3作位選端。位選端接LED的共陰極,故低電位有效。因為單片機I/O口的驅(qū)動電流很小,一般只有幾個毫安。為了增加驅(qū)動能力,每個LED上都加上一個上拉電阻,接入+5V電源,本次設(shè)計采用的是排阻。當(dāng)P0口輸出低電平時,LED不導(dǎo)通,上拉電阻電流灌進(jìn)單片機,而當(dāng)P0口輸出高電平時,LED導(dǎo)通。而且上拉電阻的電流也通過LED,這自然就增加了LED的發(fā)光亮度。

      其具體連接電路如圖05所示:

      圖05 LED顯示電路 2.2.7 鍵盤開關(guān)模塊

      此系統(tǒng)通過5個開關(guān)實現(xiàn)所有的要求,開關(guān)一端接地,另一端接單片機的P3口。K0接P3^7,當(dāng)主干道有車而支干道無車時,按一下K0鍵,可以實現(xiàn)主干道通行。K1接P3^6,當(dāng)支干道有車而主干道無車時,按一下K1鍵,可以實現(xiàn)支干道通行。K2接P3^3,利用中斷1的方式對緊急情況進(jìn)行處理,即使東南西北四個方向都亮紅燈停車。K4接P3^2,利用中斷0的方式對各個干道的通行時間進(jìn)行設(shè)置。在相應(yīng)中斷0期間,K0,K1起調(diào)整時間的作用。每按一下K0,主干道通行時間加一,每按一下K0,主干道通行時間加一。K3接P3^5,按一下K3,可以使系統(tǒng)退出中斷,回到主程序。

      其具體連接電路如06圖示:

      圖06 鍵盤開關(guān)電路 軟件設(shè)計 3.1 系統(tǒng)流程圖

      (注:判斷框SN=0,WE=0處的Y,N位置標(biāo)反了,讀者自己改正。)

      3.2 系統(tǒng)軟件設(shè)計 本次單片機課程設(shè)計軟件部分利用C語言編程,采用模塊化程序設(shè)計。程序部分由主程序、定時器程序、T0/T1中斷服務(wù)程序、鍵盤掃描程序、交通燈點亮程序、LED數(shù)碼管掃描顯示程序和延時程序構(gòu)成。

      3.2.1 LED的編程

      本次交通燈設(shè)計采用兩位一體的共陰極數(shù)碼管來顯示相應(yīng)的時間。數(shù)碼管為七段數(shù)碼管,由8個發(fā)光二極管構(gòu)成,通過不同的組合可用來顯示數(shù)字0-9,字符A-F、H、L、P、R、U、Y、符號“-”及小數(shù)點“.”。

      本設(shè)計只需要顯示數(shù)字0-9,來表示相應(yīng)的時間。

      共陰極數(shù)碼管的8個發(fā)光二極管的陰極連接在一起接位選端。兩個兩位一體的共陰極數(shù)碼管共有4個位選端,分別接在 P2^O-P2^3,低電平有效。數(shù)碼管各個陽極管腳接各段的驅(qū)動電路輸出端,既P0口。P0^0接a,P0^1接b,……P0^6接g,P0^7接dp,高電平有效。

      本設(shè)計采用逐位掃描的方式實現(xiàn)相應(yīng)時間的動態(tài)顯示。先將P2^1置低電平,P2^0、P2^

      2、P2^3置高電平,來選中南北方向數(shù)碼管的個位,此時P0口的數(shù)據(jù)接傳送給它顯示。經(jīng)延時一段時間,將P2^1置低電位選中南北方向數(shù)碼管的十位,此時P0口的數(shù)據(jù)接傳送給它顯示。再用同樣的方法依次驅(qū)動?xùn)|西方向數(shù)碼管。通過不斷改變P0口、P2口的輸出,用循環(huán)掃描的方式,即可實現(xiàn)LED的動態(tài)顯示。

      LED動態(tài)顯示的流程圖如圖08:

      3.2.2交通燈模塊的編寫設(shè)計

      本次設(shè)計的交通燈演示模塊由單片機的P1口作信號輸出端來控制12個交通燈的亮滅。P1^1-P1^6依次連接南北的紅燈、綠燈、黃燈,東西的紅燈、綠燈,黃燈。所以4種狀態(tài)依次為0x6A,0x66,0x5C,0x3C。當(dāng)交通燈的剩余時間為零時,改變P1口的輸出,進(jìn)而改變交通燈的點亮狀態(tài)。交通燈依次循環(huán)上面的4個狀態(tài),就可以實現(xiàn)指揮交通的作用。

      3.2.3 定時器程序

      本次設(shè)計用定時計數(shù)器T1,TMOD是定時計算器的工作方式控制寄存器,通過對該寄存器的操作可以改變T1的工作方式。T1有4種工作方式,由TMOD寄存器中間的M1、M0這兩位來決定。本次設(shè)計的定時計數(shù)器工作在工作方式1,M1、M0設(shè)定為01。定時計算器采用加1計數(shù)的方式,當(dāng)接收到一個驅(qū)動事件時計數(shù)器加1。工作方式1的內(nèi)部計數(shù)器寬度為16位,由TH1的8位和TL1的8位組成。當(dāng)TL1溢出時將向TH1進(jìn)位,當(dāng)TH1溢出后會產(chǎn)生相應(yīng)的溢出中斷。

      驅(qū)動事件之間的時間間隔即為定時計數(shù)器的定時寬度。在定時的工作方式下,定時寬度是單片機的機械周期,也是外部時鐘頻率的1/12。本次設(shè)計的外部時鐘頻率為12MHz??芍邮?06個驅(qū)動事件的時間為1s。

      定是1s的流程圖如圖09所示:

      3.2.4 鍵盤程序

      為了實現(xiàn)設(shè)置通行時間、緊急情況處理、有車放行等功能,本次設(shè)計中有鍵盤電路。通行時間設(shè)置由外部中斷0實現(xiàn),緊急情況由外部中斷1處理,有車放行是用普通的鍵盤程序?qū)崿F(xiàn)的。按鍵實際是一種常用的按鈕,按鍵未按下時,鍵的兩個觸點處于斷開狀態(tài),按鍵按下時,兩個觸點閉合。按鍵是利用機械觸點來實現(xiàn)鍵的閉合和釋放,由于彈性作用的影響,機械觸點在閉合及斷開瞬間均

      有抖動過程,從而使鍵輸入也出現(xiàn)抖動。

      抖動時間一般為5—10ms。本次設(shè)計采用軟件的辦法消抖。在第一次檢測到有鍵按下時不動作,延時10ms,再次檢測按鍵的狀態(tài),如果仍保持閉合狀態(tài),則確定真的有鍵按下。當(dāng)按鍵釋放后,轉(zhuǎn)入按鍵的處理程序 延時程序如下: /*延時t毫秒*/ void delay(uchar t)

      {

      uchar i;/*定義無符號字符常量*/ for(t;t>0;t--)/*執(zhí)行t次循環(huán)*/

      { for(i=2000;i>0;i--)/*由于時鐘脈沖是12MHz,執(zhí)行2000次循環(huán)的時間為1ms*/

      { } } }

      3.2.4.1 通行時間設(shè)置程序

      本次設(shè)計通過外部中斷0設(shè)置各個干道的通行時間。

      外部中斷0的請求信號由P3^2引腳輸入,采用低電平有效的方式響應(yīng)中斷,即IT0=1。響應(yīng)中斷0期間,CPU禁止響應(yīng)其他中斷,按鍵K0,K1起調(diào)整時間的作用。采用加1的方式,每按一下K0,主干道通行時間加1,每按一下K1,支干道通行時間加1。通行時間可以直接在數(shù)碼管上顯示出來。按一下K3,可以使系統(tǒng)退出中斷,回到主程序斷點處,從下一個狀態(tài)開始執(zhí)行新設(shè)置的通行時間。CPU再開放總中斷。

      由于本次設(shè)計使用兩位一體的共陰極數(shù)碼管顯示時間,故設(shè)置各個干道的通行時間的范圍為0—100s??紤]道路通車的實際情況,時間太短無法通過交通路口,所以本設(shè)計中通行時間下限為6s(綠燈1s,黃燈5s)。在6—99s之間可以任意設(shè)置通行時間,更合理高效的指揮交通。

      3.2.4.2 緊急情況處理程序

      本次設(shè)計通過外部中斷1實現(xiàn)對緊急情況的處理。

      與外部中斷0相仿。外部中斷1的請求信號有P3^3引腳輸入,采用低電平有效的方式相應(yīng)中斷,即IT0=1。響應(yīng)中斷1期間,CPU禁止響應(yīng)其他中斷,東南西北四個方向均亮紅燈,各個干道都禁止通行。由于不確定要持續(xù)多久,不采用倒計時的方式顯示時間,數(shù)碼管顯示00。緊急情況結(jié)束時,按一下K3,可以使系統(tǒng)退出中斷,回到主程序斷點處,CPU再開放總中斷。

      3.2.4.3 狀態(tài)調(diào)整程序

      在實際交通系統(tǒng)中,很有可能會不時的出現(xiàn)一道有車而另一道無車的情況,為了更合理高效的指揮交通,本次設(shè)計的交通燈控制系統(tǒng)能立即讓有車道放。由開關(guān) K0 和 K1 控制。采用查詢的方式不斷掃描K0、K1,看有沒有鍵按下。按一下K0鍵,可以實現(xiàn)主干道通行,按一下K1鍵,可以實現(xiàn)支干道通行。

      此時交通狀態(tài)的改變是因為另一路無車,所以不需要設(shè)置返回,直接按主程序循環(huán)指揮。也有可能較長時間出現(xiàn)一道有車另一道無車的情況,只需多次按K0或K1鍵即可。Proteus仿真 4.1 正常工作狀態(tài)

      本次設(shè)計的交通燈控制系統(tǒng)共有四個工作狀態(tài),分別是狀態(tài)0、狀態(tài)

      1、狀態(tài)2和狀態(tài)3。開始時先執(zhí)行狀態(tài)0,南北方向綠燈亮,東西方向紅燈亮。歷時25秒。如圖10所示:

      圖10 狀態(tài)0 25秒后轉(zhuǎn)為狀態(tài)1,南北方向綠燈滅,黃燈每秒閃亮一次,東西方向還是紅燈亮。歷時5秒。如圖

      11所示:

      圖11 狀態(tài)1 5秒后再轉(zhuǎn)狀態(tài)2,南北方向紅燈亮,東西方向綠燈亮。歷時15秒。如圖12所示:

      圖12 狀態(tài)2 15秒后轉(zhuǎn)狀態(tài)3,南北方向還是紅燈亮,東西方向綠燈滅,黃燈每秒閃亮一次。歷時5秒。如圖1

      3所示:

      圖13 狀態(tài)3

      此狀態(tài)結(jié)束后再回到狀態(tài)0,如此循環(huán)進(jìn)行。

      4.2 時間調(diào)整

      按一下開關(guān)K4,系統(tǒng)響應(yīng)外部中斷0,進(jìn)入通行時間調(diào)整程序。各個干道的通行時間有數(shù)碼管顯

      示。如圖14所示:

      圖14 時間調(diào)整

      按鍵K0,K1起調(diào)整時間的作用,每按一下K0,主干道通行時間加1,每按一下K1,支干道通行時間加1。多次按鍵即可調(diào)整到合理的通行時間。如圖15所示:

      圖15 通行時間+1 按一下K3,可以使系統(tǒng)退出中斷,回到主程序斷點處,從下一個狀態(tài)開始執(zhí)行新設(shè)置的通行時間。

      如圖16、17所示:

      圖16 主干道按新設(shè)置的時間執(zhí)行

      圖17 支干道按新設(shè)置的時間執(zhí)行

      4.3 緊急情況

      當(dāng)出現(xiàn)緊急情況時,按一下開關(guān)K2,系統(tǒng)響應(yīng)外部中斷1,各個方向均亮紅燈禁止通行,數(shù)碼管均顯示0。按一下K3,可以使系統(tǒng)退出中斷,回到主程序斷點處。如圖18所示

      圖18 緊急情況 4.4 狀態(tài)調(diào)整

      為了更合理高效的指揮交通,當(dāng)南北方向有車而東西方向無車時,按K0,系統(tǒng)會自動跳轉(zhuǎn)到狀態(tài)0,實現(xiàn)南北方向通行。如圖19所示:

      圖19 南北方向有車而東西方向無車時,南北放行

      當(dāng)東西方向有車而南北方向無車時,按K1,系統(tǒng)會自動跳轉(zhuǎn)到狀態(tài)2,實現(xiàn)東西方向通行。如圖20

      所示:

      圖20 東西方向有車而南北方向無車時,東西放行 課程設(shè)計體會

      很榮幸有這次課程設(shè)計的機會,我可以把理論的學(xué)習(xí)與實踐有機的結(jié)合起來。

      在設(shè)計過程中,首先要分析課題,根據(jù)所學(xué)知識繪制出系統(tǒng)總體設(shè)計框圖。然后按照自己的設(shè)計思路,利用所給的元器件繪制出設(shè)計圖。在繪制設(shè)計圖連接各個元器件的時候,要盡量使布線合適,從而使所作設(shè)計圖清晰易看。繪制完設(shè)計圖后,接下來就是要根據(jù)設(shè)計所要求的功能和已完成的設(shè)計圖編寫程序,在編程時,首先應(yīng)該繪制出主程序流程圖,然后采用模塊化程序設(shè)計的方式,編寫實現(xiàn)各個功能的子程序,再將各個子程序與主程序連接起來。在設(shè)計程序時要不斷對程序進(jìn)行修改,同時在設(shè)計程序的過程中要養(yǎng)成注釋程序的習(xí)慣,在對程序進(jìn)行修改的時候,可以通過注釋很容易的看出各句程序的功能,清晰明朗。當(dāng)程序設(shè)計出來之后,就可以通過仿真軟件對其進(jìn)行編譯,生成仿真所需要的HEX文件。將生成的文件加載到系統(tǒng)圖的單片機上,就可以進(jìn)行系統(tǒng)仿真。通過仿真,檢測所作設(shè)計是否能實現(xiàn)預(yù)期功能。本次課程設(shè)計使我對單片機的工作原理有了更深刻的認(rèn)識,掌握了許多在以前學(xué)習(xí)中混淆不清的知識點。在翻閱相關(guān)書籍和查詢相關(guān)資料過程中學(xué)到了豐富的單片機知識,開闊了眼界,增廣了知識面。在編輯程序中,對C語言又有了新的認(rèn)識和理解。實物焊接中不僅鍛煉了自己的動手能力,而且真正作到了

      理論聯(lián)系實際的重要性,收益匪淺。

      本次課程設(shè)計我參考的三本書。一本是余發(fā)山教授的《單片機原理及其應(yīng)用技術(shù)》,一本是在圖書館借的王為青老師編寫的《單片機Keil Cx51應(yīng)用開發(fā)技術(shù)》,還有一本就是賈宗璞老師的《C語言程序

      設(shè)計》。在此向編者表示誠摯的謝意。

      本次設(shè)計中,我曾多次在課堂上向譚興國老師請教各個模塊設(shè)計的細(xì)節(jié)問題,得到了譚老師的大力

      幫助,在此深表感謝!

      參考文獻(xiàn) [1] 余發(fā)山,王福忠.單片機原理及應(yīng)用技術(shù) 徐州:中國礦業(yè)大學(xué)出版社,2008 [2] 賈宗璞,許合利.C語言程序設(shè)計 徐州:中國礦業(yè)大學(xué)出版社,2007 [3] 王為青,程國剛.單片機Keil Cx51應(yīng)用開發(fā)技術(shù) 北京:人民郵電出版社,2007

      附1 源程序代碼

      #include /*對單片機的口進(jìn)行了定義********/ #define uchar unsigned char /*定義字符串類型為無符號型*/ uchar code a[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};/*段碼組合,P0口,高

      有效*/ uchar code b[4]={0x0D,0x0E,0x07,0x0B};/****P2口,低有效*/ uchar code c[4]={0x6A,0x66,0x5C,0x3C};/****P1口.低有效*/ char SN=25,WE=30;/*SN表示南北方向——主干道,WE表示東西方向——支干道*/ char SN_G=25,WE_G=15,Y=5;/*SN_G表示南北方向的綠燈,WE_G表示東西方向的綠燈,Y表

      示黃燈*/

      uchar i,k=0,count=0;/*定義無符號字符串變量*/

      void delay(uchar t);/*定義函數(shù)*/

      void light();/*定義函數(shù)*/ void led();/*定義函數(shù)*/ void ledthrough();/*定義函數(shù)*/ void leddrive();/*定義函數(shù)*/ sbit K0=P3^7;/*開關(guān)K0接P3^7管腳*/ sbit K1=P3^6;/*開關(guān)K1接P3^6管腳*/ sbit K2=P3^3;/*開關(guān)K2接P3^3管腳*/ sbit K3=P3^5;/*開關(guān)K3接P3^5管腳*/ sbit K4=P3^2;/*開關(guān)K4接P3^2管腳*/

      /*程序初始化*/ void init(void)

      { /*12MHz */ TMOD=0x01;/**計數(shù)器用模式1,為16位計數(shù)器*****/

      TH1=(65536-50000)/256;/*0x3C*/ TL1=(65536-50000)%256;/*0xB0*//*計50000個數(shù),用時50ms*/

      IT0=1;/*外部中斷為低電平觸發(fā)方式*/

      ET0=1;/*允許T0中斷*/ TR0=1;/*啟動計數(shù)器*/ EA=1;/*CPU開放總中斷*/ EX0=1;/*允許外部中斷0中斷,即允許響應(yīng)端口P3^2(K4)中斷*/ EX1=1;/*允許外部中斷1中斷,即允許響應(yīng)端口P3^3(K2)中斷*/

      }

      /*中斷0處理程序*/ void int0(void)interrupt 0

      {

      EA=0;/*CPU禁止響應(yīng)一切中斷*/ P1=0x6C;/*東西南北方向均紅燈亮*/

      TR0=!TR0;/*計數(shù)器停止工作*/

      for(;;)/*無條件循環(huán)*/

      {

      ledthrough();/*調(diào)用通行時間顯示函數(shù)*/

      /*設(shè)置南北方向通行時間*/ if(K0==0)/*P3^7=0*/

      {

      delay(10);/*延時,把抖動的時間拋掉*/

      if(K0==0)

      { while(!K0)/*當(dāng)松開K0開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/

      {

      ledthrough();/*調(diào)用通行時間顯示函數(shù)*/

      }

      SN_G++;/*南北方向綠燈時間+1*/ if((SN_G+Y)==100)/*南北方向通行時間(綠燈加黃燈時間)為100s*/ SN_G=1;/*由于使用的是兩位數(shù)碼管,當(dāng)南北方向通行時間加到100后綠燈時間歸1*/

      }

      }

      /*設(shè)置東西方向通行時間*/ if(K1==0)/*P3^6=0*/

      {

      delay(10);/*延時,把抖動的時間拋掉*/

      if(K1==0)

      { while(!K1)/*當(dāng)松開K1開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/

      { ledthrough();/*調(diào)用通行時間顯示函數(shù)*/

      }

      WE_G++;/*東西方向綠燈時間+1*/ if((WE_G+Y)==100)/*東西方向通行時間(綠燈加黃燈時間)為100s*/ WE_G=1;/*由于使用的是兩位數(shù)碼管,當(dāng)東西方向通行時間加到100后綠燈時間歸1*/

      } } /*返回*/

      if(K3==0)/*P3^5=0*/

      {

      delay(10);/*延時,把抖動的時間拋掉*/

      if(K3==0)

      { while(!K3)/*當(dāng)松開K3開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/

      {

      ledthrough();/*調(diào)用通行時間顯示函數(shù)*/

      }

      TR0=!TR0;/*啟動計數(shù)器*/ EA=1;/*CPU開放總中斷*/

      break;/*跳出*/

      }

      } } }

      /*中斷1處理程序*/ void int1(void)interrupt 2

      { P1=0x6C,P0=a[0];/*東西南北方向均紅燈亮,P0口輸出0*/

      EA=0;/*CPU禁止響應(yīng)一切中斷*/ TR0=!TR0;/*計數(shù)器停止工作*/

      for(;;)/*無條件循環(huán)*/

      {

      leddrive();/*數(shù)碼管驅(qū)動程序*/

      /*返回*/

      if(K3==0)/*P3^5=0*/

      {

      delay(10);/*延時,把抖動的時間拋掉*/

      if(K3==0)

      { while(!K3)/*當(dāng)松開K3開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/

      {

      leddrive();/*數(shù)碼管驅(qū)動程序*/

      }

      EA=1;/*CPU開放總中斷*/ TR0=!TR0;/*啟動計數(shù)器*/ break;/*跳出*/ }

      } }

      } /*鍵盤程序*/ void key()

      {

      /*南北有車而東西無車*/ if(K0==0)/*K0=0*/

      {

      delay(10);/*延時,把抖動的時間拋掉*/

      if(K0==0)

      { while(!K0)/*當(dāng)松開K0開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/

      {

      light();/*調(diào)用交通燈函數(shù)*/

      led();/*調(diào)用數(shù)碼管函數(shù)*/

      } count=0;/*清零*/

      k=0;/*南北方向通車,東西方向不通車*/ SN=SN_G,WE=SN_G+Y;/*南北方向顯示時間為南北方向綠燈通行時間,東西方向顯示時間為

      南北方向綠燈通行時間加黃燈閃亮?xí)r間*/

      } }

      /*南北無車而東西有車*/ if(K1==0)/*K1=0*/

      {

      delay(10);/*延時,把抖動的時間拋掉*/

      if(K1==0)

      { while(!K1)/*當(dāng)松開K1開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/

      {

      light();/*調(diào)用交通燈函數(shù)*/

      led();/*調(diào)用數(shù)碼管函數(shù)*/

      } count=0;/*清零*/

      k=2;/*南北方向不通車,東西方向通車*/ SN=WE_G+Y,WE=WE_G;/*南北方向顯示時間為東西方向綠燈通行時間加黃燈閃亮?xí)r間,東

      西方向顯示時間為東西方向綠燈通行時間*/

      } } } /*定時函數(shù)*/

      void time1(void)interrupt 1

      { TH0=0x3c;

      TL0=0xb0;/*計50000個數(shù),用時50ms*/

      count++;/*自增運算*/

      if(count>=20)/*當(dāng)count大于或等于20時,歷時1s,執(zhí)行程序*/

      {

      SN--;/*自減運算*/ WE--;/*自減運算*/ count=0;/*清零*/ if(SN==0||WE==0)/*當(dāng)SN=0或者WE=0時,執(zhí)行程序*/

      {

      k++;/*自增運算*/ if(k>3)/*當(dāng)k>3時,執(zhí)行程序*/

      k=0;/*清零*/ switch(k)/*switch 語句*/

      { case 0:SN=SN_G,WE=SN_G+Y;break;/*南北方向顯示時間為南北方向綠燈通行時間,東西方向顯示時間為南北方向綠燈通行時間加黃燈閃亮?xí)r間*/ case 1:SN=Y,WE=Y;break;/*東西南北方向顯示時間均為黃燈閃亮?xí)r間*/ case 2:SN=WE_G+Y,WE=WE_G;break;/*南北方向顯示時間為東西方向綠燈通行時間加黃燈閃亮?xí)r間,東西方向顯示時間為東西方向綠燈通行時間*/ case 3:SN=Y,WE=Y;break;/*東西南北方向顯示時間均為黃燈閃亮?xí)r間*/

      } } } } /*延時t毫秒*/ void delay(uchar t)

      {

      uchar i;/*定義無符號字符常量*/ for(t;t>0;t--)/*執(zhí)行t次循環(huán)*/

      { for(i=2000;i>0;i--)/*由于時鐘脈沖是12MHz,執(zhí)行2000次循環(huán)的時間為1ms*/

      { } } } /*交通燈函數(shù)*/ void light()

      {

      P1=c[k];/*交通燈對應(yīng)著k的值變化*/ if(P1==c[1]&&count==0)/*當(dāng)南北方向亮黃燈且count=0時,執(zhí)行程序*/

      {

      TH1=(65536-50000)/256;

      TL1=(65536-50000)%256;/*延時50ms*/ P1=0x6E;/*南北方向黃燈熄滅,東西方向亮紅燈*/

      } else if(P1==c[3]&&count==0)/*當(dāng)東西方向亮黃燈且count=0時,執(zhí)行程序*/

      {

      TH1=(65536-300000)/256;TL1=(65536-300000)%256;/*延時50ms*/ P1=0x7C;/*南北方向亮紅燈,東西方向黃燈熄滅*/

      } } /*數(shù)碼管函數(shù)*/ void led()

      {

      P2=b[0],P0=a[SN%10];/*顯示南北方向個位*/

      delay(5);/*延時*/

      P2=b[1],P0=a[SN/10];/*顯示南北方向十位*/

      delay(5);/*延時*/

      P2=b[2],P0=a[WE%10];/*顯示東西方向個位*/

      delay(5);/*延時*/

      P2=b[3],P0=a[WE/10];/*顯示東西方向十位*/

      delay(5);/*延時*/

      }

      /*通行時間顯示函數(shù)*/ void ledthrough()

      { P2=b[0],P0=a[(SN_G+Y)%10];/*南北方向數(shù)碼管顯示可通行時間的個位*/

      delay(5);/*延時*/

      P2=b[1],P0=a[(SN_G+Y)/10];/*南北方向數(shù)碼管顯示可通行時間的十位*/

      delay(5);/*延時*/

      P2=b[2],P0=a[(WE_G+Y)%10];/*東西方向數(shù)碼管顯示可通行時間的個位*/

      delay(5);/*延時*/

      P2=b[3],P0=a[(WE_G+Y)/10];/*東西方向數(shù)碼管顯示可通行時間的十位*/

      delay(5);/*延時*/

      }

      /*數(shù)碼管驅(qū)動函數(shù)*/ void leddrive()

      {

      P2=b[0];/*顯示南北方向個位*/

      delay(5);/*延時*/

      P2=b[1];/*顯示南北方向十位*/

      delay(5);/*延時*/ P2=b[2];/*顯示東西方向個位*/

      delay(5);/*延時*/ P2=b[3];/*顯示東西方向十位*/

      delay(5);/*延時*/

      } /*主函數(shù)*/ void main(void)

      {

      init();/*調(diào)用程序初始化函數(shù)*/

      for(;;)/*無條件循環(huán)*/

      {

      key();/*調(diào)用鍵盤程序*/ light();/*調(diào)用交通燈函數(shù)*/ led();/*調(diào)用數(shù)碼管函數(shù)*/

      } }

      附2 系統(tǒng)原理圖

      第四篇:開題報告-基于單片機的風(fēng)扇速度控制設(shè)計

      開題報告

      電氣工程及自動化

      基于單片機的風(fēng)扇速度控制設(shè)計

      一、綜述本課題國內(nèi)外研究動態(tài),說明選題的依據(jù)和意義

      單片機因其體積小,抗干擾能力強、而且使用靈活方便,成本低等特點,它的應(yīng)用范圍非常廣泛,尤其是他強大的面向控制能力,已深入工業(yè)控制、軍事裝置、家用電器等各個領(lǐng)域,應(yīng)用前景十分廣闊。單片機按照應(yīng)用的系統(tǒng)結(jié)構(gòu)不同,可分為總線方式和非總線方式。采用總線方式的應(yīng)用系統(tǒng)多屬于較復(fù)雜的系統(tǒng),比如智能儀表、工控系統(tǒng)、檢測系統(tǒng)等。非總線方式的應(yīng)用系統(tǒng)多屬于小型控制。按照應(yīng)用范圍的不同,可分為通用型和專用型。

      目前我國普遍采用4位、8位或16位,對于單片機還處于低檔的應(yīng)用,而對于那些宏單片機、DSP等高檔的應(yīng)用還是空白。而國外很多公司都推出了自己的單片機系列,如Intel公司推出的MCS-96/196系列,Rockwell公司的6501、6502,日立公司的H8/3048系列等。目前單片機的應(yīng)用領(lǐng)域有以下四大領(lǐng)域:一是家用電器業(yè)。單片機個傳統(tǒng)的機械產(chǎn)品結(jié)合,構(gòu)成新型的機、電、儀一體化產(chǎn)品,如洗衣機、電腦空調(diào)機等。二是通訊行業(yè)。最有代表性的就是手機。三是智能儀表應(yīng)用。單片機的體積小、成本低、控制力強等特點,使儀器儀表重量大大減輕,又有很高的性價比,如數(shù)字式RLC測量儀。四的在計算機外設(shè)中的應(yīng)用。如在接口中采用單片機進(jìn)行控制管理、數(shù)據(jù)采集、多路分配管理等。

      我國在將來很長的一段時間里,8位單片機還將是主流產(chǎn)品,因為8位單片機很好用,有豐富的功能,現(xiàn)在無論是國內(nèi)還是國外,都還是以8位為主。4位單片機由于功耗較低,在國內(nèi)也有一定的市場比例。目前世界各國的單片機發(fā)展各有不同。美國單片機的發(fā)展趨勢主要是從8位到16位和DSP過度,歐洲等國家單片機主要應(yīng)用于工業(yè),因此仍以8位為主,主要以功能和運行速度的發(fā)展為主。我國對于單片機的需要目前主要是家電類等消費品為主,8位單片機有很大的市場分額和發(fā)展空間。國內(nèi)也急需這方面的人才。

      盡管單片機的發(fā)展迅速,其發(fā)展方向不外忽以下幾點:一是微型單片化?,F(xiàn)在的產(chǎn)品普遍向小型化、輕型化發(fā)展,就需要單片機在在原有的多功能、低功耗的前提下,集成更多的元件,如看門狗(Watchdog)、LCD控制器等。隨著半導(dǎo)體技術(shù)的發(fā)展,片上系統(tǒng)(SOC)的發(fā)展前景很好。二是低功耗CMOS化?,F(xiàn)在單片機的功耗普遍在100mW左右,許多生產(chǎn)廠家采用CMOS工藝,使單片機更適合在電池供電場合,今后也是單片機發(fā)展的主要趨勢之一。三是大容量、高性能化。隨著CPU的發(fā)展,單片機的處理數(shù)據(jù)能力大大提高,內(nèi)部時序也加以改善,ROM的存儲容量也大大提高,又加入了低噪聲技術(shù),加強了中斷、定時控制。四是在接口方向的發(fā)展?,F(xiàn)在許多新型單片機的接口,從類型和數(shù)量上有了很大的發(fā)展,如有些可以直接驅(qū)動液晶顯示管LCD、有些可以直接輸出大電流和高電壓等。

      21世紀(jì)是“數(shù)字化”的時代,單片機的發(fā)展有著翻天覆地的變化,各種型號、功能的單片機應(yīng)用于人們生產(chǎn)和生活中的各個領(lǐng)域。單片機的發(fā)展逐漸取代了由傳統(tǒng)模擬電路作為電機的控制器,因此單片機在家電方面的應(yīng)用已經(jīng)十分普遍,比如電風(fēng)扇、洗衣機、空調(diào)等。+電動機是將電能轉(zhuǎn)換成機械能的機電裝置。1821年英國科學(xué)家法拉第首先提出電動機原理。1834年,德國的雅可比第一個發(fā)明了直流電動機。1879年,西門子公司用直流電動機驅(qū)動電車。1888年發(fā)明家特斯拉發(fā)明了交流電動機。1902年瑞典的工程師丹尼爾森首先提出同步電動機構(gòu)想。至今為止,電動機發(fā)展迅速,電機理論、設(shè)計及制造工藝得到逐步的完善和提高,廣泛應(yīng)用與現(xiàn)代的各種機械生產(chǎn)領(lǐng)域。如在機械制造工業(yè)、輕重型制造工業(yè)、運輸行業(yè)、農(nóng)業(yè)生產(chǎn)等各個領(lǐng)域,電動機以不同的種類和功能發(fā)揮著重要的作用。可以這么說,電動機的出現(xiàn)使社會生產(chǎn)力大大提高,促進(jìn)了社會的發(fā)展。

      隨著時代的進(jìn)步和科技的發(fā)展,電機調(diào)速系統(tǒng)在工農(nóng)業(yè)生產(chǎn)、交通運輸以及日常生活中起著越來越重要的作用,因此,對電機調(diào)速的研究有著積極的意義.長期以來,直流電機被廣泛應(yīng)用于調(diào)速系統(tǒng)中,而且一直在調(diào)速領(lǐng)域占居主導(dǎo)地位,這主要是因為直流電機不僅調(diào)速方便,而且在磁場一定的條件下,轉(zhuǎn)速和電樞電壓成正比,轉(zhuǎn)矩容易被控制;同時具有良好的起動性能,能較平滑和經(jīng)濟地調(diào)節(jié)速度。因此采用直流電機調(diào)速可以得到良好的動態(tài)特性。由于直流電動機具有優(yōu)良的起、制動性能,宜與在廣泛范圍內(nèi)平滑調(diào)速。在軋鋼機、礦井卷機、挖掘機、金屬切削機床、造紙機、高層電梯等領(lǐng)域中得到廣泛應(yīng)用。近年來交流調(diào)速系統(tǒng)發(fā)展很快,然而直流控制系統(tǒng)畢竟在理論上和在時間上都比較成熟,而且從反饋閉環(huán)控制的角度來看,它又是交流系統(tǒng)的基礎(chǔ),長期以來,由于直流調(diào)速系統(tǒng)的性能指標(biāo)優(yōu)于交流調(diào)速系統(tǒng)。因此,直流調(diào)速系統(tǒng)一直在調(diào)速系統(tǒng)領(lǐng)域內(nèi)占重要位置。

      選取本課題的意義在于單片機的發(fā)展極為迅速,以其獨特的結(jié)構(gòu)和性能,滲透到各個領(lǐng)域,產(chǎn)生了極大的影響。研究單片機、學(xué)習(xí)單片機,是社會發(fā)展的必然趨勢,單片機有著其廣闊的發(fā)展空間和社會價值。通過研究用單片機遠(yuǎn)程發(fā)射紅外線來控制電動機的轉(zhuǎn)速,從而達(dá)到控制風(fēng)扇速度控制,能使使用者操作起來更加方便。

      二、研究的基本內(nèi)容,擬解決的主要問題:

      1、單片機主芯片的選擇;

      2、電機控制系統(tǒng)設(shè)計;

      3、遙控器的設(shè)計;

      4、用數(shù)碼管顯示檔位;

      5、PWM的產(chǎn)生;

      6、按鍵開關(guān)的設(shè)計。

      三、研究步驟、方法及措施:

      1、學(xué)校提供硬件材料、有關(guān)工具器件和實驗制作場所;

      2、查閱大量的相關(guān)資料和書籍;

      3、與同類的論章進(jìn)行對比,完善自己的設(shè)計思路;

      4、系統(tǒng)的總體方案設(shè)計:發(fā)射部分和接收部分;

      5、系統(tǒng)硬件電路的設(shè)計;

      6、系統(tǒng)的軟件設(shè)計

      7、論文的修改及潤色。

      四、參考文獻(xiàn)

      [1]

      張俊.單片機的發(fā)展與應(yīng)用[J].北京:電子制作,1997:40-50.[2]

      於丹.春風(fēng)化雨芽將萌——談我國單片機的發(fā)展[J].北京:微電腦世界,1998:9-13.[3]

      張俊漠.單片機的發(fā)展及應(yīng)用現(xiàn)狀[J].北京:電子世界,2001:3-5.[4]

      楊靖.用單片機控制的直流電機調(diào)速系統(tǒng)[J].廣西:機床電器,2008.11:

      45-47.[5]

      樓然苗.胡佳文.李光飛,等.51系列單片機原理及設(shè)計實例[M].北京:高等教育出版社,2004.[6]

      蔡美琴,張為民,何金兒,等.MCS-51系列單片機系統(tǒng)及其應(yīng)用[M],第二版.北京:北京航空航天大學(xué)出版社,2010.

      第五篇:單片機控制的循環(huán)彩燈控制系統(tǒng)的設(shè)計實習(xí)報告

      一、實習(xí)目的 《單片機原理與接口技術(shù)》課程實習(xí)安排在該課程理論教學(xué)結(jié)束后進(jìn)行。其目的是通過實習(xí),使學(xué)生進(jìn)一步弄懂所學(xué)到的課本知識,鞏固和深化對單片機的結(jié)構(gòu)、指令系統(tǒng)、中斷系統(tǒng)、鍵盤/顯示系統(tǒng)、接口技術(shù)、系統(tǒng)擴展、定時/計數(shù)控制、程序設(shè)計、應(yīng)用開發(fā)等基本理論知識的理解,提高單片機應(yīng)用技術(shù)的實踐操作技能,掌握單片機應(yīng)用系統(tǒng)設(shè)計、研制方面的一般方法,培養(yǎng)利用單片機進(jìn)行科技革新、開發(fā)和創(chuàng)新的基本能力、為畢業(yè)后從事和單片機相關(guān)的工作打下一定的基礎(chǔ)。

      二、實習(xí)內(nèi)容 利用TDN86/51二合一微機實驗教學(xué)系統(tǒng)設(shè)計一個用8051單片機控制的循環(huán)彩燈控制系統(tǒng)。

      三、設(shè)計過程:

      1、能輸出4種花型,并能由人工進(jìn)行花型的切換。(按鍵)*利用單片機8031的P1.7做總開關(guān),P1.0、P1.1做花型控制開關(guān),P1.5、P1.6做調(diào)速開關(guān)。

      實習(xí)花型:(1)使彩燈從右到左逐一循環(huán)點亮。(2)使彩燈交替閃爍。(3)使彩燈從右到左逐一點亮,當(dāng)全部點亮后同時閃爍一次。(4)使彩燈從中間到兩邊順序點亮,直至全部點亮;再將彩燈從兩邊到中間熄滅,直至全部熄滅。

      2、循環(huán)彩燈的循環(huán)速度可調(diào)。*P1.5做加速控制開關(guān),P1.6做減速控制開關(guān)。

      3、按鍵要求:(1)啟動/暫停。按動一次啟動,再按一次暫停。是一個雙態(tài)轉(zhuǎn)換鍵 *“1”---啟動,“0”---停止。(2)花型變化。按一次,立即停止當(dāng)前花型的顯示,轉(zhuǎn)換為下一種花型。4種花型可以循環(huán)切換。表1.1 撥動開關(guān)與對應(yīng)的花型 P1.0 P1.1 花型 0 0 花型1 1 0 花型2

      花型3 1 1 花型4(3)速度+。按鍵一次,速度略加快一點。速度-。按鍵一次,速度略減慢一點。表1.2 撥動開關(guān)功能表

      P1.5 P1.6 P1.7 功能 功能 功能 0 0 0 無加速 無減速 停止 1 1 1 加速 減速 啟動 4在LED顯示器上顯示相應(yīng)的花型號。

      5、顯像管顯示相應(yīng)數(shù)據(jù)

      花型 顯像管 A 花型1 B 花型2 C 花型3 D 花型4

      6、利用軟件子程序或單片機內(nèi)部的定時/計數(shù)器實現(xiàn)定時功能,以模擬循環(huán)速度的基準(zhǔn)值。

      四、實習(xí)器材 TDN86/51二合一微機實驗教學(xué)系統(tǒng)1臺,配套計算機一臺,連接導(dǎo)線若干

      五、實驗原理圖: 0 1 如上圖所示,8031的P0口接8155的AD0-7口,P2.7和P2.6分別接了8155的片選線和I0口,而8031的P1口做開關(guān)接口,8155的PA和PC接顯像管的字位和字形,PB接LED。

      六、程序及程序流程圖:

      開始

      字型碼賦值給R6 初始化 字位碼初始值給人R0 總開關(guān) 字位碼 C口

      花型控制開關(guān)

      顯示數(shù)據(jù)

      查表字形碼

      C口 花型 顯示字形 顯示 結(jié)束 調(diào)速 P1.7=0? 否 否 P1.6=1? 是 否 P1.5=1? P1.0=0? 是 是 P1.1=0? P1.0=0? 是 否 是 否 花型1 花型2 花型3 花型4

      ORG 0000H

      LJMP MAIN

      ORG 1000H MAIN: SETB P2.6;8155初始化 CLR P2.7 ;片選線工作 MOV R0,#00H ;指向命令/狀態(tài)口 MOV A,#07H ;命令字送A MOVX @R0,A ;裝入8155 MOV DPTR,#DTAB ;控制花型的亮滅數(shù)據(jù) MOV R4,#0FEH ;右量 MOV R2,#0FFH ;全滅 CHECK: JNB P1.7,MAIN

      ;總開關(guān)

      JB P1.0,NEXT 控制花型開關(guān) JB P1.1,TWO ONE: MOV R6,#77H ;字形碼“A”(花型1)LCALL SHOW ;調(diào)用顯示程序 MOV A,R4 RL

      A

      ;左移

      MOV R4,A

      MOV R0,#02H ;PB輸出 MOVX @R0,A LCALL DELAY ;調(diào)用延時程序 LJMP CHECK TWO: MOV R6,#7CH

      ;字型碼“B”(花型2)LCALL SHOW MOV R3,#0AAH;10101010(0亮)MOV A,R3 MOV R0,#02H

      MOVX @R0,A

      LCALL DELAY

      MOV R3,#55H ;01010101 MOV A,R3 MOVX @R0,A LCALL DELAY LJMP CHECK NEXT: JB P1.1,FOUR THREE: MOV R6,#39H ;字型碼“C”(花型3)LCALL SHOW MOV R0,#02H

      MOV A, R2

      MOVX @R0,A LCALL DELAY CLR C RLC A ;帶位左移 MOV R2,A CJNE A,#00H,NEXT3 MOVX @R0,A LCALL DELAY MOV A,#0FFH ;全滅 MOVX @R0,A LCALL DELAY MOV A,#00H

      ;全亮

      MOVX @R0,A

      LCALL DELAY

      LJMP MAIN NEXT3: LJMP CHECK FOUR: MOV R6,#5EH ;字型碼“D”(花型4)

      LCALL SHOW MOV R0,#02H CLR A MOVC A,@A+DPTR

      ;查表

      MOVX @R0,A LCALL DELAY

      INC DPTR

      CJNE A,#0FFH,NEXT4 MOVX @R0,A LCALL DELAY LJMP MAIN NEXT4: LJMP CHECK DTAB: DB 0E7H,0C3H,81H,00H

      DB

      81H, 0C3H, 0E7H,0FFH SHOW: MOV R0,#03H ;字位碼送PC口

      MOV A,#00H

      顯示程序 MOVX @R0,A MOV R0,#01H ;字位碼送PA口 MOV A,R6 MOVX @R0,A LCALL DELAY RET DELAY: JB P1.6,DELAY1 ;延時程序 JB P1.5,DELAY2 MOV R7,#5 L0: MOV R6,#100 L1: MOV R5,#100 L2: DJNZ R5,L2 DJNZ R6,L1

      DJNZ R7,L0

      SJMP LAST

      MOV R7,#15

      ;減速 DELAY1: SJMP L0 MOV R7,#01 ;加速 DELAY2: SJMP L0 RET LAST: END

      七、實習(xí)總結(jié): 學(xué)了一年的單片機,對這門功課一直抱著最害怕的心理,因為總覺得很難的樣子,而且很多知識好像總是不能入腦一樣,這時記得了,轉(zhuǎn)身就會忘記,或許就是學(xué)得不牢固吧。不過它也有讓人覺得有趣的時候,就是在實驗室做實驗的時候。將程序輸入單片機,然后接上硬件電路,成功之后就會顯示出我們要的結(jié)果,那樣是很有趣的事情。這次的實習(xí)是一個循環(huán)燈的實驗。當(dāng)然這次不像以前那樣,總是有程序讓我們照打,然后接線,運行就可以了?,F(xiàn)在的要我們自己的找程序,自己想怎么根據(jù)程序去接電路,一切都是要自己去動腦袋。開始的時候我和很多同學(xué)一樣,由開始不知道怎么做,然后一點一點去失敗,然后終于有了概念,自己要怎樣去想怎樣去做。后來參考了別人的那個程序,然后加上自己的理解,修改了一下那個程序,將花型變化了,還有顯示的數(shù)據(jù)變化,有一個新的模式。不過其實總的結(jié)構(gòu)還是萬變不離其中的。我每一次改變,都會試一下,看看行不行,會不會有影響等等的。最后調(diào)試到我覺得可以之后,才交功課的。學(xué)了一年的單片機,幾乎都要“使盡腦汁“了,完成了還是很高興,有過構(gòu)想,要是就這樣把程序和方針的電路弄在一起,也做個電路板,還是不錯的。

      下載基于單片機控制的紅外線遙控器設(shè)計_趙健衡.pdf[大全五篇]word格式文檔
      下載基于單片機控制的紅外線遙控器設(shè)計_趙健衡.pdf[大全五篇].doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        基于單片機的教室燈光控制設(shè)計開題報告1

        天津職業(yè)技術(shù)師范大學(xué) Tianjin University of Technology and Education 畢 業(yè) 設(shè) 計 開 題 報 告 基于單片機的教室燈光控制設(shè)計 學(xué) 院:自動化與電氣工程學(xué)院 班 級:自1403......

        微課教學(xué)設(shè)計--利用單片機控制流水燈

        微課教學(xué)設(shè)計--利用單片機控制流水燈 【教學(xué)背景】 單片機原理及應(yīng)用是電子信息工程以及其他電類專業(yè)必修的一門重要專業(yè)課程。該課程以MCS-51系列單片機為例,講述單片機的內(nèi)......

        300×400數(shù)控激光切割機XY工作臺部件及單片機控制設(shè)計

        課程設(shè)計 CA6140車床后托架的夾具 畢業(yè)設(shè)計 CA6140主軸加工工藝及夾具設(shè)計畢業(yè)設(shè)計 CA6140杠桿加工工藝及夾具設(shè)計 課程設(shè)計 “法蘭盤”零件的機械加工工藝規(guī)程及工藝裝備......