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

Đề tài 11 Design and develope an embedded computer

44 802 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 44
Dung lượng 805,81 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Việc ứng dụng lập chương trình cho các vi điều khiển Micro controller bên trong các thiết bị điện tử, điện tử dân dụng, công nghiệp cho việc hoạt động tự động các máy móc và thiết bị đã

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA QUỐC TẾ VÀ SAU ĐẠI HỌC



Đề tài 11

Design and develope an embedded computer

Giảng Viên hướng dẫn: Tiến sĩ Phạm Văn Cường

Học viên: Đỗ Trường Giang

Hà Trường Giang Nguyễn Văn Thái

Hà Nội, Tháng 12 Năm 2014

Trang 2

Tài liệu tham khảo

[1] : Bài giảng Kiến Trúc Máy Tính tiến sĩ Phạm Văn

Cường (Học viện công nghệ bưu chính viễn thông)

[2] : Bài giảng Kiến Trúc Máy Tính Tiến sĩ Hoàng Xuân Dậu(Học viện bưu chính viễn thông)

[3 ] : Giáo trình kiến trúc máy tính và vi xử lý GS.TSKH Nguyễn Ngọc Thành (Đại học Bách Khoa Wroclaw Ba Lan)

[4] : Giáo trình Nguyễn Nam Trung Cấu trúc máy Vi tính

và Thiết bị ngoại vi Nhà XB Khoa học Kỹ thuật.2000.

[5] : Đặng Thành Phu Turbo Assembler và Ứng dụng Nhà

XB Khoa học và Kỹ thuật 1998.

[6] Bài tiểu luận có sử dụng một số tài liệu từ internet

A GIỚI THIỆU

Ngày nay với sự phát triên mạnh mẽ của tự động hóa Việc

ứng dụng lập chương trình cho các vi điều khiển (Micro controller)

bên trong các thiết bị điện tử, điện tử dân dụng, công nghiệp cho việc hoạt động tự động các máy móc và thiết bị đã ngày trở nên rất cấp thiết và là thành phần không thể thiếu đối với các hệ thống hoạt động thông minh

Bộ vi điều khiển, 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 hoạt động của một hệ thống Theo các tập lệnh của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo thời gian và tiến hành đóng mở một

cơ cấu nào đó

Để làm sáng tỏ việc vi điều khiển hoạt động điều khiển các thiết bị khác thế nào, chương trình viết và nạp vào nó ra sao, thì trong giới hạn bài tiểu luận này chúng em ứng dụng việc viết

chương trình ASM cho vi điều khiển nhằm điều khiển hệ thống đèn LED hoạt động theo một chương trình được lập trình cụ thể theo ý muốn của nhóm

B NỘI DUNG

I Tìm hiểu Vi điều khiển AT89S52:

1 Thông tin chung về sản phẩm:

Họ vi điều khiển 8 bit

Trang 3

Tần số hoạt động : 33 Mhz

Bộ nhớ :8 Kb Flash, 256 Bytes SRAM

Timer/Counter : 3 bộ 16 bit

Giao diện kết nối : USART

Lập trình qua giao diện ISP

cả lệnh nhân và lệnh chia Nó cung cấp những hổ trợ mở rộng trên chip dùng cho những biến một bit như là kiểu dữ liệu riêng biệt cho phép quản lý và kiểm tra bit trực tiếp trong hệ thống điều khiển

AT89S52 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớchỉ đọc có thể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32đường I/O, 3 TIMER/COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp bán song công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP

Các đặc điểm của chip AT89S52 được tóm tắt như sau:

 8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xoá

 Tần số hoạt động từ: 0Hz đến 24 MHz

 3 mức khóa bộ nhớ lập trình

 3 bộ Timer/counter 16 Bit

 128 Byte RAM nội

 4 Port xuất /nhập I/O 8 bit

 Giao tiếp nối tiếp

 64 KB vùng nhớ mã ngoài

 64 KB vùng nhớ dữ liệu ngoại

Trang 4

 4 s cho hoạt động nhân hoặc chia

