1. Trang chủ
  2. » Giáo Dục - Đào Tạo

thiết kế và xây dựng mô hình Điều khiển đèn giao thông

44 1,3K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 44
Dung lượng 663,66 KB

Nội dung

thiết kế và xây dựng mô hình “ Điều khiển đèn giao thông ”

Trang 1

MỤC LỤC

II.Tổ chức bộ nhớ

I IC GIẢI MÃ

III Mạch vi xử lý .38

IV Mạch giải mã 40

V Mạch hiển thi 41

CHƯƠNG II: NỘI DUNG ĐỀ TÀI I Hệ thống điều khiển 42

II Hệ thống điều khiển 43

III Kết cấu chương trình 44

1.Giới thiệu chương trình 44

2.Lưu đồ thuật giải của toàn bộ chương trình 45

Trang 2

3 Chương trình đèn giao thông 50

Phần iv : Tổng kết và khuyến nghị 62

Tài liệu tham khảo……… 63

NHẬN XẫT CỦA GIÁO VIấN ………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Hưng Yờn, Ngày… thỏng năm

Giỏo viờn hướng dẫn

Nguyễn Văn Diờn

Trang 3

LỜI MỞ ĐẦU

Ngày nay, sự phát triển mạnh mẽ của khoa học công nghệ, cuộc sống

của con người đã có những thay đổi ngày càng tốt hơn, với những trang thiết

bị hiện đại phục vụ công cuộc công nghiệp hoá, hiện đại hoá đất nước Đặc

biệt góp phần vào sự phát triển đó thì ngành kĩ thuật điện tử đã góp phần

không nhỏ trong sự nghiệp xây dựng và phát triển đất nước Trong đó môn kỹ

thuật vi điều khiển được phát triển mạnh dựa trên những tiến bộ của công nghệ

tích hợp các linh kiện bán dẫn và hệ lập trình có bộ nhớ kết hợp với máy tính

điện tử Từ những thời gian đầu phát triển đã cho thấy sự ưu việt của nó và cho

tới ngày nay tính ưu việt đó ngày càng được khẳng định thêm Những thành

tựu của nó đã có thể biến được những cái tưởng chừng như không thể thành

những cái có thể, góp phần nâng cao đời sống vật chất và tinh thần cho con

người

Để góp phần làm sáng tỏ hiệu quả của những ứng dụng trong thực tế

của môn vi điều khiển chúng em sau một thời gian học tập được các thầy, cô

giáo trong khoa giảng dạy về các kiến thức chuyên nghành, đồng thời được sự

giúp đỡ nhiệt tình của thầy NGUYỄN VĂN DIÊN chúng em đã thiết kế và xây

dựng mô hình “ Điều khiển đèn giao thông ”

Cùng với sự lỗ lực của bản thân nhưng do thời gian, kiến thức và kinh

nghiệm của chúng em còn có hạn nên sẽ không thể tránh khỏi những sai sót

Chúng em rất mong được sự giúp đỡ & tham khảo ý kiến của thầy cô và các

bạn nhằm đóng góp phát triển thêm đề tài

Nhóm thực hiện

Nguyễn Thị Huyền

Hoàng Quân Kha

Trang 4

Kiờn

Phần I: GIỚI THIỆU ĐỀ TÀI

I Mục đớch về hệ thống điều khiển hệ thống tớn hiệu giao thụng.

Trước tỡnh hỡnh phương tiện tham gia giao thụng ngày càng gia tăng

khụng ngừng , hệ thống giao thụng nước ta ngày dần được nõng cấp nhưng

chưa đỏp ứng kịp số lượng gia tăng cỏc phương tiện tham gia quỏ nhanh Dẫn

đến tỡnh trạng ựn tắc và tai nạn giao thụng ngày càng gia tăng Vỡ vậy để đảm

bảo giao thụng được an toàn và thụng suốt thỡ việc sử dụng cỏc hệ thống tớn

hiệu để điều khiển và phõn luồng tại cỏc nỳt giao thụng là rất cần thiết.Với tầm

quan trọng như vậy hệ thống điều khiển tớn hiệu giao thụng cần đảm bảo cỏc

yờu cầu sau:

- Người tham gia giao thụng dễ dàng nhận diện và thực hiện

- Đảm bảo hoạt động một cỏch chớnh xỏc, liờn tục

- Độ tin cậy cao

- Đảm bảo làm việc ổn định, lõu dài

II Ưu thế khi sử dụng bộ VĐK để điều khiển tớn hiệu đốn giao thụng tại

một ngó tư : Điều khiển bằng vi điều khiển.

ưMạch chạy ổn định hơn làm theo kỹ thuật số và khụng cồng kềnh.

- Trong mạch cú thể sử dụng ngay bộ nhớ trong đối với chương trỡnh cú

quy mụ nhỏ, rất tiện lợi mà vi xử lý khụng thực hiện được

