2008年5月18日 星期日

Class2 I/O 、掃秒技巧、七段顯示、keyboard (ch4)

delay的問題


//********************** 4_1.c *******************

//動作:令P10反相輸出指定時間的方波,送到喇叭發出聲音

//***********************************************

#include

void delay_1m(unsigned int dly); //宣告延時1m秒函數

main()

{

P0 = 0x04;

loop:

P1=P1^0x01; //P10和1做xor會反相,令喇叭發出聲音

delay_1m(1); //呼叫延時函數1ms,自行調整延時時間

goto loop;

}

void delay_1m(unsigned int dly) //自訂1ms延時函數

{

int count;

while(dly>0)

{

count=120; //延時1ms的空轉次數

while (count>0) count--; //延時1ms

dly--; //dly遞減

}

}

//********** 4_2.c *****************************

//動作:令P10輸出方波到喇叭發出聲音,由P3決定延時時間

//**********************************************

//#include

#include "reg51.h"

unsigned int dly;

void delay (void); //宣告自定延時函數

main()

{

while(1) //不斷循環執行

{

// P1_0=!P1_0; //P10反相,令喇叭發出聲音

P1 = ~P1;

delay(); //呼叫延時函數

}

}

void delay(void) //自訂延時函數

{

dly= P3*100; //由P1輸入決定延時時間

while (dly>0) //若dly>0 則再遞減

dly--; //dly遞減

}



//********** 4_3.c *****************************

//動作:令P10輸出嗶嗶聲

//**********************************************

#include

void delay(int dly); //宣告自定延時函數

void beep(char i);

main()

{

while(1)

{

beep(1); //嗶一聲

delay(30000); //間隔時間

beep(2); //嗶一聲

delay(30000); //間隔時間

beep(3); //嗶一聲

delay(30000); //間隔時間

}

}

void beep(char i)

{

int j;

while(i>0) //嗶聲次數

{

for(j=0;j<400;j++) //令輸出反相400次

{

P1_0=!P1_0; //P10反相,令喇叭發出聲音

delay(10); /呼叫延時函數

}

delay(10000); //嗶聲的間隔時間

i--;

}

}

void delay(int dly) //自訂延時函數

{

while (dly>0) //若dly>0 則再遞減

dly--; //dly遞減

}



未解碼七段顯示器範例實習

l程式7seg.c

l修改程式使七段顯示器顯示0~9

l讓七段顯示器顯示0~9,在顯示9~0

l配合作業1的版子,用兩個PORT的輸出控制兩個七段顯示器動作做00~99的計數(SEG4.c)

作業

設計一程式,使用一個七段顯示器及一顆按鈕,設計亂數程式,按下按鈕後使七段顯示器亂數顯示1~6的其中一個數字。(參考3-82頁3_45.c使用rand()函式)




8051 Class1 簡介、開發環境介紹與安裝 (ch1~ch3)

1. 使用最多的MCU(8051)

微電腦系統(Micro Computer System) MCS-51
資料匯流排 8 bit
位址匯流排 16 bit
最大定址能力 64K byte

2. 單晶片微電腦架構

除了一般電腦的基本架構外,還內含一些非必要的特殊用途I/O及電路

l時脈產生器( CLOCK Generator )
l外部中斷( External Interrupt )
l串列輸出入( Serial Input/Output )
l脈波寬度調變電路( PWM : Pulse width Modulation )
l類比/數位 ( A/D : Analog/Digital ) 轉換器
l數位/類比 ( D/A: Digital/Analog ) 轉換器

8051單片具有以下之特性:

l專為控制使用所設計的8位元單晶片。

l具有位元邏輯運算能力。

l具有128位元的RAM,以及4K位元的ROM。

l具有4個8位元I/O埠。

l具有2個16位元的計時/計數器。

l具有全雙工的UART。

l具有5個中斷源及兩層中斷優先權結構。

l具有時脈產生電路。

3. MCS-51單晶片微電腦的結構

l8051的40隻接腳分為凹點記號

l左邊由上而下: P1、RESET、P3、CLOCK、VSS

l右邊由下而上: P2、/PSEN、ALE、EA、P0、VCC

4. Keil C51視窗環境練習

l德國Keil 軟體研發的 8051C編譯器

lVision2 可用於C語言跟組合語言

lμVision模式(撰寫、編譯、編譯/連結、執行檔)

lDebug模式(觀察、偵錯)

lP.2-2

5. 單晶片開發流程

l程式開發 > 編譯 > 生成影像檔 > 燒錄IC > 硬體模擬 或 純軟體模擬

