久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4654|回復: 0
打印 上一主題 下一主題
收起左側

單片機可設置時間定時器設計報告

[復制鏈接]
跳轉到指定樓層
樓主
ID:99624 發表于 2015-12-23 01:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
電子設計報告


     
   題目:基于STC11F02E單片機的可設置時間定時器設計
  專業:電子信息工程
   姓名:張海波
   學號:141308333  

                      2015年6月25日
     
              目錄
  
前言(學習單片機的歷程)..........................................................1  
一.緒論..........................................................................................3
1.1 設計概述...................................................................................3
1.2 設計原因....................................................................................3
硬件...........................................................................................4
2.1 元件介紹....................................................................................4
2.1.1 蜂鳴器.....................................................................................4
2.1.2 繼電器.....................................................................................5
2.1.3 數碼管.....................................................................................5
2.2芯片簡介.....................................................................................7
2.2.1 STC11F02E單片機..................................................................7
2.2.2 74HC573鎖存器介紹..............................................................8
2.3 制作過程...................................................................................10
2.4 功能操作...................................................................................12
2.5 電路描述...................................................................................13
軟件..........................................................................................14
3.1 程序設計流程圖.......................................................................14
3.2 程序代碼...................................................................................15
四.整個過程遇到的問題和經驗總結..........................................21

                前言

不知不覺上大學已經差不多一年了。這么長時間,我對大學有了更深的了解,深刻的認識到大學的高等教育跟以前的中學小學上課有著很大的不同。大學有著前所未有的自由度,在這自由的時光里,我們就可以在更大程度上支配我們的時間。因此在我的世界觀里,大學是一個想學什么就學什么的地方。因為我們在修專業課程的同時,我們也有時間來學習我們的興趣課程。對于我來說,單片機是我們大三的一門課程。而且在我認識它的過程中,發現它正是我感興趣的東西。那時候我加入了我們學校航空工程系的飛行器創新實驗室。由于我是唯一一個電子類專業的成員,所以我在實驗室將來的主要任務就是為旋翼飛行器的主控制單元——單片機編寫程序。所以負責這一塊的學長希望我能夠盡早掌握單片機的原理及應用,早日投入到旋翼機的設計工作中。學長給我手機里傳了一本有關單片機學習的資料,在此之前我是從來沒有聽說過單片機這個名詞的。聽過學長的簡單介紹之后,發現單片機真是一種很有意思的東西,你給它輸入程序后,它會按照你的意愿去做,好像是你養的一只高智商寵物一樣。你怎么說,它就怎么做,不過我得學會用它能夠聽得懂的語言——機器語言跟它交流。這就涉及到KEIL軟件的使用和C程序設計問題。因此寒假期間我在家先看了一下C程序方面的簡單知識,就開始了單片機的學習。寒假期間先后學習了KEIL軟件的使用,簡單的編程語句,數碼管顯示原理和數碼管動靜態顯示,鍵盤檢測原理和其作用,A/D,D/A工作原理,中斷的概念,單片機內部定時器原理及應用。這時候我是很有成就感,當時唯一想做的就是買一塊和那本書配套的單片機學習板,在其上進行編程控制。大一下學期一開學我就網購了一塊那本書的配套單片機學習板,買回來之后我就迫不及待的在我的筆記本上裝上了相關的軟件,要說之前的都是理論學習,現在終于可以開始進行實踐編程了。當我第一次把我寫好的C程序代碼轉換為HEX文件,燒寫進單片機,板子上的發光管按照我的意愿亮起來時。心中是萬分喜悅,突然感覺那些高大上的高科技原來離我們這么近。那幾天,除了上課,基本上都坐在電腦前邊寫C程序代碼。看著板子上的器件我都基本上可以控制了,我就又想更進一步自己動手做一些自己的單片機作品。我在看那本書的配套視頻里聽郭天祥郭老師講:假如你畢業了到別人公司應聘,人家問你會單片機嗎?你說會。那你都做過些什么東西呢?然后你吭哧半天說不出一個作品,人家肯定不會看好你。聽了這樣的話我做東西的想法更加強烈了。接著我就按著書中提及到的東西買了很多各種各樣的洞洞板和其它元件,還有就是各種工具:電烙鐵、焊錫、吸錫器之類的。準備做一個最簡單單片機最小系統,經歷了數次失敗之后我終于做好了我的第一個單片機作品——單片機最小系統。后來又做了一個紅綠燈模型,這個定時器是我的第三個單片機作品。下面介紹這個可設置時間定時器。
               一 緒論