- Nú cú thể giao tiếp nối tiếp trực tiếp với mỏy tớnh mà vi xử lý cũng

giao tiếp được nhưng là giao tiếp song song nờn cần cú linh kiện chuyển đổi

dữ liệu từ song song sang nối tiếp để giao tiếp với mỏy tớnh

- Do trong vi điều khiển cú sử dụng cỏc bộ timer, cỏc hệ thống ngắt, cõu

lệnh đơn giản nờn việc lập trỡnh đơn giản, dễ thực hiện

III Trình tự thực hiện

1 Đưa ra ý tưởng thiết kế ( sử dụng vi điều khiển)

2 Thiết kế mạch phần cứng điều khiển bảng đèn giao thông

3 Xác định nội dung cần hiển thị ở dạng chuyển động (đèn

báo tín hiệu và thời gian đếm ngược )

Trang 5

4 Vẽ lưu đồ thuật toán

5 Viết chương trình điều khiển

6 Hiệu chỉnh lại để phù hợp với thực tế

PHẦN II : CƠ SỞ Lí THUYẾT

I Giới thiệu chung VĐK 89C51.

Bộ vi điều khiển viết tắt là Micro – controller, là mạch tớch hợp trờn một

chớp cú thể lập trỡnh được, dựng để điều khiển một hệ thống Dựa vào tập lệnh

của chỳng, lập trỡnh viờn sẽ viết được cỏc chương trỡnh điều khiển hệ thống

theo ý muốn của con người, sau đú nạp chương trỡnh cho IC vi điều khiển, bộ

vi điều khiển tiến hành đọc, lưu trữ thụng tin, đo thời gian, tiến hành đúng mở

một số cơ cấu nào đú

Trong cỏc thiết bị điện, điện tử dõn dụng, cỏc bộ vi điều khiển điều khiển

hoạt động của tivi, mỏy giặt, đầu đọc laser, điện thoại… Trong hệ thống sản

xuất tự động, bộ vi điều khiển được sử dụng trong robot, dõy chuyền tự động

Cỏc hệ thống càng thụng minh thỡ vai trũ của vi điều khiển càng quan trọng

Vi điều khiển(VĐK) là một hệ vi xử lý (VXL) được tổ chức trong một

chip Nú bao gồm:

- Bộ VXL

- Bộ nhớ chương trỡnh ( ROM / E ROM / EEPROM / FLASH)

- Bộ nhớ giữ liệu ( RAM)

- Cỏc thanh ghi chức năng , cỏc cổng I/O , cơ chế điều khiển ngắt và truyền tin

nối tiếp

- Cỏc bộ thời gian dựng trong lĩnh vực chia tần và tạo thời gian thực

- ………

- Bộ VĐK được lập trỡnh để điều khiển cỏc thiết bị thụng tin, viễn thụng, thiết

bị đo lường, thiết bị điều chỉnh cũng như cỏc ứng dụng trong cụng nghệ thụng

Trang 6

tin, và kỹ thuật điều khiển tự động Có thể xem bộ VĐK như một hệ VXL On

– chip, đối với họ AT89C51, nó có đầy đủ chức năng của một hệ VXL 8 bit,

được điều khiển bởi một lệnh, có số lệnh đủ mạnh, cho phép lập trình bằng

hợp ngữ (Asembly)

Bộ VDK 89C51 là IC vi điều khiển do hãng Intel sản xuất , IC này có đặc

điểm như sau:

- Hoạt động ở tần số 12MHz

- 4k byte ROM, 128 byte RAM

- 4 PORT I/O 8 bit 2 chiều giao tiếp với thiết bị ngoại vi

- 2 bộ đếm/ định thời 16 bit (Timer 0 và Timer 1)

- Mạch giao tiếp nối tiếp

- CPU

-64k byte không gian bộ nhớ chương trình mở rộng

-64k byte không gian bộ nhớ dữ liệu mở rộng

-Bộ nhân / chia 4

- Có hệ thống điều khiển và xử lý ngắt

- Các kênh điều khiển/ dữ liệu/ địa chỉ

- Có các thanh nghi chức năng đặc biệt

1 Sơ đồ chân tín hiệu của 80C51/AT89C51.

1.1 Sơ đồ chân 89C51:

Trang 7

40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Vcc P0 0 (AD 0 ) P0 1 (AD 1 ) P0 2 (AD 2 ) P0 3 (AD 3 ) P0 4 (AD 4 ) P0 5 (AD 5 ) P0 6 (AD 6 ) P0 7 (AD 7 ) /EA / Vpp ALE /(PROG ) /PSEN P2 7 (A15 ) P2 6 (A14 ) P2 5 (A13 ) P2 4 (A12 ) P2 3 (A11 ) P2 2 (A10 ) P2 1 (A9 ) P2 0 (A8 )

P1 1 P1 0

