1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo chuyên đề ''''vi điều khiển''''

21 525 0

Đ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 21
Dung lượng 429,97 KB

Nội dung

Lời nói đầuNgày nay cùng với sự phát triển của các ngành khoa học kĩ thuật, mà kĩ thuật điện tử đóng vai trò quan trọng hầu hết các lĩnh vực khoa học kĩ thuật , quản lý, công nghiệp tự đ

Trang 1

Báo cáo chuyên đề "Vi điều khiển"

Trang 2

Lời nói đầu

Ngày nay cùng với sự phát triển của các ngành khoa học kĩ thuật, mà kĩ thuật điện tử đóng vai trò quan trọng hầu hết các lĩnh vực khoa học kĩ thuật , quản lý, công nghiệp tự động hóa , thong tin liên lạc…vv do đó là những sinh viên ngành điện tử thế hệ tương lai của đát nước cần phải nắm vững các kiến thức và vận dụng một cách có hiệu quả nhằm góp phần vào sự phát triển của khoa học kĩ thuật nước nhà rộng hơn là khoa học thế giới trong ngành điện tử.trong phạm vi lần này chúng em được giao đề tài :”ghép nối hai vi điều khiển 89S52 hiển thị trên màn hiển thị LCD 16x2” đây chỉ là ứng dụng nhỏ của môn học vi điều khiển nhưng qua quá trình thiết kế và thi công đề tài này thì chúng em

đã rút ra được rất nhiều kinh nghiệm thực tiễn quý báu cho bẩn thân Mục đích của đề tài

là tạo cho học sinh chúng em làm quen với họ vi điều khiển 8051.cụ thể ở đây là IC AT89S52.từ đó lập trình cho vi điều khiển của các IC khác.Từ thử nghiệm của những ứng dụng về họ VĐK 8051 đơn giản và gần gũi trên sách VĐK họ 8051,một số sách tham khảo cùng một vài trang web về chuyên ngành điện tử Chúng em đã tìm tòi nhiều ứng dụng khác và phát triển ứng dụng đó vào đời sống hằng ngày cần thiết.

Mặc dù có nhiều cố gắng để hoàn thành xong đồ án môn học bằng kiến thức dã được học

và một số tài liệu khác nhưng cũng không tránh khỏi những thiếu xót Do vậy chúng

em ,những người thực hiện đề tài rất mong nhận được sự đóng góp của quý thầy cô và các bạn để đề tài lần sau được hoàn thiện hơn Cuối cùng chúng em xin chân thành cảm

ơn quý thầy cô và các bạn.

Trang 3

Phần 1 : tìm hiểu cơ bản về linh kiện quan trọng sử dụng trong mạch (IC AT89S52 và module LCD 16x2)

Trang 4

• Cấu tạo IC 89S52 có

1 > CPU (CPU central processing unit ):

+ 8_bit data bus ; 16_bit address bus ; không gian địa chỉ 64kbyte

+ Thanh ghi tích lũy A :

+ Thanh ghi tích lũy phụ B :

+ Đơn vị logic học(ALU) :

+ Thanh ghi từ trạng thái chương trình :

+ Bốn băng thanh ghi :

+ Con trỏ ngăn xếp :

2 > bộ nhớ (Memory) :

+ Bộ nhớ chương trình (Rom) gồm 8Kbyte Flash , ghi xóa hàng nghìn lần

Trang 5

+ Bộ nhớ dữ liệu (dạng SRAM) gồm 256 byte (chứa ngăn xếp – Stack)

+ Vùng thanh ghi có chức năng đặc biệt SFR (Special Funtion Register)

+ Bộ UART có chức năng truyền nhận nối tiếp

Cổng nối tiếp trong 8051 chủ yếu được dùng trong các ứng dụng có yêu cầu truyền thông với máy tính, hoặc với một vi điều khiển khác Liên quan đến cổng nối tiếp chủ yếu có 2 thanh ghi: SCON và SBUF Ngoài ra, một thanh ghi khác là thanh ghi PCON (không đánh địa chỉ bit) có bit 7 tên là SMOD quy định tốc độ truyền của cổng nối tiếp có gấp đôi lên (SMOD = 1) hay không (SMOD = 0)

Dữ liệu được truyền nhận nối tiếp thông qua hai chân cổng P3.0(RxD) và

P3.1(TxD)

Thanh ghi SBUF là thanh ghi 8bit chứa dữ liệu truyền hoặc nhận Về thực

chất có hai thanh ghi dữ liệu khác nhau, một dành để chứa dữ liệu truyền đi, một

để chứa d ữ liệu nhận được Cả hai thanh ghi này đều có chung một tên là SBUF,tuy nhiên CPU hoàn toàn phân biệt được một cách dễ dàng Khi ta muốn truyền dữ liệu