1.1設計概述
     這是一個基于STC11F02E單片機的可設置時間定時器。以STC11F02E單片機為中心控制單元,外擴兩個獨立按鍵作為時間輸入設備,一個蜂鳴器和一個LED作為聲光示警設備,一個四位共陰數碼管配合一個74HC573鎖存器執行時間顯示任務,一個繼電器作為最終執行終端。這個定時器的功能:輸入一個小于等于99分鐘59秒的時間,開始倒計時,時間到后,繼電器閉合。這個定時器可以作為各種電壓、電流較小的用電器(電流1A,交流電壓120V,直流電壓30V)的定時開關。

1.2 設計原因
我高中時候就想做一個定時炸彈,那時候簡單的了解了三極管的接法和作用,后來就用一個三極管,一個電子表,一個去了玻璃殼的燈珠(燈絲)設想了一個定時炸彈,經過了好多次失敗后,我就沒有再做。后來我查資料,才發現三極管的應用遠沒有那么簡單(我對三極管的學習從來沒有放棄,這學期剛開始的時候我除了學習單片機,還著重看了有關三極管方面的知識,現在已經對三極管已經有了一定的了解,具體到其內部各區兩種載流子的流動)。因此,我就放棄了。在一個月前突然想起了那時候的定時炸彈,一直對它不甘心,如今我學會了單片機的應用,我想驗證一下我學習單片機的成果,再說假如成功了,也算實現了我的一個愿望吧。再有就是,廣到制造工業、軍工領域,狹到玩具、家用電器,定時器應該都能發揮一定作用,所以我這個定時器還是有一定用途的。


                二 硬件
2.1 元件介紹
2.1.1蜂鳴器
   蜂鳴器分為有源蜂鳴器和無源蜂鳴器兩種 (外觀如圖a、b所示),這里的“源”并不是指電源,而是震蕩源。這也是有源蜂鳴器直接接上額定電源(新的蜂鳴器在標簽上都有注明)就可連續發聲而無源蜂鳴器則和電磁揚聲器一樣,需要接在音頻輸出電路中才能發聲的原因。
  
       a有源蜂鳴器                         b無源蜂鳴器  
   一般來說,有源蜂鳴器比較貴一些,因為里面多個震蕩電路。當然不是有源蜂鳴器就比無源蜂鳴器要好,而是要看應用場合了,有源蜂鳴器內部帶震蕩源,所以只要一通電就會叫,這種蜂鳴器多適用于提示或報警,而無源蜂鳴器則一般適用于需要發出不同音調聲音的地方,即音樂或其它有音調變化的聲音。這個定時器上的蜂鳴器是聲音示警用的,所以用的是有源蜂鳴器。
2.1.2繼電器
繼電器是具有隔離功能的自動開關元件,廣泛應用于遙控、遙測、通訊、自動控制、機電一體化及電力電子設備中,是最重要的控制元件之一。我覺得它的基本原理無非就是中學時候學的電磁鐵的應用。

                            實物圖
2.1.3 數碼管
     數碼管,我們可能在不只一處見到過它。價格便宜,使用簡單,在各種儀表及家電上有著廣泛的應用。比如,空調,熱水器,萬年歷,冰箱上都能看到它的影子。它能夠顯示不同的數字,來告訴我們當前室內溫度,現在的時間,飯卡內的余額等等。如下圖所示,這是我們經常見到的七段顯示數碼管。