Sơ đồ khối của AT89S52

Trang 5

nhau, chẳng hạn như hai hàng

chân DIP (Dual In-Line

Pakage), dạng vỏ dẹt vuông

QPF (Quad Flat Pakage) và

dạng chip không có chân đỡ

LLC (Leadless Chip Carrier)

thì chúng đều có 40 chân cho

các chức năng khác nhau như

vào ra I/O, đọc RD, ghi WR,

3.1 Chức năng của các chân 89S52

Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7) Port 0 có 2 chức năng:

trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO, đối với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu

Port 1: từ chân 1 đến chân 9 (P1.0 _ P1.7) Port 1 là port IO dùng

cho giao tiếp với thiết bị bên ngoài nếu cần

Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7) Port 2 là một port có

tác dụng kép dùng như các đường xuất/nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng

Port 3: từ chân 10 đến chân 17 (P3.0 _ P3.7) Port 3 là port có tác

dụng kép Các chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến các đặc tính đặc biệt của 89S52 như ở bảng sau:

Trang 6

Bit Tên Chức năng chuyển đổi

Ngõ vào dữ liệu nối tiếp

Ngõ xuất dữ liệu nối tiếp

PSEN (Program store enable):

PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình

mở rộng và thường được nối đến chân OE của Eprom cho phép đọc các byte

mã lệnh

PSEN ở mức thấp trong thời gian 89S52 lấy lệnh Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong 89S52 để giải mã lệnh Khi 89S52 thi hànhchương trình trong ROM nội, PSEN ở mức cao

ALE (Address Latch Enable):

Khi 89S52 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và dữ liệu do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt.Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động

EA (External Access): Tín hiệu vào EA (chân 31) thường được mắc

lên mức 1 hoặc mức 0 Nếu ở mức 1, 89S52 thi hành chương trình

từ ROM nội Nếu ở mức 0, 89S52 thi hành chương trình từ bộ nhớ

Trang 7

mở rộng Chân EA được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 89S52.

RST (Reset): Khi ngõ vào tín hiệu này

đưa lên mức cao ít nhất 2 chu kỳ máy, các

thanh ghi bên trong được nạp những giá

trị thích hợp để khởi động hệ thống Khi

cấp điện mạch phải tự động reset

Các giá trị tụ và điện trở được chọn là:

R1=10, R2=220, C=10 F

Các ngõ vào bộ dao động X1, X2:

Bộ tạo dao động được tích hợp bên

trong 89S52 Khi sử dụng 89S52,

người ta chỉ cần nối thêm thạch anh

và các tụ Tần số thạch anh tùy thuộc

vào mục đích của người sử dụng, giá

trị tụ thường được chọn là 33p

3.2 Tổ chức bộ nhớ bên trong AT89S52

Bộ nhớ trong 89S52 bao gồm ROM và RAM RAM trong 89S52 bao gồm nhiều thành phần: 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 và các thanh ghi chức năng đặc biệt

AT89S52 có bộ nhớ được tổ chức theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu Chương trình

và dữ liệu có thể chứa bên trong 89S52 nhưng 89S52 vẫn có thể kết nối với 64K byte bộ nhớ chương trình và 64K byte dữ liệu bên ngoài

RAM bên trong AT89S52 đượ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

Trang 8

a RAM có thể định địa chỉ bit

Vùng địa chỉ từ 20h -2Fh gồm 16 byte có thể thực hiện như vùng RAM đa dụng (truy xuât mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằng các lệnh xử lý bit

b Các bank thanh ghi

Vùng địa chỉ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ00h – 07h, bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h – 1Fh Các bank thanh ghi này được đại diện bằng các thanh ghi từ R0 đến R7 Sau khi khởi động thì hệ thống bank 0 được chọn

sử dụng

Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanhghi được truy xuất bởi các thanh ghi R0 đến R7 Viêc thay đổi bank thanh ghi được thực hiện thông qua thanh ghi từ trạng thái chương trình (PSW)

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

Các thanh ghi trong 89S52 được định dạng như một phần của RAM trên chip vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi

bộ đếm chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp) Cũng như R0 đến R7, 89S52 có 21 thanh ghi có chức năng đặc biệt (SFR: Special Function Register) ở vùng trên của RAM nội từ địa chỉ 80H đến 0FFH

