Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

PHẦN I – AT89C52 GIAO TIẾP VỚI LED ĐƠN

===//===
Bài 4- Viết chương trình sáng dần và tắt dần (sáng/tắt dần từ P1.0 đến P1.7 hay còn gọi là
từ phải sang trái) 8 LED ở PORT1.
Hướng xử lý
Bước 1: Vẽ sơ đồ nguyên lý(thiết kế phần cứng).

Bước 2- Vẽ lưu đồ giải thuật:


BEGIN

Sáng dần LED1->LED8


(sáng mức 1)
Dịch 8 lần: 1 bit 0 sang trái
và +1 để được mức 1
delay_ms()

Tắt dần LED1->LED8


(tắt mức 0)
Dịch 8 lần: 1 bit 0 sang trái
delay_ms()

www.hocdientu123.vn
Bước 3: Dựa vào sơ đồ nguyên lý và lưu đồ giải thuật viết chương trình
- Vị trí các bit (pin) của một PORT:
PORT1 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0

Giá trị BIT: 0 0 0 0 1 1 1 1


Thứ tự BIT: 7 6 5 4 3 2 1 0
Bít đầu tiên
Bít cuối cùng

Cách ghi 1 số 8 bit: ví dụ cho chân P1.0 đến chân P1.3 là mức 1 và chân P1.4 đến P1.7 là mức 0:

- Theo số nhị phân(chỉ có bit 0 và 1 hay gọi là cơ số 2): 0b00001111


- Theo số thập lục phân(cơ số 16): 0x0F
- Theo số thập phân(cơ số 10): 15

- Sử dụng phép dịch bit:


+ Nếu dịch trái (<<) thì sẽ dịch bit 0 vào bên phải và đẩy chuỗi bit
về bên trái 1 bit đồng thời sẽ làm mất đi 1 bit bên trái.
PORT1 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0

Giá trị BIT: 0 0 0 0 0 0 0 0


Thứ tự BIT: 7 6 5 4 3 2 1 0

Ví dụ PORT1: có giá trị a=0x00=0b00000000


Giá trị bít: 0 0 0 0 0 0 0 0

Dịch trái 1 bit: 0 0 0 0 0 0 0 0 a<<1


Là dịch 1 bit 0 vào bit đầu
Bit cuối cùng sẽ
bị mất
Bit được dịch tiên (P1.0) và đẩy chuỗi
vào bit về bên trái 1 bit

Dịch trái 2 bit: 0 0 0 0 0 0 0 0 a<<2


Là dịch 2 bit 0 vào 2 bit đầu
Bit được dịch tiên (P1.0, P1.1) và đẩy chuỗi
vào bít về phía bên trái 2 bit
+ Nếu dịch phải (>>) thì sẽ dịch bit 0 vào bên trái và đẩy chuỗi bit về bên phải 1
bit đồng thời sẽ làm mất đi 1 bit bên phải.

www.hocdientu123.vn
PORT1 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0

Giá trị BIT: 0 0 0 0 0 0 0 0


Thứ tự BIT: 7 6 5 4 3 2 1 0

Ví dụ PORT1: có giá trị a=0x00=0b00000000


Giá trị bít: 0 0 0 0 0 0 0 0
Bit đầu tiên P1.0 sẽ bị mất
Dịch phải 1 bit: 0 0 0 0 0 0 0 0

Là dịch 1 bit 0 vào bit cuối a>>1


cùng (P1.7) và đẩy chuỗi Bit được dịch
bit về bên phải 1 bit vào

Dịch phải 2 bit: 0 0 0 0 0 0 0 0 0


Là dịch 2 bit 0 vào 2 bit cuối
cùng (P1.7, P1.6) và đẩy
Bit được dịch
a>>2
chuỗi bít về phía bên phải 2
bit vào

- Sử dụng phép cộng bit:


bit 0+ bit 0= bit 0
bit 0+ bit 1= bit 1
bit 1+ bit 1= bit 0 (nhớ 1 và đem số 1 đó lên bit cao hơn)

PORT1 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0

Giá trị BIT: 0 0 0 0 0 0 0 0


Thứ tự BIT: 7 6 5 4 3 2 1 0

Ví dụ PORT1: có giá trị a=0x00=0b00000000

Giá trị bit: 0 0 0 0 0 0 0 0


+1
Giá trị bit sau
0 0 0 0 0 0 0 1
khi cộng 1

+ 1 là cộng với bit đầu tiên


P1.0

www.hocdientu123.vn
- Viết code trong Keil C.

www.hocdientu123.vn

You might also like