從圖中,我們可以看得出來,它可以顯示兩個個數字,稱之為二位數碼管,相應的有一位、三位、四位的,這是從位數上分。從其內部構造上分,可為兩種:共陰數碼管和共陽數碼管。

說到內部結構,只有我們了結了其內部結構,我們才能知曉其顯示原理。參照上圖,其實,從圖中a看出,一個八段數碼管其實是八個發光二極管并聯組合的,這八個發光二極管的連接方式有兩種,如圖b、c。b圖是共陰式連接,c圖是共陽式連接。分別對應的實物就是上邊所說的共陰數碼管和共陽數碼管。欲使其顯示出某個數字,則只需點亮相應的發光二極管即可。比如說,你想讓其顯示出阿拉伯數字“3”,就可以將發光二極管a.b.g.c.d點亮即可。數字的顯示都是變化的,所以一般來講數碼管大多都需單片機之類的中央控制單元來控制其顯示數字。圖a中那個一位數碼管有十個管腳,那么這十個管腳在數碼管內部都是連接的什么呢?通過上邊的介紹,我們知道了數碼管的內部構造其實是幾個LED成數字狀排列的,連接方式是并聯連接(如圖b、c)。在圖中,我們看到的線頭其實就是數碼管引出的管腳。一般來說一位數碼管一般都是引出來十個管腳,有兩個管腳(gnd)是一樣的,就是說兩個管腳其實就是一根分出了兩支。這個數碼管是共陰數碼管,因為其公共端標注的是gnd。其他八個管腳就分別是八個發光二極管的陽極,這個gnd叫做數碼管的位選端,那八個陽極叫做數碼管的段選端。上邊說到數碼管顯示數字的方法,知道內部結構后,具體講,假如欲使數碼管顯示一個“3”,那么我們就將位選管腳接負極,段選管腳abgcd都接正極,最終就會在數碼管上顯示出來一個數字“3”,共陽數碼管同理。上邊介紹的是一位數碼管,二位,多位數碼管也都大同小異。只不過比一位數碼管多了幾個位選端而已。

2.2芯片簡介
2.2.1 STC11F02E單片機
     單片機有成千上萬種,說實話,我目前接觸過的單片機型號無非就三種89C52RC、89C51RC、11F02E,其實用起來都一樣,都是51內核的單片機。只是某些功能上會略有差異,比如說89C51RC和89C52RC不一樣在一個“1”,一個“2”上,這個“1”代表的是其芯片內部儲存空間是4K,“2”是8K。后邊的“RC”代表STC單片機內部RAM(隨機讀寫存儲器)為512B,有的后邊不是“RC”而是“RD+”表示內部RAM為1280B。以上兩種單片機都是40管腳的。其體積相對都比11F02E要大,本定時器用的是20管腳的單片機11F02E單片機,因為它體積較小,且IO口剛好夠用 ,適合在較小的板子上集成,能滿足成品體積盡量小的要求。這種單片機只有兩組IO口,P1口,P3口。但是其內核和其他兩個一樣有4組IO口,只是引出來的只有兩組罷了。還有之前有一點我不知道的就是,11F02E內部自帶時鐘電路。我的程序寫好后燒進單片機時,驚奇的發現定時器倒計時的速度并不是每秒減一,后來才知道原來我是用的其內部的時鐘電路而不是外部晶振。后來在網友的幫助下,才知道像這種自帶內部時鐘電路的單片機,在用下載器往單片機內燒寫程序時需要進行相關設置。
  

2.2.2 74HC573鎖存器
下圖是74HC573鎖存器的實物圖:

從圖中可以看出,這個芯片是一個20腳的芯片。每個芯片都有每個芯片的作用,就比如單片機可以作為中央控制單元。那么這個鎖存器在這個定時器上起一個什么作用呢?“鎖存器”三字里邊注意這個“鎖”字。鎖的是什么,鎖的是數據。下面看它的引腳圖和真值表。

