第二章 工作原理 3ir.hust.edu.tw/bitstream/310993100/2887/1/全文+.pdf · 第二章...

30
I ............................................. 1 第一章 序論 ........................................ 2 第二章 工作原理 .................................... 3 第三章 研究過程 ................................... 17 第四章 結果與討論 ................................. 22 第五章 參考文獻 ................................... 23 第六章 圖像 ....................................... 27

Transcript of 第二章 工作原理 3ir.hust.edu.tw/bitstream/310993100/2887/1/全文+.pdf · 第二章...

  • I

    目 錄

    摘 要 ............................................. 1

    第一章 序論 ........................................ 2

    第二章 工作原理 .................................... 3

    第三章 研究過程 ................................... 17

    第四章 結果與討論 ................................. 22

    第五章 參考文獻 ................................... 23

    第六章 圖像 ....................................... 27

  • II

    圖 目 錄

    圖一、…………………………………………………………25

    圖二、…………………………………………………………26

    圖三、 ……………………………………………………… 27

    圖四、…………………………………………………………28

    圖五、…………………………………………………………29

  • III

    表 目 錄

    表一、…………………………………………………………24

    表二、…………………………………………………………27

  • 1

    摘 要

    本組的專題研究分析市面上機械式的計數器。其主要結構

    為紅外線感應器、七段顯示器和 8592單晶片。其中較為重要

    的為 8592單晶片的控制和感應器的接收。所以需要以可調式

    電阻來配合其靈敏度以達到需求的效果。

    紅外線感應技術器是可以用在自動計算有多少人進出,而

    省下所不需要的人力資源,如可用在電影院、遊樂場裡的設

    施,或是有在人數限制下得環境可以使用。在設計中所發生的

    問題(如電路錫悍、電路設計、程式碼等等),並且研擬解決

    方案。

  • 2

    第一章 序論

    1-1前言

    目前許多的商家以手動的方式在計數計算,造成顧客大排

    長龍的情況下,為了解決時間與人力成本,本專題小組則以解

    決此問題為方向研究。

    1-2研究動機與目的

    以節省人力及時間為方向去研究,故以紅外線計數這方向

    深入探討。在日常生活中其實很運用到,例如:花博博覽會的

    人數管控;避免場內太過壅塞或統計當天總人數、也運用在錢

    幣數量計數。

    本專題分為三大部分,第一部分為電路的部份,即 85C91

    的部份,第二部分為紅外線感應部分,第三部分為計數部分。

  • 3

    第二章 工作原理

    2-1基本原理

    (A)8051介紹 MCS-51 介紹,MCS-51晶片是Intel公司,繼8048之後所開發出來功能完備的單晶片。按照其晶片記憶體的包裝不同,共分五種型態:

    (1) 晶片內不含程式記憶體(ROM)的,如8031,8031AH,

    80C31。 (2) 晶片內含程式記憶體(ROM)的,如8051,8051AH,80C51。 (3) 晶片內含程式記憶體,是EPROM,如8751,8751AH,

    87C51H.。

    (4) 晶片內含程式記憶體,是EEPROM,如89C51。 (5) 8032AH、8052AH、8752BH,除記憶容量和計時器有不同

    外,其餘電路功能和8051系列相目。

    主要功能:

    1.專為控制應用所設計的8 位元CPU

    2.含有一完整的布林代數之運算功能。

    3.32 條雙向且可被讀立定址I/O 。

    4.晶片內有128 位元組供儲存資料RAM 。

    5.內部有兩個16 位元計時器/記數器。

    6.具一通信用全雙工UART 。

    7.5個中斷源,且具有兩層(高/低)優先順序。

    8.晶片內有時脈振盪器,最高頻率可達12MHz 。

    9.晶片內有4K位元組的程式記憶體。

    10.可在外部擴充達64K 位元組程式記憶體(EPROM)。

    11.資料記憶體可在外部擴充至64K 位元組資料記憶體。

  • 4

    (B)8051接腳功能說明

    圖2-1 8051接腳圖

  • 7

    以下分別對8051的40支接腳做說明:

    a.Vcc(40)MCS-51 +5V 電源接腳。

    b. Vss(20)MCS-51 電源接地端。

    c. P0.0 ~ P0.7 (39 ~32)

    此8支腳為MCS-51第0個輸入/輸出埠,簡稱P0。除作為輸入/輸出

    埠外,又可當作外接程式記憶體的較低8位元位址,及資料匯流

    排,因此具有三重多工用途。

    表2-1 8051特殊功能接腳

    P3.0/RXD(10) 串列通訊的信號接收腳

    P3.1/TXD(11) 串列通訊的信號傳送腳

    P3.2/INTO(12) 第0個外部中斷信號輸入腳

    P3.3/INT1(13) 第1個外部中斷信號輸入腳

    P3.4/T0(14) 第0個計時/計數器,外部計數信號輸入腳

    P3.5/T1(15) 第1個計時/計數器,外部計數信號輸入腳

    P3.6/WR(16) 對外部資料記憶體的寫入控制信號

    P3.7/RD(17) 對外部資料記憶體的讀取控制信號

  • 8

    2-2 8051 的記憶體結構

    MCS-51的程式記憶體有內部及外部兩種。使用時,由EA接腳控

    制。當EA接為高電位,則自內部0000H開始讀取程式碼;當超過

    0FFFH(4K byte)時,就跳至外部程式記憶體,讀取程式碼。而當

    EA為Low電位,就一定自外部記憶體0000H,開始讀取程式記憶體。

    其程式記憶體的位址圖如圖所示

    圖2-2 MCS-51記憶體結構

  • 9

    設計電路時,如程式容量不超過4K byte,當然可以選用含有內

    部程式,記憶體的8051或使用8031直接採用外部記憶體;但如程

    式大小超過4Kbyte,建議直接使用外 部記憶體選用8031晶片。對

    MCS-51而言,其能容量程式的最大值為64K個位元組。

    b.資料記憶體

    MCS-51內部資料記憶體結構如圖所示

    圖2-3 資料記體結構

  • 10

    自0000H ~ 007FH 共128位元組,此區域如當作一般資料記憶

    體, 可以用直接定址或間接定址方式讀寫資料。但在此區域另

    有一些用途 說明如下:

    自0000H ~ 001FH 共32個位元組空間,每個位元組各分為一暫存

    器 庫,當作一般暫存器使用,分別以R0 ~ R7稱呼,這四個暫存

    器庫,可以用PSW暫存器中的RS0、RS1兩個位元選擇。

    表2-2 RS0.RS1記憶體空間配置表

    RS0 RS1 記 憶 空 間

    0 0

    00H~07H 暫存器庫0(R0,R1……R7)

    0 1 08H~0FH 暫存器庫1(R0,R1……R7)

    1 0 10H~17H 暫存器庫2(R0,R1………R7)

    1 1 18H~1FH 暫存器庫3(R0,R1………R7)

    20H稱為可為原定址區,此區結的128個位元可以單獨以位元

    來使用,並且有位元位址來定址MSC-51有提供位元指令來處理各

    位元。而內部資料記憶體自080H~0FFH,只8051/8052此區只能用

    間接地址方式來做讀寫

  • 11

    2-3輸入/輸出埠

    8051 的I/O 埠共有32 位元,分成P0 、P1 、P2 、P3 ㆕個8

    位元的I/O 埠, 每一個I/O 不埠都含有栓鎖與輸出驅動器,

    除了P1 純粹做為輸入與輸出的功能 外,P0還具有擴充外接記

    憶體或其他週邊資料匯流排和低位元址的功能,P2 有擴 充外

    接記憶體之高位元址的功能,P3 具有中斷要求輸入、計數輸

    入、串列埠輸入/輸出,讀、寫控制訊號等功能。

  • 12

    2-4 中斷結構

    8051 提供了5種中斷來源,計時器0(TF0)、計時器

    1(TF1)、串列埠中斷(RI或TI)屬內部中斷,INT0 和INT1 屬

    外部中斷,8051 的中斷可藉由特殊功能暫存器中的計時/

    計數控制暫存器(TCON)、中斷致能暫存器(IE)、中斷優先次

    年控制暫存器(IP)、等暫存器來規劃其動作模式。

    表2-3中斷向量表

    表2-4中斷優先結購表

  • 13

    2-5 8051 內部計時器

    8051 內部有兩個16 位元計時器(Timer)稱為

    Timer0 和Timer1 , Timer0 和Timer1 的使用方法幾

    乎一樣,它們都有以下四種工作模式:

    (1)Mode0 :13 位元計時器模式。

    (2)Mode1 :16 位元計時器模式。

    (3)Mode2 :附有自動重新載入功能的8 位元計時器。

    (4)Mode3 :在Mode3時Timer0與Timer1不同。Timer0 被拆成兩

    個獨立的8位元計時器TL0 和TH0 。Timer1 在Mode3

    時就停止計時。

    8052內部比8051多出計時器Timr2,Timer2能計時外還

    有三種工作模式:

    1.自動重載模式(Auto Reload Mode):附有自動重新載入功能的16

    位元計時器。

    2.抓取模式(Capture Mode):可由外部觸發鎖住計時值的16 位元

    計時器。

    3.鮑率產生器模式(Baud Rate Generator):當作UART的位元率(或

    稱鮑率)產生器,以控制UART 的傳送速率。

  • 14

    2-6紅外線介紹

    紅外線在光譜上通常已超過可見光區的最長波-紅光,波長

    約 750nm 之後的不可見光稱為紅外線。一般在日常生活中看

    到的通常是近紅外線,波長在 750nm 到 25000nm 之間。目前

    無線電波和微波已被廣泛地應用在長距離的無線通訊之中,

    但由於紅外線的波長較短,對障礙物的衍射能力差,所以更適

    合應用在需要短距離無線通訊的場合,進行點對點直線數據傳

    輸。因為它的成本低廉、連接方便、簡單易用,因此在小型的

    移動設備中獲得了廣泛的應用。

    實際上在我們生活上充滿了這種紅外光,而紅外線是不需要執

    照就可以使用了。例如低速紅外線(SLOW IR)應用冷氣遙控器

    上,或者市光碟機或者市 DVD燒路器就是利用紅外線發射訊號

    再利用編碼器進行編碼,轉成所需的訊號。然而還有高速紅外

    線(Fast IR),他是傳輸速率 4Mbit/秒,或是更高的速率。

  • 15

    視線紅外線(Line-of-Sight)以有如雷射線般的直線形態

    傳輸資料,因為其運動是以直線前進,如果傳輸的路途中沒有

    任何的障礙物,則資料的傳輸可以說相當快速且具有效率的,

    因為紅外線也是光的一種,所以它前進的速度為光速。但是就

    像太陽光一樣,紅外線不能穿透牆壁或是大型物體,所以,在

    資料收發的兩端必須相互對準(即可以看得見對方)才能進行

    通訊,這對行動通訊可能常常移動位置的情形而言,是非常不

    利的,而且容易受到下雨、下雪或是霧氣的干擾。

    相對於視線紅外線直線前進的運動形態,散射式紅外線

    (Diffused)就是一種非直接傳輸的方式。散射式紅外線在一

    定區域中藉著天花板、牆壁及其他物體之表面,以擴散反射的

    方式達成傳送資料的目的,而接收端則對收集到的訊號進行解

    譯。

    以散射式紅外線進行傳輸的最大好處在於,收送的兩端不必如

    視線紅外線要正確地對準,但是就因為紅外線是散射形式,所

    以傳輸範圍及效能將受到更大的限制。

  • 16

    第三章 製作過程

    1.寫流程圖並且了解 8051的基礎原理及使用方法。

    2.熟悉 8051 的使用方法,燒錄方法。

    3.寫程式

    4.測試並調整結果

    動作流程

  • 17

    程式碼

    ;--------------------------------------->

    TMP EQU 20H ; 按鍵狀態暫存器

    COUNT1 EQU 21H ; 計數器十位/個位暫存器

    COUNT2 EQU 22H ; 計數器千位/百位暫存器

    ;--------------------------------------->

    SW1 EQU P3.0 ; 歸零 SW

    IR EQU P3.2 ; 紅外線感測信號

    ORG 0000H

    AJMP START

    ORG 0003H ; >

    CLR EA ; 禁止所有中斷

    MOV A,COUNT1 ; 讀取計數器值(十位&個位數)

    ADD A,#1 ; +1

    DA A ; 十進制轉換

    MOV COUNT1,A ; 寫回計數器值(十位&個位數)

    CJNE A,#99H,IN1 ; 計數值= XX99 ?

    MOV A,COUNT2 ;

    CJNE A,#99H,IN1 ; 計數值= 9999 ?

    DJNZ R1,$ ; DELAY

    CLR EA ; 禁止所有中斷

    RETI

    IN1: MOV A,COUNT1 ; 讀取計數器值(十位&個位數)

    CJNE A,#00H,IN2 ; A0 表示未進位

    MOV A,COUNT2 ; 讀取計數器值(千位&百位數)

    ADD A,#1 ; +1

    DA A ; 十進制轉換

    MOV COUNT2,A ; 寫回計數器值(千位&百位數)

    ;---------------------------------------

    IN2: DJNZ R1,$ ;

    DJNZ R1,$ ; DELAY

    SETB EA ; 允許中斷

    RETI

    START: MOV P0,#00H ; \

    MOV P1,#00H ; | P0~P3 初始值

    MOV P2,#0FFH ; |

    MOV P3,#0FFH ; /

  • 18

    MOV IE,#10000001B ; 致能 INT0 中斷

    MOV TCON,#00000001B ; INT0 負緣觸發並清除

    MOV TMP,#00H ; 按鍵狀態 BIT

    MOV SP,#50H ; 堆疊位址

    ZERO: SETB EA ; 允許中斷

    MOV COUNT1,#00H ; \ 計數器歸零

    MOV COUNT2,#00H ; /

    MAIN: MOV R0,#1 ;

    CALL MA1 ; 顯示數字

    MOV A,COUNT1 ; 計數值= XX99?

    CJNE A,#99H,MN1 ; 計數值= XX99 ?

    MOV A,COUNT2 ;

    CJNE A,#99H,MN1 ; 計數值= 9999 ?

    CALL MAX ; \ 閃爍 9999

    CALL OFF ; /

    MN1: JNB SW1,ZERO ; SW1 ON 計數器歸零

    AJMP MAIN

    DELAY: MOV R6,#10 ; \

    DL2: MOV R7,#0FFH ; | DELAY

    DJNZ R7,$ ; |

    DJNZ R6,DL2 ; /

    MOV P2,#0FFH ; \

    MOV P0,#00H ; |

    MOV R5,#10 ; | 關閉顯示+遮沒

    DL1: NOP ; |

    DJNZ R5,DL1 ; /

    RET

    MAX: MOV R0,#30H ; 迴圈次數

    MA1: MOV A,COUNT1 ; 計數器個位數

    ANL A,#0FH ; 取個位數值

    CALL GET_7 ; 取得七段顯示碼

    MOV P2,A ; 七段輸出顯示

    MOV P0,#01H ; 個位數日字生效

    CALL DELAY ; 延遲 & 遮沒

    MOV A,COUNT1 ; 計數器十位數

    SWAP A ; 4BITS 內容對調

    ANL A,#0FH ; 取十位數值

    CALL GET_7 ; 取得七段顯示碼

  • 19

    MOV P2,A ; 七段輸出顯示

    MOV P0,#02H ; 十位數日字生效

    CALL DELAY ; 延遲 & 遮沒

    MOV A,COUNT2 ; 計數器百位數

    ANL A,#0FH ; 取百位數值

    CALL GET_7 ; 取得七段顯示碼

    MOV P2,A ; 七段輸出顯示

    MOV P0,#04H ; 百位數日字生效

    CALL DELAY ; 延遲 & 遮沒

    MOV A,COUNT2 ; 計數器千位數

    SWAP A ; 4BITS 內容對調

    ANL A,#0FH ; 取千位數值

    CALL GET_7 ; 取得七段顯示碼

    MOV P2,A ; 七段輸出顯示

    MOV P0,#08H ; 千位數日字生效

    CALL DELAY ; 延遲 & 遮沒

    DJNZ R0,MA1

    RET

    OFF: MOV P2,#0FFH ; \

    MOV P0,#00H ; | 不顯示

    MOV R6,#0FFH ; |

    CALL DL2 ; /

    RET

    GET_7: MOV DPTR,#SEG7 ;>

    MOVC A,@A+DPTR ;取出 0~9 顯示碼之一

    RET

    ;------------------------------------------------------ 共陰極七段顯示碼 0~9

    SEG7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

    END

    電路圖

  • 20

  • 21

    第四章 結果與討論

    1.製作的過程中遇到了許多的問題,例如:不知道如何焊接、程式碼

    中也出現許多的問題,如數字亂跳、PIR 輸出燈號交叉跳,LM324 pin8

    輸出異常 LED 燈會快速閃爍, 造成計數器一直+1 等結果。

    2.焊接完成後計數器仍無法啟動;經過一連串檢測是否有無短路現

    象,最後把 LM324 pin8 改為 LM324 pin14,但是依然無法啟動,後

    來直接更換 LA324D 才把問題解決。

    3.計數器累計因為無法轉換,最後才決定多加一個 VR 1M來調整靈度。

  • 22

    第五章 參考文獻

    (1)鄧錦城 編著,8051 單晶片專題製作,宏友圖書開發股

    份有限公司

    (2)鄧錦城 編著,8051 單晶片實作寶典,益眾資訊有

    限公司

    (3)鍾富昭 編著,8051/8052 與週邊IC 元件控制原理

    分析及產品實務 設計,富茂資訊研習中心 。

    (4)徐照夫 編著感測器應用電路,文笙書局

  • 23

    附表

    表一、材料表

    8051 人體紅外線感測 四位數計數器零件清單

    零件名稱 數量 備 註

    AT89C52 (8K) 1 or AT89S52 (8K)

    40PIN IC 座 1

    14PIN IC 座 1

    震盪晶體 12MHz 1

    電容 22P 2

    電容 10U/16V 4

    電容 0.1u 104 2

    電阻 2.2K 5

    電阻 10K 5

    電阻 1M 3

    電阻 47K 1

    電阻 100K 1

    可變電阻 VR 1M 1

    電阻 120 歐姆 7 控制日字顯示亮度

    電阻 300 歐姆 2 or 470 歐姆

    紅外線光源過濾器 1

    紅外線感測器 RE200B 1

    KA324D 四組放大器 IC 1 LM324

    3mm LED 2 紅/綠*1

    按鈕 1

    共陰極 單八日字顯示器 4 or 雙八日字*2

    洞洞板 1

    NPN 電晶體 HA8050 5 接腳 E B C

    PNP 電晶體 A950 7 接腳 E C B

    1N4148 2

    電源插 PIN 2PIN 1

    電源 DC+5V 1 變壓器 or 電池盒 (自備)

  • 24

    表二、設備與工具表

    名稱 用途

    錫銲槍&銲條 焊接

    三用電表 量測是否有無短路

    平口鉗 剪除多餘的線材

  • 25

    六、圖像

    圖一、

  • 26

    圖二

  • 27

    圖三

  • 28

    圖四

  • 29

    圖五