l純軟體模擬 :進入SIM5模擬軟體1及各實驗單元畫面

lSimLab 8051模擬軟體

6. C51需注意事項

l程式主體為main組成

l;為結尾

l字母大小寫是不一樣的

l註解:// /*~*/

l#include為前置命令

#include

#include 指定載入表頭檔

7. C51程式語言的基本結構:

l P0=0x81; //輸出到P0埠

l P1=0x0f; //輸出到P0埠

8. 資料型態的轉換

l 當不同料型態變數一起運作時,51會強制加以轉換。以不流失資料為原則

l char 和 int èint

l unsigned char 和 char è unsigned char

9. 89C51 ED2 使用方式

l 89c51ED2電路實習板採用低電位驅動,所以程式須反向才能理解訊號。(1亮0不亮)

10. 習題

l 利用一組指撥開關和一組LED設計一個兩位數加法器,指撥開關設定數X和數Y,其中數X由左邊4個指撥開關設定值決定,數Y由右邊4個指撥開關設定值決定。例如指撥開關設定值為10010011,則數X=1001B,數Y=0011B,則相加結果為00001100,只有位元2,3的LED亮,其餘LED皆不亮。

NET/TCPIP 復習重點

感謝 "唬爺" 的精心製作,越來越專業了!!!!

1. 網路的實體拓樸種類—(課本P1章)

匯流排拓樸(Bus Topology)、星狀拓樸(Star Topology)、環狀拓樸(Ring Topology)、網狀拓樸(Mesh Topology)

2. 10BASE2, 10BASE5的規格—(網路)

10BASE2:(RG-58 cable)所用的接頭

10 Mbps 的傳輸速率、BASE 代表使用基頻 (BASEBAND)、2代表纜線最大長度在200m之內

10BASE5:(RG-11 cable)所用的接頭

10 Mbps 的傳輸速率、BASE 代表使用基頻 (BASEBAND)、2代表纜線最大長度在500m之內

3. OSI 七層架構中,應用層、表達層、傳輸層、資料連結層的功能—(講義93~95及後面內容)

應用層(Application Layer):第7層

1. 使用者,應用程式與網路之間的溝通介面,如FTP、Telnet、E-mail

2. 提供使用者網路的應用服務,服務項目有:

a.檔案 b.列印 c.訊息 d.應用程式 e.資料庫

表達層(Presentation Layer):第6層

1. 將所傳來的資料轉換成該電腦系統內所能看得懂得格式

如:資料格式的表示或是改變方式a.資料是否壓縮或加密 b.資料

的內碼格式

傳輸層(Transport Layer):第4層

1. 當兩節點已建立聯繫的狀態下,監督資料能安全無誤的送達(提供可靠的傳輸)

2. 為端到端連接提供流量控制、差錯控制、服務質量(Quality of

Service,QoS)等管理服務

資料連結層(Data Link Layer):第2層

1. 將實體層傳來的O/I訓好組成資料框(Frame),並辨識或加上目的與來源地址

2. 將資料傳送往實體媒介

3. 傳送的過程中會處理偵錯、復原

4. 控制資料的流向

5. 識別網路上各設備實體位置

4. UTP、同軸電纜線的接頭規格--(講義36,39,42)

UTP的接頭規格:(無遮蔽雙絞線)

1. 分RJ-45:(4對8蕊)、RJ-11(2對4蕊)

a. Category 1:傳統電話使用,不支援資料傳輸

b. Category 2:有 4 對線,資料傳輸最高速率達 4 MBPS

c. Category 3:有 4 對線,資料傳輸最高速率達 10 MBPS

d. Category 4:有 4 對線,資料傳輸最高速率達 16 MBPS

e. Category 5:有 4 對線,同樣長度的線,CAT 5 的纏繞圈數需

要比其他規格高,且需要較特殊的工具來使用,資

料傳輸最高速率達 100 MBPS (乙太網絡用)

f. Category 6:資料傳輸最高速率達 2.4 GMBPS,1000BaseT網路

使用

同軸電纜線的接頭規格:

1. RG-11,用於10Base5的粗線,阻抗50ohm,直徑0.4”乙太網絡(Ethernet)

2. RG-58,用於10Base2細線,阻抗50ohm,直徑0.18” 乙太網絡(Ethernet)

3. RG-59,用於Cable,阻抗75ohm,直徑0.25”

4. RG-62,用於ARCnet,阻抗93ohm,直徑0.25”

5. 橋接器、路由器、閘道器的功能—(講義68,79,81)

橋接器(Bridge):連接二網路段的設備,過濾與區隔資料流