總共是二十個管腳,Vcc、GND分別是該芯片的正極和地(負極)管腳,基本上每個芯片上都有這兩個管腳。OE的專業術語為三態允許控制端(低電平有效),通常叫做輸出允許端。LE叫做鎖存控制端。1D~8D為數據輸入端,1Q~8Q為數據輸出端。
上面,我們了解了鎖存器的管腳的定義,下面就介紹其“鎖”的作用。真值表中L是低電平,H是高電平,Q0是上次的電平狀態,X是任意電平,Z是高阻態,也就是既不是高電平也不是低電平,而它的輸出狀態與它相連接的其他器件(在這里與鎖存器相連接的是單片機的IO口)的電平狀態來決定。看真值表,當OE管腳為高電平時LE管腳和D管腳不論是什么電平狀態,數據輸出管腳Q的電平狀態都為高阻態,即鎖存器不起任何作用,相當于導線。所以,一般都要使OE端置低電平或直接接地。在OE為低電平的前提下,若LE端為低電平,數據輸入端D不論是高還是低,數據輸出端Q將保持上次的電平狀態。既只要LE端電平保持低電平不曾改變,無論數據輸入端的電平狀態如何改變,數據輸出端Q的電平狀態將保持不變,通俗地講,就是將數據輸出端的輸出的數據給鎖住了不能改變。若想把“數據鎖”打開換另外一組輸出數據,直接將LE端置高即可。LE置高,置高期間將想要輸出的數據直接送入數據輸入端D,再將LE置低,數據就又被鎖住。此時數據輸出端輸出的數據就是在“上鎖”之前數據輸入端輸入的數據。該組數據在“上鎖(LE為低電平時)”后不隨數據輸入端輸入的數據的改變而改變。綜上所述,鎖存器的作用就是鎖存一個字節(8位(Q1~Q8))的數據。它的應用一般都是為了節約IO口。但在本處的作用并不是為了節約IO 口,而是放大電流,這是鎖存器的第二個作用。因為單片機的輸出電流是不足以驅動發光二極管,所以在單片機驅動數碼管時,需要在單片機和數碼管之間加上電流放大器件,像實現單片機電流放大驅動數碼管一般都采用三極管,但是為了簡單起見我還是選擇了鎖存器。

2.3 制作過程
“凡事預則立,不預則廢”。這句話很有道理,在做每一件事之前,沒有充足的準備是不行的。我在焊接這個定時器之前,我也是斟酌再三,先是預算了一下所需元件的種類和數量,確定焊接這些東西所占面積最大可能是多少,確定了使用萬用板的規格是5*7cm的。然后將洞洞板上的每一個孔都在紙上排列出來,再將每個元件的管腳布局和數量一一陳列出來,在紙上將各元件進行一次模擬焊接,最終做到跳線的數量盡可能的少。最后確定下最終方案。確定下來之后,就開始焊接。焊接完成后,往單片機里燒寫一些簡單的試驗性程序,上電觀察硬件的運行情況。運行不正常,開始查找硬件問題,找到問題后,調整原來方案繼續檢查。最終硬件沒問題后,開始結合最終定形的硬件編寫程序。編寫程序前,以數碼管和單片機的連接情況為依據為數碼管顯示進行編碼,進而確定數碼管的顯示數組。再在草紙上大致規劃一下整個程序的結構框圖,使程序模塊化,化整為零,使其結構更清晰,減小程序編寫的繁瑣程度。完成后,開始用KEIL軟件編程,每一個模塊完成后都要在硬件上試驗一下,若有問題,繼續調試,運行情況和預想一致后就可以進入下一個模塊的編寫。最終逐個擊破,完成整個程序的編寫。現在硬件軟件結合,這個板子就成了有“靈魂”的硬件了,而不是一塊洞洞板和一個蜂鳴器,兩塊芯片,兩個按鈕因為焊錫而粘連在一塊的不知名的東西了。它的名字叫做可設置時間定時器。通俗的講,這是幾個各自有自己特殊功能的東西以某種連接方式連接到一起形成的集合。在我告訴它使命之后,它就按照我的命令工作的機器。
2.4 功能操作
   它的名字叫做“可設置時間定時器”,顧名思義,它是用來定時的,且定時時間是可以人為設置的。
            
         定時器實物圖