đi, ta phải ghi vào thanh ghi SBUF (ví dụ viết lệnh mov SBUF,a), còn khi muốn đọc kiểm

tra dữ liệu nhận về ta phải đọc thanh ghi SBUF (ví dụ viết lệnh

mov a,SBUF) CPU sẽ căn cứ vào việc thanh ghi SBUF nằm ở vị trí toán hạng

Trang 6

đích (toán hạng bên trái) hay toán hạng nguồn (toán hạng bên phải) để quyết

định sẽ truy nhập ( đọc/ghi) thanh ghi SBUF nào Người l ập trình không cần phải

quan tâm xử lý vấn đề này

Thanh ghi quy định chế độ hoạt động và điều khiển cổng nối tiếp là thanh ghi

SCON (đánh địa chỉ bit)

Bit SM0, SM1, SM2 quy định chế độ hoạt động của cổng nối tiếp Thông thường

để tr uyền thông giữa 2 vi điều khiển hoặc giữa 1 vi điều khiển và 1 máy tính, giá

trị của bit SM2 được đặt bằng 0 Khi truyền thông theo kiểu mạng đa vi

xử lý(multiprocessor communication), SM2 được đặt bằng 1 Hai bit SM0 và SM1 thực

sự là các bit quy định chế độ hoạt động của cổng nối tiếp, chúng tạo ra 4

tổ hợp(00,01,10 và 11)ứng với 4 chế độ hoạt động mô tả trong bảng sau

SM0 SM1 Chế độ Khung dữ liệu Baud rate

0 0 0 -Đồng bộ 8 bit SBUF Fosc/12

0 1 1 - D ị b ộ 8 bit SBUF Thay đổi được

1 0 2 - D ị b ộ 8bit

SBUF- RB8/TB8

Fosc/32hoặcFosc/64

1 1 3 - D ị b ộ 8bit

SBUF-RB8/TB8

Thay đổi được

Chế độ 0: là chế độ truyền đồng bộ duy nhất Chân RxD sẽ là tín hiệu

truyền/nhận dữ liệu, chân TxD là tín hiệu xung nhịp Bit LSB (bit 0) của dữ liệu

được truyền đi trước tiên Tốc độ truyền cố định và bằng 1/12 giá trị thạch anh

Chế độ 1: là chế độ truyền dị bộ 8 bit Dữ liệu 8 bit được đóng khung bởi một bit

Start (= 0) ở đầu và một bit Stop (=1)ở cuối trước khi được truyền đi Tốc độ

truyền thay đổi được theo ý người lập trình

Chế độ 2: là chế độ truyền dị bộ 9 bit Dữ liệu 9 bit được ghép thành bởi 8bit

trong thanh ghi SBUF và bit RB8 (trường hợp nhận về) hoặc TB8 (trường hợp truyền đi) trong thanh ghi SCON Ngoài ra các bit Start và Stop vẫn được gắn bình ở đầu và cuối khung truyền Trong chế độ này, tốc độ truyền chỉ có thể chọn

được ở 1 trong 2 mức: 1/32 hoặc 1/64 giá trị của thạch anh (tùy thuộc vào giá trị

của bit SMOD trong thanh ghi PCON đã nói ở trên)

Chế độ 3: cũng là chế độ truyền dị bộ 9 bit, khác với chế độ 2 ở chỗ tốc độ truyền

có thể thay đổi được theo ý người lập trình như trong chế độ 1

Bit REN trong thanh ghi SCON là bit cho phép nhận dữ liệu Dữ liệu chỉ được

nhận qua cổng nối tiếp khi bit này = 1

BitTB8 là bit dữ liệu thứ 9 trong trường hợp truyền đi 9 bit (8 bit kia trong thanh

ghi SBUF)

BitRB 8 là bit dữ liệu thứ 9 trong trường hợp nhận về 9 bit (8 bit kia trong thanh

Trang 7

ghi SBUF).

Bit TI là cờ ngắt truyền, báo hiệu việc truyền 1 khung dữ liệu đã hoàn tất.

Bit RI là cờ ngắt nhận, báo hiệu việc nhận 1 khung dữ liệuđã hoàn tất.

Để tạo ra tốc độ tr uyền (Baud rate) của c ổng nối tiếp trong 8051, phải

Dùng đến timer1 ở chế độ Auto Reload 8bit Giá trị nạp lại chứa trong thanh ghi TH1 được tính toán theo công thức sau (phụ thuộc vào Baud rate mong muốn và giá trị của thạch anh)

Tóm lại để sử dụng cổng nối tiếp của 8051, hãy thực hiện các bước sau:

-Chọn chế độ cho cổng nối tiếp (đồng bộ/dị bộ, 8bit/9bit ), từ đ ó chọn

được giá trị cho các bit trong thanh ghi SCON Lưu ý xóa các bit TI và RI