1. 可降低網路負載

2. 可連接不同的傳輸媒介,Coaxial與UTP

3. 可過濾屬網路段內還是網路外的資料流

4. 如果網路位址在同一個網路中,橋接器會依網路地址而將該封包限制不傳出去

5. 啟動後經由學習建立實體位址的對照表

路由器(Router):Inter Network間資料的傳輸設備

1. 連接不同型網路設備。 例:Token Ring與Ethrenet連接

2. 可連接不同的通訊媒介(Multi-media Router)

3. 可傳送不同的通訊協定。 例:TCP/IP與IPX的傳送

4. 在傳輸過程中隨時調整傳輸路徑(最佳路徑選擇)

5. 包括了OSI中實體層(1)、資料連階層(2)、網路層(3)

6. 位址的判斷是Logical Network Address

閘道器(Gateway):

1. 連接不同架構的網路,如LAN與Mainframe相連

2. 含括了OSI全部層級架構

3. 可轉換不同的通訊協定

6. 乙太網路傳送資料的方法:CSMA/CD、CSMA/CA—(P13-5)

CSMA:並沒有定義碰撞的程序

CSMA/CD:載波感測多重存取/碰撞偵測

每個成員在發送資料時必須先偵測網路上是否有資料正在傳送,如果偵

測不到訊號,就表示可以傳輸。在同一個網路媒介上,如果有一個以上

的成員同時傳送資料,或是正準備傳送資料,都必偵測聽碰撞訊號,一

旦偵測到碰撞訊號,則任何人都不可以傳輸,開始再等安靜的一刻,才

能再試著傳輸。

1. 使用於傳統的乙太網路。

2. 傳輸效率較佳, 但硬體成本比較高。

CSMA/CA:

先感測路線是否閒置,閒置時,等待IFG(訊框間隔)時間;然後在等待隨機機時間。之後,它送出訊框並啟動計時器。工作站等待接收者的確認,如果時間到之前收到,表式傳輸成功;否則表示有問題。

1.使用在無線區域網路中。

7. Token Passing—(講義179)

1. 用於Ring網路(IEEE 802.5)

2. 網路上有一個token不斷繞圈子,需要送資料者必須先取得token,然後token被設定成佔用中(busy)。直到對方接收到資料後會改變token的狀態上讓發送者知道資料已到達,而將token還原成free狀態。

3. 比CSMA/CD較好之處在於各節點佔用Token的機率比較平均

4. 傳輸資料時不會發生碰撞

5. 適用在比較多節點的網路

8. 5-4-3原則

使用 802.3 協定的時候﹐必需遵守的原則:

網路上最多只能有5個網段(segment),4個中繼器(repeater),3個電腦群體(population)。

9. 雙工、半雙工,多工技術-(P1-4)(講義155)

雙工(Duplex):

1. 指的是資料在一個通訊媒體當中傳輸的方向是兩方面的。

2. 又區分全雙工(Full-Duplex)與半雙工(Half-Duplex)

3. 全雙工(Full-Duplex) 指的是資料同時可做傳送和接收的動作

半雙工(Half-Duplex):

半雙工所指的是資料在同一時間當中,只能向一個方向傳遞的模式,又

稱為單工 (Simplex)。

多工技術(Multiplexing):

多工是在同一條傳輸媒介中先匯集幾個較低頻的訊號,然後改用高頻的

路線一起送出。當訊號到達後,再將高頻的訊號分解回原來低頻的訊號

10.網際網路資料交換技術(3種)—屬網路層(3)

  1. 電路交換(Circuit Switching)
  2. 訊息交換(Message Switching)
  3. 分封交換(Packet Switching)

11.同步與非同步傳輸—(P4-20)

同步傳輸(Synchronous transmission):

所同步傳輸在傳輸過程中,會先送出同步(sync)碼,以便發送設備與接收設備藉由各自時鐘的對時,而保持同步,再正式送出所要傳送的資料,最後送出同步碼(sync)做結束,此種方式比較貴,但較有效率。

1.講白一點:兩個單元的資料轉移動作是由時脈同步

非同步傳輸(Asynchronous transmission):

傳輸每一位元組利用起始(start)位元和結束(stop)位元附加在位元組

兩端來辨別。

1.講白一點:兩個單元的資料轉移動作沒有共同時脈控制

12.T1、T3—(P6-15)

T1:傳輸速度是1.554Mbps

T2:相同於4條的T1,傳輸速度是6.312Mbps

T3:相同於6條的T2,傳輸速度是44.726Mbps

T4:相同於7條的T3,傳輸速度是274.176Mbps