Sau đây là một vài thanh ghi đặc biệt thường được sử dụng:

d Thanh ghi trạng thái chương trình (PSW: Program Status Word)

L

ADDRES S

DESCRIPTION

PSW.7 CY D7H Cary Flag

PSW.6 AC D6H Auxiliary Cary Flag

PSW.5 F0 D5H Flag 0

PSW4 RS1 D4H Register Bank Select 1

PSW.3 RS0 D3H Register Bank Select 0

00=Bank 0; address 00H07H01=Bank 1; address 08H0FH10=Bank 2; address 10H17H11=Bank 3; address 18H1FH

Trang 9

PSW.2 OV D2H Overlow Flag

PSW.1 - D1H Reserved

PSW.0 P DOH Even Parity Flag

e Chức năng từng bit trạng thái chương trình

- Cờ Carry CY (Carry Flag):Cờ nhớ thường nó được dùng cho

các lệnh toán học: C =1 nếu phép toán cộng có sự tràn hoặc phép trừ có mượn và ngược lại C = 0 nếu phép toán cộng không tràn và phép trừ không có mượn

- Cờ Carry phụ AC (Auxiliary Carry Flag): Khi cộng những

giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC được set nếu kết quả 4 bit thấp nằm trong phạm vi điều khiển 0AH - 0FH Ngược lại AC = 0

- Cờ 0 (Flag 0):

Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của

người dùng

- Những bit chọn bank thanh ghi truy xuất:

RS1 và RS0 quyết định dãy thanh ghi tích cực Chúng được xóa saukhi reset hệ thống và được thay đổi bởi phần mềm khi cần thiết.Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn Bank tích cực tương ứng là Bank 0, Bank1, Bank2 và Bank3

Trang 10

bit Parity luôn luôn chẵn Ví dụ A chứa 10101101B thì bit P set lên một để tổng số bit 1 trong A và P tạo thành số chẵn.

Bit Parity thường được dùng trong sự kết hợp với những thủ tục của Port nối tiếp để tạo ra bit Parity trước khi phát đi hoặc kiểm

tra bit Parity sau khi thu.

3.2.2 Thanh ghi TIMER

Vi Điều Khiển 89S52 có 3 timer 16 bit, mỗi timer có bốn cách làm việc Người ta sử dụng các timer để:

o Định khoảng thời gian

o Đếm sự kiện.

o Tạo tốc độ baud cho port nối tiếp trong 89S52

Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những khoảng đều đặn và đặt cờ tràn timer Cờ được dùng

để đồng bộ hóa chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra các ngõ ra Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer

để đo thời gian trôi qua giữa hai sự kiện (ví dụ đo độ rộng xung)

3.2.3 Thanh ghi ngắt (INTERRUPT)

Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác

Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều khiển Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết sự kiện đó trong khi một chương trình khác đang thực thi

Trang 11

Bit Ký

hiệu

Địa chỉ bit Mô tả

IP.7 _ _ Không được mô tả

IP.6 _ _ Không được mô tả

IP.5 ET2 BDH Chọn mức ưu tiên cao (=1) hay thấp

(=0) tại timer 2IP.4 ES BCH Chọn mức ưu tiên cao (=1) hay thấp

(=0) tại cổng nối tiếp

IP.3 ET1 BBH Chọn mức ưu tiên cao (=1) hay thấp

(=0) tại timer 1IP.2 EX1 BAH Chọn mức ưu tiên cao (=1) hay thấp

(=0) tại ngắt ngoài 1IP.1 ET0 B9H Chọn mức ưu tiên cao (=1) hay thấp

(=0) tại timer 0IP.0 EX0 B8H Chọn mức ưu tiên cao (=1) hay thấp

(=0) tại ngắt ngoài 0