-Chọn tốcđộ truyền mong muốn, từ đ ó tính ra giá trị của thanh ghi TH1

Cho timer1 chạy ở chế độ Auto Reload 8bit (không dùng ngắt tràn timer1)

-Đặt mức ưu tiên ngắt và cho phép ngắt cổng nối tiếp nếu muốn

-Bắt đầu quá trình truyền dữ liệu bằng một lệnh ghi dữ liệu muốn truyền vào thanh ghi SBUF Quá trình truyền kết thúc thì cờ TI sẽ tự động đặt lên 1

-Khi một khung dữ liệu đã được nhận đầy đủ, cờ RI sẽ tự động đặt lên 1 và người lập trình lúc này có thể dùng lệnh đọc thanh ghi SBUFđể lấy dữ liệu nhận được ra xử lý

+ 3 bộ nhớ timer/counter 16 bit thức hiện chức năng định thời và đếm sự kiện

+ Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong có 6 trang thái ngắtTên ngắt Nguyên nhân gây ra ngắt Địa chỉ

vector ngắt

Mức độ

ưu tiên

Cờ báo ngắt

Ngắt ngoài 0 Tín hiệu INTO thay đổi mức

logic 10,hoặc oqr mức logic 0

0x0003 1 IE0(TCON)

Ngắt

timer/counter0

timer/counter 0 đếm tràn trên

0x000B 2 TF0(TCON)Ngắt ngoài 1 Tín hiệu INT1 thay đổi mức

logic 10,hoặc oqr mức logic 0

0x0013 3 IE1(TCON)

Ngắt

timer/counter1

timer/counter 1 đếm tràn trên

0x001B 4 TF1(TCON)Ngắt cổng nối

0x002B 6 TX2,EXF2(T2CON)

Các cờ báo ngắt do INT1, INT0, Timer 0, Timer 1 bi xóa khi CPU xử lý chương trình ngắt còn cờ ngắt của cổng nối tiếp và ngắt do Timer 2 không tự động xóa, mà người dung phải xóa bằng phần mềm

+ bộ lập trình ( ghi chương trình lên Flash ROM ) cho phép người sử dụng có thể nạp các chương trình cho chip mà không cần các bộ nạp chuyên dụng

+ Bộ chia tần số với hệ số chia là 12

+ 4 cổng xuất nhập song song với 32 chân

Trang 8

8051 có 4 cổng vào ra song song, có tên lần lượt là P0, P1, P2 và P3 Tất cả các cổng này đều là cổng vào ra hai chiều 8bit Các bit của mỗi cổng là một chân trên chip, như vậy mỗi cổng sẽ có 8 chân trên chip.

Hướng dữ liệu (dùng cổng đó làm cổng ra hay cổng vào) là độc lập giữa các cổng

và giữa các chân (các bit) trong cùng một cổng Ví dụ, ta có thể định nghĩa cổng P0 là cổng ra, P1 là cổng vào hoặc ngược lại một cách tùy ý, với cả 2cổng P2 và P3 còn lại cũng vậy Trong cùng một cổng P0, ta cũng có thể định nghĩa chân P0.0 là cổng vào, P0.1 lại là cổng ra tùy ý

Liên quan đến mỗi cổng vào/ra song song của 8051 chỉ có một thanh ghi SFR ( thanh ghi chức năngđặc biệt) có tên trùng với tên của cổng Ta có các thanh ghi P0 dùng cho cổng P0, thanh ghi P1 dùng cho cổng P1 …Đây là các thanh ghi đánh địa chỉ đến từng bit (bit addressable), do đó ta có thể dùng các lệnh tác động bit đối với các bit của các thanh ghi này Mỗi thanh ghi này gồm 8bit tương ứng với các chân (bit) của cổng đó Khi một chân (bit) cổng nào đó

được dùng làm cổng vào thì trước đó bit tương ứng trong thanh ghi SFR phải

được đặt ởmức 1 Nếu m ột chân (bit) cổng nào đó được dùng làm cổng ra thì

giá trị của bit tương ứng trong thanh ghi SFR sẽ là giá trị lôgic muốn đưa ra chân cổng

đó Nếu muốn đưa ra mức lôgic cao (điện áp gần 5V), bit tương ứng trongthanh ghi phảiđượcđặt bằng 1, hiển nhiên nếu muốnđưa ra mức lôgic thấp(điện áp gần 0V) thì bit tương ứng trong thanh ghi phải được đặt bằng 0 Như nói ở trên, các bit trong thanh ghi cổng có thể được đặt bằng 1/0 mà không làmảnh hưởng đến các bit còn lại trong cổng đó

Trang 9

Chức năng của PORT 1 là xuất nhập và có thể xuất nhập theo bit và theo byte

 PORT 2 (P2.0=>P2.7) :