P1 3 P1 2

P1 5 P1 4

P1 7 P1 6

(RxD ) P3 0 RST

(TxD ) P3 1 (/INT0 ) P3 2 (/INT1 ) P3 3 (T0 ) P3 4 (T1 ) P3 5 (/Wr) P3 6 (/Rd) P3 7 XTAL 2 XTAL 1 GND

- RxD: Nhận tín hiệu kiểu nối tiếp

- TxD: Truyền tín hiệu kiểu nối tiếp

- /INT0: Ngắt ngoài 0

- /INT1: Ngắt ngoài 1

- T0: Chân vào 0 của bộ Timer/Counter 0

- T1: Chân vào 1 của bộ Timer/Counter

- /Wr: Ghi dữ liệu vào bộ nhớ ngoài

- /Rd: Đọc dữ liệu từ bộ nhớ ngoài

- RST: Chân vào Reset, tích cực ở mức logic cao trong khoảng 2 chu kỳ máy

Trang 8

- XTAL1: Chân vào mạch khuếch đaị dao động

- XTAL2: Chân ra từ mạch khuếch đaị dao động

- /PSEN : Chân cho phép đọc bộ nhớ chương trình ngoài (ROM ngoài)

- ALE (/PROG): Chân tín hiệu cho phép chốt địa chỉ để truy cập bộ nhớ ngoài,

khi On-chip xuất ra byte thấp của địa chỉ Tín hiệu chốt được kích hoạt ở mức

cao, tần số xung chốt = 1/6 tần số dao động của bộ VĐK Nó có thể được dùng

cho các bộ Timer ngoài hoặc cho mục đích tạo xung Clock Đây cũng là chân

nhận xung vào để nạp chương trình cho Flash (hoặc EEPROM) bên trong

On-chip khi nó ở mức thấp

- /EA/Vpp: Cho phép On-chip truy cập bộ nhớ chương trình ngoài khi /EA=0,

nếu /EA=1 thì On-chip sẽ làm việc với bộ nhớ chương trình nội trú Khi chân

này được cấp nguồn điện áp 12V (Vpp) thì On-chip đảm nhận chức năng nạp

chương trình cho Flash bên trong nó

- Vcc: Cung cấp dương nguồn cho On-chip (+ 5V)

- GND: nối mass

2 Cấu trúc bên trong của 89C51

2.1.Sơ đồ khối bên trong của 89C51:

2.2.Bộ nhớ chương trình và bộ nhớ dữ liệu nội trú

Trang 9

Bộ nhớ bên trong 89C51 bao gồm ROM và RAM bao gồm nhiều thành : phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi

phần -chức năng đặc biệt.80C51 có bộ nhớ theo cấu trúc Harvard: có những vùng

nhớ riêng biệt cho chương trình và 64k byte bộ nhớ chương trình và 64k byte

bộ nhớ dữ liệu mở rộng

Ram bên trong 89C51 được phân chia như sau:

-Các bank thanh ghi có địa chỉ từ 00h đến 1Fh

-Ram địa chỉ hóa từng bit có địa chỉ từ 20h đến 2Fh

-Ram đa dụng từ 30h đến 7Fh

-Các thanh ghi chức năng đặc biệt từ 80h đến FFh

a Bộ nhớ chương trình nội trú

Bộ nhớ chương trình của AT89C51 được tổ chức như thể hiện ở hình trên

Không gian nhớ cực đại của bộ nhớ này chiếm 64 Kbyte, được định địa chỉ

Trang 10

từ 0000h đến FFFFh, trong đó có 4 Kbyte Flash nội trú bên trong nó và được

định địa chỉ từ 0000h đến 0FFFh Do đó có thể mở rộng thêm 60 Kbyte bộ nhớ

chương trình bên ngoài, được định địa chỉ từ 1000h đến FFFFh Tuy nhiên bộ

VĐK này cũng có thể sử dung toàn bộ bộ nhớ chương trình ngoài bao gồm 64

Kbyte được định địa chỉ từ 0000h đến FFFFh

Cũng từ hình trên ta thấy, thông qua việc chọn mức logic cho bit /EA có

thể lựa chọn để truy cập bộ nhớ chương trình nội trú (4Kb), bộ nhớ chương

trình mở rộng ngoại trú (60Kb), hoặc toàn bộ bộ nhớ chương trình ngoại trú

bên ngoài On-chip (64Kb) Cụ thể, khi /EA = 1 thì bộ VĐK sử dụng cả bộ nhớ

chương trình nội trú và ngoại trú Ngược lại, khi /EA = 0 thì bộ VĐK chỉ sử

dụng bộ nhớ chương trình ngoại trú

Mỗi khi được Reset, bộ VĐK sẽ truy cập bộ nhớ chương trình tại địa chỉ

khởi đầu là 0000h, sau đó nếu cơ chế ngắt được sử dụng thì nó sẽ truy cập tới