具體操作方法:插上5V電源后,按下總開關,此時數碼管顯示如右圖所示。 此時,使用者就可以開始設置定時時間了,先按一次換位按鍵,數碼管顯示如下圖所示。
  顯示正常,這時就可以開始設置定時時間分鐘的十位數字,按下一次加數鍵,十位數字加一(第四位顯示和第一位相同),到數字9后歸零。若分鐘十位數字設置完畢或不需要設置,直接按換位鍵選中下一位同第一位那樣進行分鐘個位數字設置,然后進行秒鐘十位數字設置,最后進行最后一位設置,若現在覺得前邊三位數字設置有不妥之處,可再次按下換位鍵便可再次回到第一位設置環節。需要注意的是,四位必須全部設置后才可以開始倒計時,也就是說,在開始倒計時的前一步一定是設置第四位數字環節。一切設置妥當之后,就可以啟動倒計時了。啟動的方式是:先按住換位鍵不放,然后按下加數鍵,此時加數鍵松開之后,倒計時就開始了。

2.5 電路描述
由于目前我還沒有掌握任何一個軟件來畫電路圖,所以我只能把我的電路描述一下了。以單片機為中心,從鎖存器開始,鎖存器Vcc端和LE端接正極,OE和GND接地,1D接P1.7,2D接P1.6,3D接P1.5,4D接P1.4,5D接P1.3,6D接P1.2,7D接P1.1,8D接P1.0;Q1~Q8分別接四位共陰數碼管的8個段選;一位位選接P3.7,二位位選接P3.5,三位位選接P3.2,四位位選接P3.3;繼電器(繼電器的開關公共端引出2根排針,常閉端引出4根排針,常開端引出1根排針)的線圈端串聯一個1K電阻一端接Vcc,另一端接單片機的P3.4,蜂鳴器陽極接Vcc,陰極直接接單片機的P3.0,發光二極管的陽極接Vcc陰極串聯一個1K電阻然后接到單片機的P3.0(所以定時器工作時蜂鳴器響和二極管亮一直是同步的)。復位電路和時鐘電路(晶振11.0592MHZ,兩個起振電容用的是30PF瓷片電容)都是很典型的電路,就不再介紹了。

              三 軟件
3.1 程序設計流程

               原始顯示(“————”)
                                    選定位別
輸入時間時時顯示     輸入設定時間   等待     加數
                                    換位      時時顯示
                   啟動倒計時       數碼管動態顯示
              時間到后做出最終動作
3.2  C程序代碼

