顯示具有 07.8051微處理器 標籤的文章。 顯示所有文章
顯示具有 07.8051微處理器 標籤的文章。 顯示所有文章

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; //P101xor會反相,令喇叭發出聲音

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-823_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具有48位元I/O埠。

l具有216位元的計時/計數器。

l具有全雙工的UART

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

l具有時脈產生電路。

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

l805140隻接腳分為凹點記號

l左邊由上而下: P1RESETP3CLOCKVSS

l右邊由下而上: P2/PSENALEEAP0VCC

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電路實習板採用低電位驅動,所以程式須反向才能理解訊號。(10不亮)

10. 習題

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

2008年5月10日 星期六

8051課程大綱

Class1 簡介、開發環境介紹與安裝 (ch1~ch3)
Class2 I/O 、掃秒技巧、七段顯示、keyboard
(ch4)
Class3 Interrupt、Timer
(ch5~ch6)
Class4 UART、LCD Control
(ch7,ch9)
Class5 補充、實務分享
(ch8,ch10~ch12)

使用實習版: A12-0012 AT 89C51ED2 實驗板


使用書籍: 宏友圖書http://www.icci.com.tw/web/Home

單晶片MCS-51與C語言入門實習

圖片



售價: NT 390
最小訂量: 1
書名 :單晶片MCS-51與C語言入門實習
編號 :H0005
作者 :董勝源






序言


以 往MCS-51都應用組合語言指令來執行其動作,使它具有快速的執行能力,但是用組合語言來撰寫程式具有相當高的複雜度與困難性,使初學者較難以學習 MCS-51。除了組合語言的可讀性較差外,同時隨著CPU的不同,組合語言的指令也會有相當的差異。因此對於程式的設計、維修及轉移到不同的CPU也較 為困難。
C語言是國際上最通用的高階語言,它可用來撰寫各種電腦的系統程式及一般的應用程式。除此之外,它能夠對電腦的硬體直接進行操作,同時對程式的 表達及運算能力也較強,以往許多使用組合語言才能解決的問題,現在都可以用C語言來處理。可見它是一種高效率、高可讀性及高可攜性(可用於不同的CPU) 的程式語言。
而Keil-51則提供了高階語言程式環境,支援ANSI C語言標準。若是對於時間要求不須要很精確的場合,應用C語言來撰寫程式,必將是未來的主流之一。
本書藉由MCS-51作為硬體控制的基石,主要目的為學習C語言硬體控制程式的設計。日後可以此為基礎,進而深入到其它高階的微電腦控制,如DSP等。且以控制為目的的C語言程式架構較簡單昜學,適合不同的專業人士進入此一領域。


目錄


第一章 微電腦與單晶片MCS-51架構
第二章 μVision2工具軟體
第三章 C語言程式介紹構
第四章 基本輸出入控制與實習
第五章 中斷控制與外部中斷實習
第六章 計時器控制與實習
第七章 串列埠控制與實習
第八章 點矩陣LED顯示器控制與實習
第九章 液晶顯示器控制與實習
第十章 串列式EEPROM 控制與實習
第十一章 直流馬達PWM 控制與實習
第十二章 數位與類比轉換實習

2008年5月9日 星期五

8051微處理器(1)

新手入門,上課筆記

當學完這堂課會學到什麼…
l什麼是8051..
l了解處理器的運作, (第一次)使用了8 bit processor硬體平台
l連結軟硬體的運作概念, 對底層的開發增進認知 (computer architecture and organization)
l對Timer, Interrupt, I/O, UART有初步的認識, 對於後來的ARM 平台的開發做熱身
l了解寫firmware的工作是怎麼一回事?韌體工程師?