địa chỉ quy định trong bảng vecter ngắt

Khi truy cập bộ nhớ chương trình, bộ VĐK sử dụng xung chọn /PSEN để

điều khiển Nếu on-chip làm việc với bộ nhớ chương trình nội trú thì chân

phát ra xung chọn /PSEN không sử dụng Nếu bộ VĐK làm việc với bộ nhớ

chương trình ngoại trú thì chân phát ra xung chọn /PSEN được sử dụng Khi

đó nếu /PSEN = 0 thì cho phép bộ VĐK đọc bộ nhớ chương trình ngoài, ngược

lại nếu /PSEN = 1 thì bộ VĐK chỉ làm việc với bộ nhớ chương trình nội trú

b Bộ nhớ dữ liệu nội trú

AT89C51 có bộ nhớ dữ liệu chiếm một khoảng không gian bộ nhớ độc lập

với bộ nhớ chương trình Dung lượng của RAM nội trú ở họ VĐK này là 128

Trang 11

Byte, được định địa chỉ từ 00h đến 7Fh Phạm vi địa chỉ từ 80h đến FFh dành

cho SFR Tuy nhiên bộ VĐK cũng có thể làm việc với RAM ngoại trú có dung

lượng cực đại là 64 Kbyte được định địa chỉ từ 0000h đến FFFFh

+ Vùng nhớ 128 Byte thấp

Vùng nhớ 128 Byte thấp được định địa chỉ từ 00h đến 7Fh, được chia thành 3

vùng con như thể hiện ở hình 1.2

- Vùng thứ nhất: địa chỉ từ 00h đến 1Fh(có độ lớn 32 Byte)

4 băng thanh ghi ( băng 0 băng 3), mỗi băng có 8 thanh ghi 8 bit Các thanh

ghi trong mỗi băng có tên gọi từ R0 đến R7 Vùng RAM này được truy cập

bằng địa chỉ trực tiếp mức Byte, và quá trình chọn để sử dung băng thanh ghi

nào là tùy thuộc vào việc lựa chon giá trị cho RS1 và RS0 trong PSW

- Vùng thứ 2: có độ lớn 16 Byte được định địa chỉ từ 20h đến 2Fh, cho phép

truy cập trực tiếp bằng địa chỉ mức bit Bộ VĐK cung cấp các lệnh có khả

năng truy cập tới vùng nhớ 128 bit này (nếu truy cập ở dạng mức bit thì vùng

này có địa chỉ được định từ 00h đến 7Fh) ở mức bit ở vùng nhớ này, địa chỉ

được truy xuất dưới dạng Byte hay Bit tuỳ vào lệnh cụ thể Chẳng hạn, để đặt

bit tại địa chỉ 5Fh có mức logic 1, ta thực hiện lệnh: SETB 5Fh Sau khi thực

hiện lệnh này, mặc dầu 5Fh là địa chỉ bit cao nhất trong Byte có địa chỉ 2Bh,

nhưng nó không làm ảnh hưởng tới các bit khác trong Byte này

Đây là ưu điểm rõ nét của các bộ VĐK khi thực hiện việc truy xuất các bit

riêng rẽ thông qua phần mềm Các bit có thể đựơc đặt, xoá, hay thực hiện chức

năng AND, OR chỉ thông qua 1 lệnh Ngoài ra các cổng xuất/nhập cũng có

thể được định địa chỉ dạng bit, điều này làm đơn giản việc giao tiếp bằng phần

mềm với các thiết bị xuất/nhập đơn bit

- Vùng nhớ còn lại gồm 80 Byte có địa chỉ từ 30h đến 7Fh được dành riêng

cho người sử dụng để lưu trữ dữ liệu Đây có thể xem là vùng RAM đa mục

đích Có thể truy cập vùng nhớ này bằng địa chỉ trực tiếp hoặc gián tiếp thông

qua các thanh ghi (R0 hoặc R1) ở dạng mức Byte

Trang 12

Hình 1.2 – 128 byte thấp của RAM nội

2.3.Bộ nhớ chương trình ngoài và bộ nhớ dữ liệu ngoại trú

a.Bộ nhớ chương trình ngoại trú:

P1

P3

P0

/EA ALE

P2 PSEN

AT 89C51

Trang 13

Truy cập bộ nhớ chương trình ngoài

Bộ nhớ chương trình ngoài là bộ nhớ chỉ đọc, được cho phép bởi tín hiệu

/PSEN Khi có một EPROM ngoài việc sử dụng, cả P0 và P2 đều không còn là

các cổng I/O nữa Khi bộ vi điều khiển truy cập bộ nhớ chương trình ngoại trú,

nó luôn sử dụng kênh địa chỉ 16 bit thông qua P0 và P2

Một chu kỳ máy của bộ vi điều khiển có 12 chu kỳ dao động Nếu bộ dao