PORT 2 ngoài chức năng vào/ ra như PORT 0 và PORT 1 còn là byte cao của bus địa chỉ khi sử dụng bộ nhớ ngoài

 PORT 3

Trang 10

Mỗi chân trên PORT 3 ngoài chức năng xuất ngập còn có một chức năng riêng, cụ thể như sau :

P3.0 RXD Dữ liệu nhận cho port nối tiếp

P3.1 TXD Dữ liệu truyền cho port nối tiếp

P3.4 TO Ngõ vào của timer/counter 0

P3.5 T1 Ngõ vào của timer/counter 1

P3.6 /WR Xung ghi bộ nhớ dữ liệu ngoài

P3.7 /RD Xung đọc bộ nhớ dữ liệu ngoài

Chân /PSEN : là chân điều khiển đọc chương trình ở bộ nhớ ngoài

Chân ALE : ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao

động của vi điều khiển tín hiệu AlE được dùng để cho phép vi mạch chốt bên ngoài như 7473

Chân /EA : tín hiệu EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay

ngoài khi EA =1 thì thực hiện chương trình trong RAM nội khi EA =0 thì thực hiện chương trình ở RAM ngoài

Chân RST (reset)

Ngõ vào reset trên chân 9 khi RST = 1 thì bộ vi điều khiển sẽ được khởi động

để thiết lập trạng thái ban đầu

Chân XTAL 1 và XTAL 2 :

2 chân này được nối song song với thạch anh với tần số lớn nhất bằng 33Mhz để tạo dao động cho bộ vi điều khiển

Chân VCC, GND : là chân cung cấp nguồn nuôi cho vi điều khiển dương nguồn 5V

được cấp vào chân 40 chân 20 nối mass,

Trang 11

 Một mạch sử dụng VĐK 89S52 đơn giản

 Phần cứng tối thiểu để chip AT 89S52 có thể hoạt đông được gồm 4 yếu tố sau:

 Nguồn cung cấp cho IC vào chân 20 và 40 (Vcc=5V)

 Mạch RESET nối vào chân 9 của IC

 Mạch dao động thạch anh (chân 18 và 19)

 Trạng thái của chân EA( chân 3.1) Chức năng của CPU là tiến hành các thao tác tính toán sử lý, đưa ra các tín hiệu địa chỉ , dữ liệu và điều khiển nhằm thực hiện một nhiệm vụ nào đó do người lập trình đưa ra thong qua các lệnh

2>Khối tạo xung( tạo dao động):

Trang 12

+ AT89S52 có một bộ chia tần số bên trong chip, bộ này sẽ cung cấp xung clock cho các khối trong chip từ nguồn dao động bên ngoài sử dụng mạch tạo dao động từ thạch anh qua 2 chân

4>Khối hiển thị (LCD 16x2) :

Sử dụng module LCD 16x2 , trong đó các chân tạo tín hiệu điều khiển , RS, RW, EN_LCD trong mạch sư dụng PORT 1 của vi điều khiển Các chân thuộc PORT 2 thì được nối với bus

Trang 13

dữ liệu của LCD ( từ chân 7 => chân 14) hai chân 15,16 được nối với mass và dương nguồn tạo độ tương phản ( tuy nhiên nếu không nối thì ta vẫn có thể nhìn được kí tự trên LCD nhưng nếu nối thì ta có thể nhìn được cá khi không có ánh sáng ban ngày )

Hình ảnh LCD 16x2 thực tế :

Ký hiệu và chức năng các chân của LCD 16x2 hiển thị :

Chân số Kí hiệu Mức logic I/O Chức năng

1 Vss - - Nguồn cung cấp (GND)

2 Vcc - - Nguồn cung cấp (+5V)

3 Vee - I Điện áp và điều chỉnh độ tương

phản

4 RS 0/1 I Lựa chọn thanh ghi

0= thanh ghi lên1= thanh ghi dữ liệu

5 R/W 0/1 I 0= ghi vào LCD module

6 E 1,1 ->0 I Tín hiệu cho phép

7 DBO 0/1 I/0 Data bus line 0 ( LSB)

8 DB1 0/1 I/0 Data bus line 1

9 DB2 0/1 I/0 Data bus line 2

10 DB3 0/1 I/0 Data bus line 3

11 DB4 0/1 I/0 Data bus line 4

12 DB5 0/1 I/0 Data bus line 5

13 DB6 0/1 I/0 Data bus line 6

14 DB7 0/1 I/0 Data bus line 7

Trang 14

Nguyên lý hoạt động của mạch.

Trang 19

chuoi("LOP:CDDT05-K10"); while(1)

Trang 20

Hoàn Thành Mạch :

+ mạch in :

 Tài liệu tham khảo :

1 > VI ĐIỀU KHIỂN cấu trúc_ lập trình và ứng dụng (Kiều Xuân Thực )

Ngày đăng: 28/06/2014, 02:21

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w