Tóm tắt thanh ghi IP

 Nếu 2 ngắt xảy ra đồng thời thì ngắt nào có nào có mức ưu tiên cao hơn sẽ được phục vụ trước

 Nếu 2 ngắt xảy ra đồng thời có cùng mức ưu tiên thì thứ tự

ưu tiên được thực hiện từ cao đến thấp như sau: ngắt ngoài 0 – timer

0 – ngắt ngoài 1 – timer 1 – cổng nối tiếp – timer 2

 Nếu chương trình của một ngắt có mức ưu tiên thấp đang

chạy mà có một ngắt xảy ra với mức ưu tiên cao hơn thì chương

trình này tạm dừng để chạy một chương trình khác có mức ưu tiên cao hơn

Cho phép và cấm ngắt:

Trang 12

Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặt biệt có định địa chỉ bit IE (Interrupt Enable: cho phép ngắt) ở địa chỉ A8H.

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

IE.7 EA AFH Cho phép / Cấm toàn bộ

IE.6 _ AEH Không được mô tả

IE.5 ET2 ADH Cho phép ngắt từ Timer 2 (8052)IE.4 ES ACH Cho phép ngắt port nối tiếp

IE.3 ET1 ABH Cho phép ngắt từ Timer 1

IE.2 EX1 AAH Cho phép ngắt ngoài 1

IE.1 ET0 A9H Cho phép ngắt từ Timer 0

IE.0 EX0 A8H Cho phép ngắt ngoài 0

Tóm tắt thanh ghi IE

- Các cờ ngắt :

Khi điều kiện ngắt xảy ra thì ứng với từng loại ngắt mà loại cờ

đó được đặt lên mức cao để xác nhận ngắt

Trang 13

Các loại cờ ngắt

- Các vectơ ngắt:

Khi chấp nhận ngắt, giá trị được nạp vào PC gọi là vector ngắt Nó

là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt, các vector ngắt được cho ở bảng sau :

II.Tìm hiểu IC 74HC595 .

1, Chức năng :

Trang 14

Là ic ghi dịch 8bit kết hợp chốt dữ liệu , đầu vào nối tiếp đầu

ra song song

Chức năng: Thường dùng trong các mạch quét led 7 , led

matrix …để tiết kiệm số chân VDK tối đa (3 chân) Có thể mở rộng

số chân vi điều khiển bao nhiêu tùy thích bằng việc mắc nối tiếp đầuvào dữ liệu các ic với nhau

2,Sơ đồ chân :

Giải thích ý nghĩa hoạt động của

một số chân quan trọng:

 Chân 14 : đầu vào dữ liệu

nối tiếp Tại 1 thời điểm

xung clock chỉ đưa vào được

âm tại chân chốt 12

 Chân 13 : Chân cho phép tích cực ở mức thấp (0) Khi ở mức cao, tất cả các đầu ra của 74595 trở về trạng thái cao trở,

không có đầu ra nào được cho phép

 Chân 9: Chân dữ liệu nối tiếp Nếu dùng nhiều 74595 mắc nốitiếp nhau thì chân này đưa vào đầu vào của con tiếp theo khi

đã dịch đủ 8bit

 Chân 11: Chân vào xung clock Khi có 1 xung clock tích cực

ở sườn dương(từ 0 lên 1) thì 1bit được dịch vào ic

 Chân 12 : xung clock chốt dữ liệu Khi có 1 xung clock tích cực ở sườn dương thì cho phép xuất dữ liệu trên các chân output lưu ý có thể xuất dữ liệu bất kỳ lúc nào bạn muốn ,ví

dụ đầu vào chân 14 dc 2 bit khi có xung clock ở chân 12 thì dữliệu sẽ ra ở chân Qa và Qb (chú ý chiều dịch dữ liệu từ

Qa=>Qh)

Trang 15

 Chân 10: khi chân này ở mức thấp(mức 0) thì dữ liệu sẽ bị xóatrên chip)

Sơ đồ hoạt động của chíp :

3, Bảng thông số chip:

Đây là ic đầu ra hoạt động ở 2 mức 0 &1 dòng ra tầm 35mA điện áp hoạt động <=7V Công suất trung bình 500m

Trang 16

Dựa vào bảng tính toán được các thông số khi thiết kế mạch

Trang 17

liệu này sẽ được dịch vào trong thanh ghi dịch (8-stage shift

register)

- Khi dịch đủ 8 bít và có 1 xung từ thấp lên cao trên chân RCK (chân 12) thì 8 bít dữ liệu sẽ được chốt vào thanh ghi chứa (8-bit storage register) Đồng thời 8 bít dữ liệu này vẫn tồn tại trong thanh ghi dịch

- Khi dữ liệu đã được chốt vào thanh ghi chứa mà chân G (chân 13)

ở mức thấp thì dữ liệu này sẽ được đẩy vào vùng đệm 3 trạng thái

và dữ liệu sẽ xuất hiện ở đầu ra song song QA…QHChân SCLR dùng để xóa thanh ghi dịch, nếu SCLR ở mức thấp, nội dung của thanh ghi dịch sẽ bị xóa

- Khi trong thanh ghi dịch đã đủ 8 bít mà đưa thêm vào bít thứ 9 thì bít đầu tiên sẽ bị đẩy ra đầu ra QH’ và bít thứ 9 sẽ nhảy vào thanh ghi dịch

Sơ đồ khối của mạch điều khiển

Trang 18

Mạch Nguồn.

Đầu vào là 9v, Đầu ra là 3v dùng để nuôi các led

Sơ đồ nối gữa 89c52 với 595

Trang 19

Các IC U1,U2,U3,U4 được mắc nối tiếp với nhau.

Chân nhận dữ liệu đầu vào DS được nối với cổng P2.0/A8

Chân Q7’ là chân dữ liệu đầu ra của U1 được nối với chân dữ liệu đầu ra của U2 và tiếp tục như vậy cho U3, U4

Các chân SH_CP của các U1,U2,U3,U4 cùng được nối vào

1 Tất cả các led đều mắc theo cấu hình ngược.

Một chân được nối với nguồn 3v

Chân còn lại nối với các chân đầu ra của mạch sử lý

- Khi chân đầu ra của mạch sử lý đưa ra điện áp 3V thì lúc này không có sự chênh áp giữa các chân của led nên led không sáng

- Khi các chân đầu ra của mạch sử lý đưa ra điện áp 0v thì lúc này có sự chênh áp giữa các chân nên Led sáng

2 Sơ đồ chi tiết:

Các chân đầu ra của U1,U2,U3,U4,

Gồm 32 chân, được nối với các Led từ D1-D32 là các Led thuộc vành ngoài ( Trái tim lớn)

Các chân t1 đến t8 của 89c52 được nối với các Led xếp thành hình chữ I

Các chân từ 10 đến 17 của 89c52 được nối với các Led xếp thànhhình chữ U

Các chân từ cc0 đến cc11 của 89c52 nối với các Led xếp thành hình trái tin nhỏ

Chương Trình điều khiển:

Dùng chương trình M-IDE Studio 5.1 làm phần mềm soạn thảo và biên dịch chương trình

- Chương trình:

Trang 20

CLR P2.2 ; mo chan ST xuat ra ngoai NOP

TAT -MOV R6,#5

LOOP:

MOV R7,#32

Ngày đăng: 12/04/2015, 14:12

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối của AT89S52 - Đề tài 11 Design and develope an embedded computer
Sơ đồ kh ối của AT89S52 (Trang 4)
Sơ đồ hoạt động của chíp : - Đề tài 11 Design and develope an embedded computer
Sơ đồ ho ạt động của chíp : (Trang 15)
Sơ đồ khối của mạch điều khiển. - Đề tài 11 Design and develope an embedded computer
Sơ đồ kh ối của mạch điều khiển (Trang 17)
Sơ đồ nối gữa 89c52 với 595 - Đề tài 11 Design and develope an embedded computer
Sơ đồ n ối gữa 89c52 với 595 (Trang 18)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w