động trên chíp có tần số 12MHz, thì một chu kỳ máy dài 1 µs Trong một chu

kỳ máy điển hình, ALE có hai xung và hai byte của lệnh được đọc từ bộ nhớ

chương trình (nếu lệnh chỉ có một byte thì byte thứ hai được loại bỏ) Khi truy

cập bộ nhớ chương trình ngoại trú, bộ vi điều khiển phát ra hai xung chốt địa

chỉ trong mỗi chu kỳ máy Mỗi xung chốt tồn tại trong hai chu kỳ dao động từ

P2 - S1 đến P1 – S2, và từ P2 – S4 đến P1 – S5

Để địa chỉ hoá bộ nhớ chương trình ngoại trú, byte thấp của địa chỉ

(A0…A7) từ bộ đếm chương trình của bộ vi điều khiển được xuất qua cổng P0

tại các trạng thái S2 và S5 của chu kỳ máy, byte cao của địa chỉ (A8…A15) từ

bộ đếm chương trình được xuất qua cổng P2 trong khoảng thời gian của cả chu

kỳ máy Tiếp theo xung chốt, bộ vi điều khiển phát ra xung chọn /PSEN Mỗi

chu kỳ máy của chu kỳ lệnh gồm hai xung chọn, mỗi xung chọn tồn tại trong 3

chu kỳ dao động từ P1 – S3 đến hết P1 – S4 và từ P1 – S6 đến hết P1 – S1 của

chu kỳ máy tiếp theo Trong khoảng thời gian phát xung chọn thì byte mã lệnh

được đọc từ bộ nhớ chương trình để nhập và on chip

3 Chức năng của một số thanh ghi đặc biệt của 89C51

SFR đảm nhiệm các chức năng khác nhau trong bộ On- chip Chúng nằm

ở RAM bên trong On- chip , chiếm vùng không gian trong bộ nhớ 128 Byte

được định đại chỉ từ 80h đến FFh Cấu trúc của SFR bao gồm các chức năng

thể hiện theo bảng sau :

Trang 14

*B Thanh ghi B 0F0h 00000000b

*PSW Từ trạngthái chương trình 0D0h 00000000b

DPH Byte cao của con trỏ dữ liệu 0 83h 00000000b

DPL Byte thấp của con trỏ dữ liệu 0 82h 00000000b

*IP TG điêù khiển ngắt ưu tiên 0B8h Xxx00000b

*IE TG điếu khiển cho phép ngắt 0A8h 0xx00000b

TMOD Điều khiển kiểu Time/ counter 89h 00000000b

*TCON TG điều khiển kiểu Time/ counter 88hh 00000000b

TH0 Byte cao của Time / Counter 0 8Ch 00000000b

TL0 Byte thấp của Time / Counter 0 8Ah 00000000b

TH1 Byte cao của Time / Counter 1 8Dh 00000000b

TL1 Byte thấp của Time / Counter 1 8Bh 00000000b

*SCON Serial Control 98h 00000000b

PCON Power Control 87h 0xxx0000b

3.1 Các thanh ghi chức năng đặc biệt.

Các thanh ghi trong AT89C51 được định dạng như một phần của RAM

trên chíp Vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi trực

tiếp, sẽ không có lợi khi đặt chúng vào trong RAM trên chip) Đó là lý do để

AT89C51 có nhiều thanh ghi Cũng như R0 đến R7, có 21 thanh ghi chức năng

đặc biệt ở vùng trên của RAM nội, từ địa chỉ 80H đến FFH Chú ý rằng hầu

hết địa chỉ từ 80H đến FFH không được định nghĩa Chỉ có 21 địa chỉ SFR là

được định nghĩa

Ngoại trừ tích luỹ A có thể được truy xuất ngầm như đã nói, đa số các SFR

được truy xuất dùng địa chỉ trực tiếp Chú ý rằng một vài SFR có thể được địa

chỉ hoá bit hoặc byte Người thiết kế phải thận trọng khi truy xuất bit và byte

Trang 15

a.Thanh ghi trạng thái chương trình:

Từ trạng chương (PSW) ở địa chỉ D0H chứa các bit trạng thái như bảng

• Cờ nhớ (CY) : Thông thường nó được dùng cho các lệnh toán học : nó sẽ

được set nếu có một số nhớ sinh ra bởi phép cộng hoặc có một số mượn phép

trừ Ví dụ, nếu thanh ghi tích luỹ chứa FFH, thì lệnh sau: ADD A,#1

Sẽ trở về thanh ghi tích luỹ kết quả 00H và set cờ nhớ trong PSW

Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi

hành trên bit

• Cờ nhớ phụ:

Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết quả của 4 bit thấp

trong khoảng OAH đến OFH Nếu các giá trị cộng được là số BCD, thì sau

lệnh cộng cần có DA A (hiệu chỉnh thập phân thanh ghi tích luỹ) để mang kết