#include <reg52.h>
sbit key1=P3^0;
sbit key2=P3^1;
sbit go=P3^4;
int numt,fenshi=0,fenge=0,miaoshi=0,miaoge=0,a=0;
unsigned char code table[]={0xfa,0x22,0xb9,0xab,0x63,0xcb,0xdb,0xa2,0xfb,0xeb};
unsigned char code table1[]={0xfe,0x26,0xbd,0xaf,0x67,0xcf,0xdf,0xa6,0xff,0xef};
sbit wela1=P3^7;
sbit wela2=P3^5;
sbit wela3=P3^2;
sbit wela4=P3^3;
void delayms(int xms)//定義延時函數
{
  int x,y;
  for(x=xms;x>0;x--)
   for(y=110;y>0;y--);  
}
void initial()//定時器初始化
{
  TMOD=0x01;
  EA=1;
  ET0=1;
  TH0=(65536-45872)/256;
  TL0=(65536-45872)%256;
}
void main()
{
   initial();
   while(1)//等待換位鍵按下否則數碼管保持初始顯示----   
   {
      P1=0x01;//初始顯示----  
      wela1=wela2=wela3=wela4=0;
      if(key1==0)
      {
         delayms(10);
         if(key1==0)
             while(!key1);
             goto k0;//開始選中第一位   
      }
   }
   //輸入設定時間并時時顯示   
k0:   while(1)//選中第一位  
         {  
            if(key1==0)//檢測是否換下一位  
                 {   
                           delayms(10);
                               if(key1==0)
                   while(!key1);
                   goto k1;
                     }
                 wela1=0; wela2=wela4=wela3=1;
                 P1=table[fenshi];
                 delayms(5);
                 wela1=1;wela4=wela3=wela2=0;
                 P1=0x01;
             delayms(5);
             if(key2==0)
                         {
                delayms(10);
               if(key2==0)
                                  {   
                    fenshi++;//歸零  
                        if(fenshi==10)
                    fenshi=0;
                }
                while(!key2);
             }
            
            
         } //while終止括號  
k1: while(1)//選中第二位
   {
      if(key1==0)//檢測是否換下一位  
                 {   
                           delayms(10);
                               if(key1==0)
                   while(!key1);
                               goto k2;//換下一位
                     }
       wela1=0; wela2=1;wela3=1;wela4=1;
           P1=table[fenshi];
           delayms(5);
       wela2=0;wela3=wela4=wela1=1;
       P1=table1[fenge];
       delayms(5);
           wela1=wela2=1;wela3=wela4=0;
           P1=0x01;
       if(key2==0)
                         {
                delayms(10);
               if(key2==0)
                                  {   
                    fenge++;//歸零  
                        if(fenge==10)
                    fenge=0;
                }
                while(!key2);
             }
   }//while終止括號  
k2:while(1)//選中第三位  
   {
      if(key1==0)//檢測是否換下一位  
                 {   
                           delayms(10);
                               if(key1==0)
                   while(!key1);
                               goto k3;//換下一位
                     }
       wela1=0; wela2=1;wela3=1;wela4=1;
           P1=table[fenshi];
           delayms(5);
       wela2=0;wela3=wela4=wela1=1;
       P1=table1[fenge];
       delayms(5);
           wela1=wela2=1;wela3=0;wela4=1;
           P1=table[miaoshi];
       delayms(5);      
       wela1=wela2=wela3=1;wela4=0;
       P1=0x01;
       if(key2==0)
                         {
                delayms(10);
               if(key2==0)
                                  {   
                    miaoshi++;//歸零  
                        if(miaoshi==6)
                    miaoshi=0;
                }
                while(!key2);
             }
   }//while終止括號
k3:while(1)//選中第四位  
   {
      if(key1==0)//檢測是否做出開始倒計時動作  
                 {   
                           delayms(10);
                               if(key1==0)
                   {
                       while(!key1);
                       if(key2==0)
                       {
                                 delayms(15);
                          if(key2==0)
                          goto k4;//程序跳到倒計時狀態區  
                       }
                                       goto k0;//回去重新設置倒計時時間  
                   }
                     }
       wela1=0; wela2=1;wela3=1;wela4=1;
           P1=table[fenshi];
           delayms(5);
       wela2=0;wela3=wela4=wela1=1;
       P1=table1[fenge];
       delayms(5);   
           wela1=wela2=1;wela3=0;wela4=1;
           P1=table[miaoshi];
       delayms(5);  
       wela1=wela2=wela3=1;wela4=0;
       P1=table[miaoge];
       delayms(10);
       if(key2==0)
       {
               delayms(10);
               if(key2==0)
                                  {   
                    miaoge++;//歸零  
                        if(miaoge==10)
                    miaoge=0;
                }
                while(!key2);
       }
    if(key1==0&&key2==0)
    {
       delayms(15);
       if(key1==0&&key2==0)
       while(!key1);
           goto k4;
    }
   }//while終止括號  
k4:  while(1)//開始進入倒計時狀態  
     {
         TR0=1;//開總中斷

         wela1=0;wela2=wela3=wela4=1;//數碼動態顯示倒計時分鐘秒鐘  
         P1=table[fenshi];
         delayms(5);
         wela2=0;wela1=wela3=wela4=1;//分鐘和秒鐘之間的點閃爍  
         if(numt>=0&&numt<=10)
             P1=table1[fenge];
         else
         P1=table[fenge];
         delayms(5);
         wela3=0;wela2=wela1=wela4=1;
         P1=table[miaoshi];
         delayms(5);
         wela4=0;wela2=wela1=wela3=1;
         P1=table[miaoge];
         delayms(5);
         if(fenshi==0&&fenge==0&&(miaoshi<1||miaoshi==1&&miaoge==0))//判斷是否到達倒計時十秒內  
         a=1;
         if(a==1&&numt%5==0)
         key1=0;
         else key1=1;

         if(a==0&&numt>=0&&numt<=3)//蜂鳴器每秒響一次   
         key1=0;
        
         if(miaoge==-1)//各位之間進制規則設定  
         {
            miaoge=9;
            miaoshi--;
         }
         
         if(miaoshi==-1)
         {
            miaoshi=5;
            fenge--;
         }

         if(fenge==-1)
         {
            fenge=9;
            fenshi--;
         }
      
         

         if(fenshi==0&&fenge==0&&miaoshi==0&&miaoge==0)//判斷是否到定時時間  
         {  
           go=0;//繼電器閉合
           while(1);//一切都結束了  
         }
        
     }
}
void T0time() interrupt 1//中斷服務函數  
{
  TH0=(65536-45872)/256;
  TL0=(65536-45872)%256;
  numt++;
  if(numt==20)
    {
        numt=0;
        miaoge--;
    }
}      

    我覺得程序是整個過程中最困難的地方,在做這個之前我甚至覺得,我還沒有這個能力去寫這個定時程序。看來我錯了,有的東西看起來很難,其實實踐過程是“車到山前必有路”,只要有恒心有毅力有信心,那都不是事兒!

                  

   四.整個過程遇到的問題和經驗總結
         
   1、有關內部自帶時鐘電路單片機使用外部晶振問題:可以將外部晶振接上,在下載器里選擇下次上電使用外部晶振還是內部RC。若選擇內部RC,外部晶振是不起作用的,也不會有什么影響。 但請注意,若正在使用內部RC但下載程序時選擇了下次啟動使用外部晶振,而你又沒有外部晶振,那你除非焊上外部晶振,否則你單片機一旦斷電,下次再上電就這個單片機就廢了。
                                   







    2、STC11F02E單片機的串口引腳在連接其他部件的同時是燒不進去程序的。
   3、STC11F02E單片機的P3.6管腳(同時也是復位管腳)不能接其他部件,接其他部件時候,要置高電平,否則會復位,導致程序不正常執行。

          復位管腳
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關帖子

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美亚洲一区二区三区 | 99国产精品99久久久久久粉嫩 | 精品一区二区三区免费毛片 | 国产精品欧美一区喷水 | 亚洲欧美一区二区三区国产精品 | 亚洲欧洲一区二区 | 日韩中文字幕在线视频 | 人人九九精 | 最新av在线网址 | 日韩一区在线播放 | 日韩av一二三区 | 一级毛片视频免费观看 | 午夜免费网站 | 欧美一级片在线播放 | 懂色一区二区三区免费观看 | www久久久| 欧美日韩高清一区二区三区 | 女人毛片a毛片久久人人 | 91在线资源| 精品欧美一区二区三区精品久久 | 国产精品久久久久久一级毛片 | 久久精品成人 | 青青久草 | 欧美片网站免费 | a级在线观看 | 九色网址 | 毛片一级网站 | 亚洲国产精品久久久 | 久久久精品一区 | 中文一级片| 91精品国产色综合久久 | 97在线观视频免费观看 | 精品久久久久久亚洲综合网站 | 久热伊人 | 国产欧美在线视频 | 国产日韩91| 久久久久久a | 国产成人免费视频 | www.888www看片| 日韩视频国产 | 中文字幕日韩一区 |