quả lớn hơn 9 trở về tâm từ 0 đến 9

• Cờ 0

Cờ 0 (F0) là một bit cờ đa dụng dành các ứng dụng của người dùng

• Các bit chọn bank thanh ghi:

Trang 16

Các bit chọn bank thanh ghi (RS0 và RS1) xác định bank thanh ghi được

tích cực Chúng được xoá sau khi reset hệ thống và được thay đổi bằng phần

mềm nếu cần

• Cờ tràn(OV):

Cờ tràn (OV) được set một lệnh cộng hoặc trừ nếu có một phép toán bị

tràn Khi các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm

tra bit này để xác định xem kết quả của nó có nằm trong tầm xác định không

Khi các số không dấu được cộng, bit OV có thể được bỏ qua Các kết quả

lớn hơn + 127 hoặc nhỏ hơn -128 sẽ set bit OV

b Thanh ghi B:

Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi tích luỹ A cho

các phép toán nhân và chia Lệnh MUL AB sẽ nhân các giá trị không dấu 8 bit

trong A và B rồi trả về kết quả 16 bit trong A (byte thấp) và B (byte cao) Lệnh

DIV AB sẽ chia A cho B rồi trả kết quả nguyên trong A và phần nguyên trong

B Thanh ghi B cũng có thể xem như thanh ghi đệm đa dụng Nó được địa chỉ

hoá tong bit bằng các địa chỉ bit FOH đến F7H

c Con trỏ ngăn xếp

Con trỏ ngăn xếp (SP) là một thanh ghi 8 bit ở địa chỉ 81H Nó chứa địa

chỉ của byte dữ liệu hiện hành trên đỉnh của ngăn xếp Các lệnh trên ngăn xếp

bao gồm các thao tác cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp

sẽ làm tăng SP trước khi ghi dữ liệu, và lệnh lấy dữ liệu ra khỏi ngăn xếp sẽ

dọc dữ liệu làm giảm SP Ngăn xếp của AT89C51 được giữ trong RAM nội và

được giới hạn các địa chỉ có thể truy xuất bằng địa chỉ gián tiếp, chúng là 128

byte đầu của AT89C51

d Con trỏ dữ liệu:

Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài là một thanh

ghi 16 bit ở địa chỉ 82H (DPL: byte thấp) và 83H (DPH: byte cao)

e Các thanh ghi port xuất nhập:

Trang 17

Các port của AT89C51 bao gồm Port0 ở địa chỉ 80H, Port1 ở địa chỉ 90H,

port2 ở địa chỉ A0H và port3 ở địa chỉ B0H Tất cả các port đều được địa chỉ

hoá tong bit Điều đó cung cấp một khả năng giao tiếp thuận lợi

f Các thanh ghi port nối tiếp:

AT89C51 chứa một port nối tiếp trên chip dành cho việc trao đổi thông

tin với các thiết bị nối tiếp như máy tính, modem hoặc cho việc giao tiếp với

các IC khác có giao tiếp nối tiếp Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp

(SBUF) ở địa chỉ 99H sẽ giữ cả hai dữ liệu truyền và nhận Khi truyền dữ liệu

thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF Các mode vận hành khác

nhau được lập trình qua thanh ghi điều khiển port nối tiếp (SCON) (được địa

chỉ hoá từng bit) ở địa chỉ 98H

g Các thanh ghi ngắt:

AT89C51 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên Các ngắt bị cấm sau khi

reset hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt (IE)

ở địa chỉ 8AH Cả hai thanh ghi được địa chỉ hoá tưng bit

3.2 Khối tạo thời gian và bộ đếm (Time / Counter).

On - chip AT89C51 có 2 thanh ghi Time/ Counter dài 16 bit, đó là: Time

0; Time1 Khi thanh ghi Time/ Counter làm việc ở kiểu Time, sau mỗi xhu kỳ

máy nội dung trong thanh ghi được gia tăng thêm một đơn vị Vì vậy thanh

ghi này đếm số chu kỳ máy Một chu kỳ có 12 dao động,do đó tốc độ đếm của

thanh ghi là 1/12 tần số dao động Khi thanh ghi làm việc ở kiểu Counter, xung

nhịp bên ngoài được đưa vào vào để đếm ở T0 hoặc T1 Nội dung thanh ghi

được tăng lên khi có sự chuyển trạng thái từ 1 về 0 tại chân đầu vào ngoài T0

hoặc T1.Xung nhịp ở đầu ngòai được lấy mẫu tại thời điểm S5P2 của mỗi chu

kỳ máy Khi quá trình lấy mẫu phát hiện ra mức cao ở 1 chu kỳ và mức thấp ở

chu kỳ tiếp theo , thì bộ đếm được tăng lên Giá trị mới của bộ đếm xuất hiện

trong thanh ghi tại thời điểm S3P1 của chu kỳ máy sau khi sự chuyển trạng

thái đã được phát hiện Vì vậy để nội dung của thanh ghi tăng lên 1 đơn vị

phải mất 2 chu kỳ máy , nên tốc độ đếm tối đa là 1/24 tần số dao động Không

có sự giới hạn số vòng thực hiện của tín hiệu ở đầu vào ngoài , nhưng nó sẽ

giữ ít nhất 1 chu kỳ máy đầy đủ để đảm bảo chắc chắn rằng một mức đã cho

được lấy mẫu ít nhất 1 lần nữa trước khi thay đổi

Trang 18

a Time 0 và Time 1

Trong AT 89 C51 Chức năng Time hay Counter được chọn lựa bởi các

bit điều khiển trong thanh ghi TMOD Hai bộ Time/ Counter này có 4 chế độ

hoạt động , được lựa chọn bởi cặp bit ( M1, M0) trong TN0D Chế độ 0 , 1 và

2 giống nhau cho các chức năng Timer/ Counter , nhưng chế độ 3 thì khác

Bốn chế độ hoạt động được mô tả như sau:

+ Chế độ 0:

Cả 2 bộ Time 0 và 1 ở chế độ có cấu hình như một thanh ghi 13 bit , bao gồm

8 bit của thanh ghi THx và 5 bit thấp của TLx 3 bit cao của TLx không xác

định chắc chắn , nên được làm ngơ

Khi hoạt động ở chức năng thời gian thì bit C/(T)= 0 do vậy xung nhịp từ bộ

dao động nội , qua bộ chia tần ra tần số cho ra tần số f = focs/12 được đưa vào

bộ đếm trong thanh ghi Time/ Counter Khi hoạt động ở chức năng bộ đếm

thì bit C/ (T)

+ Chế độ 1;

Hoạt động tương tự như chế độ 0 , chỉ khác thanh ghi Time/ Counter được sử

dụng cả 16 bit Xung nhịp được kết hợp với các thanh ghi thời gian byte thấp

và byte cao (TH1 và TL1) Khi xung clock được nhận , bộ Time sẽ đếm tăng

lên : 0000h , 0001h, 0002,… Khi hiện tượng tràn xẩy ra ,cờ tràn sẽ chuyển

FFFFh về 0000h , và bộ Time tiếp tục đếm Cờ tràn của Time 1 là bit TF1 ở

trong TCON , nó được đọc và ghi ở phần mềm :

Trang 19

+ Chế độ 2

Chế độ hoạt động cũng tương tự như độ trên, nhưng nó được tổ chức như bộ 8

bit (TL1) với chế độ tự động nạp lại Khi xảy ra hiện tượng tràn ở TL1, không

chỉ thiết lập bit TF1 mà còn tự động nạp lại cho phép nội dung của TH1, đã

được thiết lập ở phần mềm Quá trình nạp lại cho phép nội dung của TH1

không bị thay đổi Chế độ hoạt động được mô tả như sau :

+ Chế độ 3

Chế độ này chức năng của Time/ Counter 0 và chức năng của Time/

Counter 1 khác nhau Bộ Time 1 ở chế độ 3 chỉ chứa chức năng đếm của nó ,

kết qủa giống khi đặt TR1 = 0 Bộ Time 0 ở chế độ 3 thiết lập TH0 , TL0 như

là hai bộ đếm riêng biệt

Chế độ 3 thường dùng khi yêu cầu cần có bộ thời gian hoặc bộ đếm ngoài 8

bit

4 Hoạt động port nối tiếp

4.1 Giới thiệu

AT89C51 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế độ

khác trên một dãy tần số rộng Chức năng chủ yếu của một port nối tiếp là thực

hiện chuyển đổi song song với dữ liệu nhập

Trang 20

Truy xuất phần cứng đến port nối tiếp qua các chân TXD và RXD Các chân

này có các chức năng khác với hai bit của port 3 P3.1 ở chân 11 (TXD) và

P3.0 ở chân 10 (RXD)

Port nối tiếp cho hoạt động song công (full duplex: thu và phát đồng thời)

và đệm lúc thu cho phép một ký tự sẽ được thu và được giữ trong khi ký tự thư

hai được nhận Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ hai được thu

đầy đủ thì dữ liệu sẽ không bị mất Hai thanh ghi chức năng đặc biệt cho phép

phần mềm truy xuất đến port nối tiếp là: SBUF và SCON Bộ đếm port nối

tiếp (SBUF) ở địa chỉ 99H thật sự là hai bộ đếm Viết vào SBUF để truy xuất

dữ liệu thu được Đây là hai thanh ghi riêng biệt thanh ghi chỉ ghi để phát và

thanh ghi để thu

Sơ đồ bus nối tiếp

Thanh ghi điều khiển port nối tiếp (SCON) ở địa chỉ 98H là thanh ghi có

địa chỉ bit chứa các bit trạng thái và các bit điều khiển Các bit điều khiển đặt

chế độ hoạt động cho port nối tiếp, và các bit trạng thái báo cáo kết thúc việc

phát hoặc thu ký tự Các bit trạng thái có thể được kiểm tra bằng phần mềm

hoặc có thể được lập trình để tạo ngắt

Tần số làm việc của port nối tiếp còn gọi là tốc độ baud có thể cố định (lấy

từ bộ dao động của chip) Nếu sử dụng tốc độ baud để thay đổi timer 1 sữ cung

cấp xung nhịp tốc độ baud và phải được lập trình

Trang 21

4.2 Thanh ghi điều khiển port nối tiếp

Chế độ hoạt động của port nối tiếp được đặt bằng cách chi vào thanh ghi chế

độ port nối tiếp (SCON) ở địa chỉ 98H Sau đây các bảng tóm tắt thanh ghi và

chế độ của port nối tiếp

Bit Ký hiệu địa chỉ Mô tả

SCON.7 SM0 9FH Bit 0 của chế độ port nối tiếp

SCON.6 SM1 9EH Bit 1 của chế độ port nối tiếp

SCON.5 SM2 9DH Bit 2 của chế độ port nối tiếp cho

phép truyền thông tin đã xử lý trong các chế độ 2 và 3; RI sẽ không bị tác động nếu bit thứ 9 thu được là 0 SCON.4 REN 9CH Cho phép bộ thu phải đặt lên 1 để

thu (nhận) các ký tự SCON.3 TB8 9BH Bit 8 phát, bit thứ 9 được phát các

chế độ 2 và 3; được đặt và xoá bằng phần mềm

SCON.2 RB8 9AH Bit 8 thu, bit thứ 9 thu

SCON.2 T1 99H Cờ ngắt phát Đặt lên 1 khi kết thúc

phát ký tự ; được xoá bằng phần mềm

SCON.0 R1 98H Cờ ngắt thu Đặt lên 1 khi kết thúc

thu ký tự; được xoá bằng phần mềm

Tóm tắt thanh ghi chế độ port nối tiếp SCON.

Trang 22

Các chế độ port nối tiếp

Trước khi sử dụng port nối, phải khởi động SCON cho đúng chế độ Ví dụ

Ngắt là hoạt động ngừng tạm thời một chương trình này để thi hành một

chương trình khác Các ngắt có một vai trò quan trọng trong thiết kế và khả

năng thực thi của vi điều khiển Chúng cho phép hệ thống đáp ứng không cùng

lúc tới một công việc và giải quyết một công việc đó trong khi một chương

trình khác đang thực thi

Một hệ thống được điều khiển bằng ngắt cho ảo giác là làm nhiều việc

đồng thời Dĩ nhiên CPU mỗi lần không thể thực thi một chương trình để

thực thi một chương trình khác, rồi quay về chương trình ban đầu Khi có yêu

cầu ngắt Chương trình giải quyết ngắt được gọi là chương trình phục vụ ngắt

(ISR: Interrup Sevice Reutine)

5.1 Tổ chức ngắt

Ở AT89C51 có 5 nguồn ngắt:- 2 ngắt ngoài

- 2 ngắt timer

- 1 ngắt port nối tiếp

Tất cả các ngắt sẽ không được đặt sau khi reset hệ thống và cho phép ngắt

riêng rẽ bởi phần mềm

a Cho phép và không cho phép ngắt.

Mỗi nguồn ngắt được cho phép hoặc không cho phép từng ngắt một qua

thanh ghi chức năng đặc biệt cố định địa chỉ bit IE (Intereup Enable: cho phép

ngắt ở địa chỉ A8H Cũng như các bit cho phép mỗi nguồn ngắt, có một bit cho

phép hoặc cấm toàn bộ được xoá để cấm tất cả ngắt hoặc được đặt lên 1 để cho

phép tất cả các ngắt

Bit Ký hiệu địa chỉ Mô tả (1 = cho phép, 0 = cấm)

Ngày đăng: 11/04/2014, 16:14

HÌNH ẢNH LIÊN QUAN

Hình 1.2 – 128 byte thấp của RAM nội - thiết kế và xây dựng mô hình Điều khiển đèn giao thông
Hình 1.2 – 128 byte thấp của RAM nội (Trang 12)
Sơ đồ bus nối tiếp - thiết kế và xây dựng mô hình Điều khiển đèn giao thông
Sơ đồ bus nối tiếp (Trang 20)
Hình  số  8,  mỗi  thanh  là  một  diode  (  LED  )  phát  quang  hoặc  hiển  thị  tinh  thể - thiết kế và xây dựng mô hình Điều khiển đèn giao thông
nh số 8, mỗi thanh là một diode ( LED ) phát quang hoặc hiển thị tinh thể (Trang 29)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w