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

Thiết kế mạch nạp vi Điều khiển và Ứng dụng vi Điều khiển làm Đồng hồ báo thức

124 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Thiết kế mạch nạp vi điều khiển và ứng dụng vi điều khiển làm đồng hồ báo thức
Tác giả Phan Quang Thinh
Người hướng dẫn Trần Thanh Mai
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Điện - Điện Tử
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2003
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 124
Dung lượng 12,15 MB

Nội dung

den tte Chủ ý tất cả 128 địa chỉ từ 80H đến FFH không được xác định, chỉ có 21 thanh ghỉ có ch nàng đặc biệt được xác định các địa Ngoại trừ thanh ghỉ A có thể đước truy xuất ngắm như

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRUONG DAI HOC SU’ PHAM KY THUAT

THÀNH PHÓ HÒ CHÍ MINH

HGMUIIE

ĐỎ ÁN TÓT NGHIỆP NGÀNH LUẬN VĂN TÓT NGHIỆP

THIET KE MACH NAP VI DIEU KHIEN

VA UNG DUNG VI DIEU KHIEN LAM DONG HO BAO THU’C

GVHD: TRAN THANH MAI SVTH: PHAN QUANG THINH

1

TP H6 Chi Minh, thang 02/2003

Qa `

SKLOO12 2 >

Trang 2

PHANA GIỚI THIỆU

SS

Trang 3

| THIẾT KẾ MẠCH NẠP VI ĐIỀU KHIỂN VÀ ỨNG

DỤNG VI ĐIỀU KHIỂN LÀM ĐỒNG HỒ BÁO

THỨC

GVHD: TRAN THANH MAI

§VTH: PHAN QUANG THỊNH MSSV: 98101261

TP HO CHi MINH , THANG 02 - 2003

es

PHAN A :GIỚI THIỆU

Trang 4

BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRUONG DAI HOC SU PHAM KỸ THUẬT ĐỘC LẬP - TỰ DO~ HẠNH PHÚC

L Tên đề di THIẾT KẾ MẠCH NẠP VỊ ĐIỂU KHIỂN VÀ ỨNG DỤNG VI

ĐIÊU KHIỂN LÀM ĐỒNG HỒ BÁO THỨC

3.Các số liệu ban đầu :

5 Cán bộ hướng dẫn : TRẦN THANH MAI ‘Thong qua bộ môn

6 Ngày giao nhiệm vụ: Ngày .0 tháng 42 năm 2003⁄2_

7 Ngày hoàn thành nhiệm vụ so Chủ nhiệm bộ môn

PHAN A :GIGI THIEU

Trang 6

NHAN XET CUA GIAO VIEN PHAN BIEN

Trang 7

ĐÔ ÁN TỐT NGHIỆP Trang VI

LOI NOI DAU

Kỹ thuật vi điều khiển với tốc độ phát triển nhanh chóng đã và đang mang đến

nhường thay đổi to lớn trong khoa học và trong công nghệ cũng như trong đời sống hằng

Ngày nay các thiết bị, máy móc ngày càng trở nên thông mình và dễ sử dụng hơn,

e việc được thực hiện với hiệu quả cao hơn Đó cũng nhờ vào kỹ thuật vỉ xử lí, vi

n fam nên tắng bạn đâu cho việc hoe tap,viée im hiểu kỹ thuật vi điều khiển, người

thực hiện đề tài: "THIẾT KẾ MẠCH NẠP VI DIEU KHIEN VA UNG DUNG VI

KHIỂN LÀM ĐÔNG HỖ BÁO THỨC."

Trang 8

LỜI CẮM T

Œ oÔŒ4 t9

Có lẽ không mội ai có thể quên được mái trường mà mình đã đi qua trong thời thơ ấu cho đến lúc trưởng thành và tôi không phải là một ngoại lệ Các mái trường lần lượt nối tiếp nâng dẫn từng bước đi lên của tôi Cứ sau mỗi chặng đường đi qua, tôi lại thấy mình vững vàng

hum trong kiến thức, năng lực và chín chắn hơn về nhân cách Chặng đường vừa đi qua có lẽ là chang đường cuối cảng của thời cắp sách đến trường đó là năm năm dài đẩy cam go và thử

đi mát trường Đại Học Sư Phạm Kỹ Thuật Tp Hồ Chí Minh Nơi đây không chỉ đơn

cấp cho tôi nhường kiển tuức về khoa học kỹ thuật mà qúy hơn cả là đã nhóm trong tôi

vớn Kha học và rên luyện cho tới mới nghị lực vững vàng để làm hành trang bước vào

thách

gad

đời

Nền cụnh do, giá định la nguồn động lực to lớn về tỉnh thần lẫn vật chất giáp cho tôi

iat sắc trên con dường mã mình đã chọn,

Con xin cảm ơn ba, mẹ đã không quán k2 nhược l2 toan, chăm chút cho con, naôi dưỡng còn thành người Nay con kinh dang ba me nhiing gi con git hdi được trong nhà trường

Xin cắm dn mái trường mà tái đi 4a suốt thời niên thiếu Tôi sẽ ghi nhớ mãi công

ơn của tất cả các thấy cô đã dìu dất tới từ những buổi học vỡ lòng Câm ơn các thầy cô

trường Đại Học Sư Phạm Kỹ Thuật, nai in dam những vui buỗn, thất bại và thành công của thời sinh viên Kính lời cdm on cdc thay có trong khoa điện, tất câ những người thân

đã dành nhiều tình câm tốt đẹp đối với tôi và tạo mọi điều kiện thuận lợi để tôi học tập tốt

Gồi đến cô Trần Thanh Mai _ lời nghỉ ơn vô vàn, người đã trực tiếp theo sắt, tận tình giúp đỡ tôi trong suốt quá trình làm luận văn

Xin chân thành câm ơn nhưng ý kiến đóng góp của quý: thầy cô và bạn đọc

Xin cảm ơn các bạn sinh viên khóa 98KĐĐ, anh Nguyễn Tấn Đông đã giúp đỡ tôi rất nhiều trong đề tài này

Sinh viên thực hiện

Phan Quang Thịnh

SS

PHAN A :GIGI THIEU

Trang 9

1.5 Phương pháp ~ phương tiện nghiên cứu 4

CHƯƠNG 2: KHẢO SÁT VI DIEU KHIEN HQ MSC-51

2.1.Giới thiệu cấu trúc phan cting ho MSC-51 6

2.1.1.Khảo sát sơ đổ chân 8951-chức năng từng chân 6 2.2 Cấu trúc bên trong ví điều khiển 8

CHƯƠNG 3: GIAO TIẾP MÁY TÍNH

3.1, Giới thiệu về cấu trúc máy tính , 39

3.2 Sơ lược về cách giao tiếp máy tính với các

3.2.2.Giao tiếp qua cổng máy in 40

3.2.3 Giao tiếp bằng cổng COM 4I

CHƯƠNG 4: MẠCH NẠP 8951/52/55 GIAO TIẾP VỚI MÁY TÍNH

PHẦN A: GIỚI THIỆU

Trang 10

4.2 Sơ đồ khối và chức năng từng khối 49

4.3,1,Lưu đồ chương trình chính 50

4.3.2.Lưu đổ chương trình con đọc đữ liệu 52 4.3.3.Lưu đỗ chương trình xóa dữ liệu 53 4.3.4.Lưu đồ chương trình con nạp dữ liệu 54

4.4 Chương trình nạp vi điều khiển 55 4.5 Lưu đồ nạp phần mềm máy tính 66

4.6.3 Sơ đỗ bố trí linh kiện T0

4.7 Hướng dần sử dung 70

CHƯƠNG §: THIẾT KẾ ĐỒNG HỐ BÁO THỨC

5.2.2 Các kiến thức liền quan 14

CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

PHAN C: PHU LUC VA TAI LI£U THAM KHAO

—_—_———$S—

Trang 12

Chương 1

DẪN NHẬP

SS

Trang 13

ĐỒ ÁN TỐT NGHIỆP Trang 3

————ẽỄễ

1.1 ĐẶT VẤN ĐỀ

Chúng ta đã bước sang thế kỷ thứ 21 với khoa học kỹ thuật phát triển như vũ

bão, nhiều sắn phẩm công nghệ cao, các sản phẩm có độ tích hợp lớn ngày được ứng dụng rộng trong mọi lĩnh vực như vi xử lí ,vi điều khiển , nhằm đáp ứng nhu cầu

ngày càng phong phú của xã hội loài người Để khỏi bị lạc hậu, chúng ta phải không ngừng học hỏi và tự trang bị, cập nhật cho mình những kiến thức khoa học kỹ thuật

trung học chuyên nghiệp vẫn chưa hoác chỉ bước vào giai đoạn trang bị Trong khi đó vi xử lí,

vị điều khiến rất quan ong trong ngành điện tử, và nhất là trong ngành tự động điều khiển

Nuit phát từ yêu câu trên và để cũng cố kiến thức cho mình, sinh viên chọn để

tài "thiết kế Mạch Nụp Vị Điêu Khiến-Ứng Dụng Ví Điều Khiển Làm Động Hồ Báo

Thức, “tầm để tài tối nghiệp,

1.2.TAM QUAN TRONG C CA VAN DE:

Như đã để cập ở phần trên, vi điều khiển có vị trí rất quan trọng trong lĩnh vực tự động,

điều khiến, Vì điều khiển có nhiệm vụ xử zóng trình giúp hệ thống làm việc ổn định theo chương trình đã định trước Do đó sau khi đã thiết kế mạch nạp cho vi điều khiển thì công việc

tiếp theo là tạo sắn phẩm ứng dụng

Để làm việc hiệu qủa, chúng ta phải biết phán bố thời gian một cách hợp lý Nhưng Không phải ai cũng bố trí thời gian hợp lý được do rất nhiều nguyên nhân có thể chúng ta quên mốc thời gian đã định trước Vì thế cóng việc báo giờ tưởng chừng như nhỏ nhặt nhưng, lại có vị trí hết sức quan trọng Nó giúp chúng ta thực hiện công việc một cách khoa học, đúng như kế hoạch đã để ra Việc báo giờ không những cẩn thiết cho cá nhân mà rất quan trọng trong các cơ quan ,trường học

Vì vậy, để tài có vị trí quan trọng trong thực tiễn và thể hiện được tầm quan trọng của

vi điều khiển Tập đồ án này sẽ là những thông tin hữu ích cho những ai quan tâm đến vi điều khiển Ngoài ra tập đổ án này sẽ là tài liệu tham khảo cho các khóa sau

1.3 GIGI HAN DE TAL

Để thiết kế và thi cng một mạch đáp ứng yêu cầu đề ra không phải chỉ có một phương

án là dùng vi điều khiển, ta có thể dùng vi xử lý, EPROM vẫn có thể giải quyết được yêu cầu để ra Do thời gian và khả năng còn hạn chế nên nhóm thực hiện để tài chỉ thiết kế mạch nạp cho vi điều khiển 8951-8952-8955 Cũng như trong các ứng dụng vi điều khiển như : Dùng

vi điều khiển làm đèn giao thông, điểu khiển bơm xăng, Nhóm thực hiện chọn ứng dụng vi

điều khiển làm động hồ báo thức

Đây là lần đầu tiên nhóm thực hiện để tài:”Thiết Kế Mạch Nạp Vi Điều Khiển-Ứng Dụng Vi Điều Khiển Làm Động Hồ Báo Thức "trong điều kiện:

Ở trường , nhóm thực hiện để tài chỉ được học 15 tiết về vi điều khiển, không được học

các môn về giao tiếp máy tính với các thiết bị ngoại vi

Thời gian thực hiện :8 tuần

Tài liệu tham khảo liên quan đến để tài còn hạn chế

Trang 14

Thực hiện để tài:Thiết Kế Mạch Nạp Vi Điều Khiển Và Ứng Dụng Vi Điều Khiển Làm Đồng Hồ Báo Thức” là một cách để nhóm thực hiện để tài thể hiện các kiến thức của

mình trong thời gian học tập tại trường Đồng thời nghiên cứu kỹ hơn về vi điều khiển, ngôn

ngữ lập trình, giao tiếp máy tính và m hiểu thêm những kiến thức mới Sản phẩm của để

tài có thể được ứng dụng trong thực tế như báo giờ cá nhân, hay phát triển thêm để báo chuông tại cơ quan, trường học

1.5.PHƯƠNG PHÁP-PHƯƠNG TIỆN NGHIÊN CỨU:

1.5.1 PHƯƠNG PHÁP NGHIÊN CỨU

Trong qúa trình thực hiện để tài nhóm đã vận dụng những phương pháp nghiên cứu

khoa học sau đây để nghiên cứu:

© ‘Tham kháo tài liệu:Các tài liệu vê ví mạch số, vi xử lý, vi điều khiển, các đồ án tốt

nghiệp các khóa trước, các Ưang Web rên mạng,

&- Phương pháp quán sất (Quán sất các ngữ ra của máy tính PC, hoạt động đồng hồ báo thi thong dung

& Phương phap thyc n, lấp ráp các mạch thiết kế

«Khảo sát vi điêu khiển 8951, các ÍC, linh kiện liên quan, phương thức giao tiếp giữa

mạay tính và thiết bị qua cổng nối tiếp

$ Lập sơ đỗ khối theo mục tiểu của để tải

+ Thiết kế phần cứng

®_ Viết chương trình phần mềm

1.5.2.PHƯƠNG TIỆN NGHIÊN CỨU

May tinh PC

+ VOM, Testboad, c4c linh kién liên quan

1.6 KẾ HOẠCH THỰC HIỆN ĐỀ TÀI:

Công việc thực hiện để tài trong 8 tuần được tiến hành như sau:

+ Tuần I: Nhận để tài, lập đề cương tổng quát, thu thập tài liệu

+ Tuần 2: Lập đề cương chỉ tiết

+ Tuần 3,4,5,6: Triển khai đề cương, thử nghiệm và thi công mạch

Trang 16

2.1 GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MSC-5I (8951)

Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương tự như nhau

Ở đây giới thiệu IC8951 là một họ vi điều khiển do hãng Intel của Mỹ sản xuất Chúng có các đặc điểm chung như sau:

> 128 Byte RAM néi

> 4 Port xudt /nhap 1/0 8 bit

+ Giao tiếp nối tiếp

2.1.1 KHAO SAT SO DO CHAN 8951, CHCC NANG TUNG CHAN:

2.1.1.1 Sơ đô chân 8951:

2.1.1.2 Chức năng các chân của 8951:

MC8951 có tất cả 40 chân có chức năng như các đường xuất nhập Trong đó

có 24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể hoạt động như đường xuất nhập hoặc như đường điểu khiển hoặc là thành phần của các bus dữ liệu và

CHƯƠI 2: KHẢO SÁT VI ĐIỀU KHIỂN HỌ MSC-ã1 (8951)

Trang 17

Đốt với các thiết kế cỡ lớn có bộ nhớ mở rộng, được dùng như các đường xuất byte địa chỉ

vao của bus dia chỉ

UW Port 3:

on 3 là porL có tác dụng kép với số thứ tự chân 10-17 Các chân của port này có nhiều

vhíức năng, các công dụng chuyến đổi c2 liên hệ với các đặc tính đặc biệt của 8951 như ở

P30 RXT _ | Ngõ vào dữ liệu nối tiếp,

P3.1 TXD Ngõ xuất dữ liều nối tiếp

P32 INTO\ | Ngõ vào ngất cứng thứ0, P343 INTI\ | Ngõ vào ngất cứng thứ I

P344 |T0 Ngõ váo củaTIMER/COUNTER thứ 0

P35 Tl Ngõ vào củaTIMER/COUNTER thứ 1

P6 WR\ | Tín hiệu ghỉ dữ liêu lên bộ nhớ ngoài

P37 RD\ Tín hiệu đọc bó nhớ dữ liệu ngoài

Bảng 2.1 Tác dụng kép của Port 3}

b Các ngõ tín hiệu điều khiển:

Œ Ngõ tín hiệu PSEN (Program store enable):

PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương trình mở rộng thường nối đến chân 0E\ ( Output Enable) của Eprom cho phép đọc các byte mã lệnh PSEN ở mức thấp trong thời gian Microcontroller 8951 lấy lệnh Các mã lệnh của chương trình đọc từ Eprom qua bus dữ liệu và được chốt vào thanh ghi lệnh bên trong 8951 để giải mã lệnh

Khi 8951 thi hành chương trình trong ROM nội thì PSEN sẽ ở mức logic 1

O Ngo tín hiệu điều khiển ALE (Address Latch Enable ) :

Khi 8951 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và bus 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 ra ở chân ALE là một xung trong khoảng thời gian port O đóng vai trò là dia

chỉ thấp nên việc chốt địa chỉ được thực hiện 1 cách hoàn toàn tự động

CHUONG 2: KHAO SAT VI DIEU KHIEN HQ MSC-S1 (8951)

Trang 18

Đổi với các thiết kế cỡ lớn có bộ nhớ mỡ rộng, được dùng như các đường xuất byte địa chỉ

cao của bus địa chỉ

P3.6 WR\ _ | Tín hiếu ghí dữ liêu lén bộ nhớ ngoài

P37 RD\ Tín hiều đọc bộ nhổ dữ liệu ngoài

b Các ngõ tín hiệu điều khiển:

1 Ngé tin higu PSEN (Program store enable):

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

rộng thường nối đến chân OE\ ( Output Enable) của Eprom cho phép đọc các byte mã lệnh

PSEN ở mức thấp trong thời gian Microcontroller 8951 lấy lệnh Các mã lệnh của chương trình doc tit Eprom qua bus dữ liệu và được chốt vào thanh ghi lệnh bên trong 8951 để giải mã lệnh

Khi 8951 thi hành chương trình trong ROM nội thì PSEN sẽ ở mức logic 1

Œ Ngõ tín hiệu điều khiển ALE (Address Latch Enable ) :

Khi 8951 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và bus 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

Tin hiệu ra ở 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 việc chốt địa chỉ được thực hiện 1 cách hoàn toàn tự động

CHƯƠNG 2: KHẢO SÁT VI DIEU KHIEN HQ MSC-51 (8951)

Trang 19

ĐỒ ÁN TỐT NGHIỆP Trang 8

Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip va có thể

được dùng làm tín hiệu xung clock cho các phần khác của hệ thống Chân ALE được dùng làm ngõ vào xung lập trình cho Eprom trong 8951

Q Ngé tin hiéu EA\ (External Access) :

Tín hiệu vào EA\ ở chân 31 thường nối lên mức I hoặc mức 0

Nếu nối lên mức I thì vi điều khiển 8951 sẽ thỉ hành chương trình từ EPROM nội

trong khoáng địa chỉ thấp 8 Kbyte

Nếu ở với mức Ö thì vi điều khiển 8951 sẽ thi hành chương trình từ bộ nhớ mở rộng

Chân EA\ được lấy lâm chân cấp nguôn 2! V hay 12 V khi lập trình cho Eprom trong 8951

+ của #951, Khi ngõ vào tín hiệu này đưa lên

trong được nạp những giá trị thích hợp để khởi

dong hg thong Khi cấp điện mạch tự dong Reset

ean ite ala 2 chu ky máy, các thanh g

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

Bộ dao động được được tích hợp bén trong 8951, khí sử dụng 8951 người thiết kế chỉ

vẫn kết nối thêm thạch anh và các tụ như hình vẽ trong sơ đổ Tan sO thạch anh thường sử

dụng cho 8951 là 12Mhz

O Chan 40 (Vce) được nối lên nguồn 5Y,

2.2 CẤU TRÚC BÊN TRONG VI ĐIỀU KHIỂN

2.2.1 TỔ CHỨC BỘ NHỚ:

Trang 20

Bản đô bộ nhớ Data trên Chip như sau :

E0 |E7] E6 | Es | E4 |E3|E2] E1 | E0 | acc

54|53 A0 LATLA6]A5]A4|A3lA2[Al] Ao | P2

29 | 4F | 4E |4Ð | 4C | 4B 1

28 | 47 | 46 | 45 | 4a | 43 99 | không được địachỉhoábi |SBUF

27 | 3F |3E |3D |3C |3B |3A | 39 | 38 % | ¥F | 9/90] 9C[9B]9A] 99] 98 |SCON

|

26 | 37 | 36 | 3s | 34 | 33 | 32 | 31 | 30

25 [2F | 26 [2p] 2c | 2B [2A | 29 | 28 90 [97] 96 [95 [94 |93[92[ 91 | 90 | Pi

24 [27 | 26 [2s | 24 | 23 | 22 [ 21 [ 20

23 [aF[1e{ip{ic[1B [1A] 19 [18 8D | —_ không được địa chi hoa bit THỊ

22 [17] 16 [1s | 14] 13 | 12 | 1ì [1o §C | _—_ không được địa chỉ hod bit THO

21 |oE | oE |op | oc | o8 |oA | 09 | o3 8B | —_ không được địa chỉ hod bit TLI

20 [07 | 06 [0s | 04 | 02 | 0a | oi |oo $8A | —_ Không được địa chỉ hod bit TL0 1F Bank 3 89 không được địa chỉ hoá bit — |TMOD

17 Bank 2 87 không được địa chỉ hoá bit |PCON

10

oF Bank 1 83 không được địa chỉ hoá bit —_ | DPH

08 82 | _ không được địa chỉ hod bit DPL

07 Bank thanh ghi 0 81 không được địa chi hod bit SP

00 (mặc định cho RO ~R7) 88 |87] 86 | 85 |84 |83|82| 81] 80 | Po

Bảng 2 Bảng đô bộ nhớ Data trên Chip]

CHUONG 2: KHAO SAT VI ĐIÊU KHIỂ (0 MSC-51 (8951)

Trang 21

ĐỒ ÁN TỐT NGHIỆP Trang 10

Bộ nhớ trong 8951 bao gồm ROM va RAM

RAM trong 8951 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

8951 có bộ nhớ 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 8951 nhưng 8951 vẫn có thể kết nối với 61K byte bộ nhớ chương trình và 64K byte dữ liệu

RAM ben trong 8951 dude phan chia như sau:

Cac bank thanh ghi c6 dia chi ut (aH dén FH

RAM dia chỉ hóa từng bít có địa chỉ tư 22H đến 2PH

-_ RAM đa dụng từ 30H đến 7FH

~_ Các thanh ghi chức năng đặc biệt từ 2H đến FFH,

© RAM da dung:

Mac di trén hinh vé cho thay 80 byte da dung chiém cde dja chi tir 30H dén 7FH, 32

byte từ 00H đến IFH cũng có thể dùng với mục đích tương tự (mặc dù các địa chỉ này đã có

mục đích khác)

Mọi địa chỉ trong vùng RAM đa dụng đẻu có thể truy xuất tự do dùng kiểu địa chỉ trực

tiếp hoặc gián tiếp

RAM có thể truy xuất từng bit:

8951 chứa 210 bit có thể truy xuất từng bit, trong đó có 128 bit nằm ở các byte có địa chỉ từ 20E đến 2EH và các bit còn lại chứa trong nhóm thanh ghỉ có chức năng đặc biệt

Ý tưởng truy xuất từng bit bằng phần mm là các đặc tính mạnh của Microcontroller, Các bit có thể được đặt, xóa, AND, OR, ., bằng lệnh đơn Da số các microprocessor xử lý

đòi hỏi một chuổi lệnh đọc — sửa — ghỉ để đạt được mục đích tương tự

Ngoài ra các port cũng có thể truy xuất được từng bít

128 bịt truy xuất từng bit này cũng có thể truy xuất như các byte hoặc như các bit phụ

thuộc vào lệnh được dùng

Các bank thanh ghi :

32 byte thấp của bộ nhớ nội được dành cho các bank thanh ghi Bộ lệnh 8951 hổ trợ 8 thanh ghỉ có tên là R0 đến R7 và theo mặc định sau khi reset hệ thống thì các thanh ghi RO đến R7 được gán cho 8 ô nhớ có địa chỉ từ 00H đến 07H

CHƯƠNG 2: KHẢO SÁT VI ĐIỀU KHIỂN HỌ MSC-5I (8951)

Trang 22

Các lệnh dùng các thanh ghi R0 đến R7 sẽ ngắn hơn và nhanh hơn so với các lệnh có chức năng tương ứng dùng kiểu địa chỉ trực tiếp Các dữ liệu được dùng thường xuyên nên

dùng một trong các thanh ghỉ này

Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi được truy xuất bởi các thanh ghi R0 đến R7, để chuyển đổi việc truy xuất các bank thanh ghỉ ta phải thay đổi các bịt chọn bank trong thanh ghi trạng thái

3.2.2 Cúc thanh phi có chức năng đặc biệt :

Các thanh phí nội của 8951 được truy xuất ngầm định bởi bộ lệnh

Các thành ghí trong 8951 được định dạng như một phần của RAM trên chip Vì vậy, mỗi

thành phì 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

ay hiểm khủ bị tác đông trực tiếp) Cũng như R0 đến R7, 8951 có 21 thanh ghỉ có

dae bIGL (SPR: Special Function Register ) & vùng trên của RAM nội từ dia chi 80H

thanh

`

den tte

Chủ ý tất cả 128 địa chỉ từ 80H đến FFH không được xác định, chỉ có 21 thanh ghỉ có

ch nàng đặc biệt được xác định các địa

Ngoại trừ thanh ghỉ A có thể đước truy xuất ngắm như đã nói, đa số các thanh ghỉ có chức năng đặc biệt SER có thể địa chỉ h2a từng bịt hoặc byte,

+ Thanh ghỉ trạng thái chương trinh (PSW: Program Status Word):

Từ trạng thái chương trình ở địa chi DOH được tóm tắt như sau:

PSW.2 ov D2H Overlow Flag

Trang 23

ĐỒ ÁN TỐT NGHIỆP Trang 12

| Chức năng từng bit trạng thái:

| © Co Carry CY (Carry Flag):

Cờ nhớ có tác dụng kép Thông 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ó tràn hoặc phép trừ có mượn và ngược lại C= 0 nếu u phép toán cộng

không tràn và phép trừ không có mượn

© Co Curry phu 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 bít thấp nằm trong phạm vì điểu khiển 0AH+ 0FH Ngược lại AC= 0

© COU (Flag 0);

Cờ 0 0) là bit co da dung ding cho céc ting dung cha ngudi ding

Nhitg bu chon bank thành phí tray xuất:

RSI va RSO quyét dinh dãy thánh ghi tích cực, Chúng được xóa sau khi reset hé thong

và được thay đối bởi phần mm khi cắn thiết

Tùy theo RSI1, RS0 = 00, 01, 10, ¡1 sẽ được chạn Bank tích cực tương ứng là Bank 0,

Baukt, Bank2, Bank3

RSI RSO | BANK

© Catran OV (Over Flag) :

Cờ tràn được set sau một hoạt động cộng hoặc trừ nếu có sự tràn toán học 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ó năm trong tầm xác định không Khi các số không có dấu được cộng, bit OV được bỏ qua Các kết quả lớn hơn +127 hoặc nhỏ hơn —128 thì bit OV = 1

© Bit Parity (P):

Bit P ty động được Set hay Clear ở mỗi chu kỳ máy để lập Parity chẩn với thanh ghi

A Sy đếm các bit 1 trong thanh ghỉ A cộng với bit Parity luôn luôn chẩn Ví dụ thanh ghi A

chứa nhị phân 10101101B thì bit P set lên một để cho biết tổng số bit 1 trong thanh ghỉ A và P

Trang 24

ghi A va B, rồi trả về kết quả 16 bit trong A (byte cao) và B(byte thấp) Lệnh DIV AB: lấy giá

trị trong thanh ghi A chia cho giá trị trong thanh ghỉ B, kết quả nguyên lưu trong A, số dư lưu

trong B

Thanh ghi B có thể được dùng như một thanh ghi đệm trung gian đa mục đích Nó có thể định địa chỉ từng bit định vị thông qua những địa chỉ từ F0H+F7H

© - Con trỏ ngăn xếp SP (Stack Pointer) :

Con trỏ ngắn xếp 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 ngần xếp Các lệnh trên ngăn xếp bao gồm các lệnh cất dữ liệu vào

ngần xếp (PUSH) và lấy dữ liệu ra khỏi ngăn xếp (POP) Lệnh cất dữ liệu vào ngăn xếp sẽ

lầm tầng SP trước khí phí dữ liệu và lệnh lấy ra khỏi ngăn xếp sẽ làm giảm SP Ngăn xếp của R01 SOSL được giữ trong RAM nội và giới hạn các địa chỉ có thể truy xuất bằng địa chỉ gián tiếp chúng là L2N byte đầu của H95]

Để khởi động SP với ngán xếp bất đầu tai địa chỉ 60H, các lệnh sau đây được dùng: MOV SP, #5FH

Với lệnh trên thì ngăn xếp của #51 chỉ có 32 byte vì địa chỉ cao nhất của RAM trên chip là 7EH, Sỡ dĩ giá trị SEH được nạp vào SP vì SP táng lên 60H trước khi cất byte dữ liệu

Khi Reset 8951, SP sẽ mang giá tri mác định là 7H và dữ liệu đầu tiên sẽ được cất vào ö nhớ ngăn xếp có địa chỉ 08H Nếu phán mềm ứng dụng không khởi động SP một giá trị mới thì bank thanh ghỉ 1 có thể cả 2 và 3 sẽ khóng dùng được vì vùng RAM: này đã được

LCALL) và các lệnh trở về (RET, RETI) để lưu trữ giá trị của bộ đếm chương trình khi bắt

đầu thực hiện chương trình con và lấy lại khí kết thúc chương trình con

© Con tré dit ligu DPTR (Data Pointer) :

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) Ba lệnh sau sẽ ghi 55H vào RAM ngoài ở địa chỉ 1000H:

MOV A, #55H MOV DPTR, #1000H

MOV @DPTR, A

Lệnh đầu tiên dùng để nạp 55H vào thanh ghi A Lệnh thứ hai dùng để nạp địa chỉ

1000H của ô nhớ cần lưu giá trị 55H vào con trổ dữ liệu DPTR Lệnh thứ ba sẽ di chuyển nội

dung thanh ghi A (1a 55H) vào ô nhớ RAM bên ngoài có địa chỉ chứa trong DPTR (là 1000H)

© Các thanh ghỉ Port (Port Register) :

Các Port của 8951 bao gồm Pon0 ở địa chỉ 80H, Portl ở địa chỉ 90H, Por2 ở địa chỉ

AOH, và Port3 ở địa chỉ B0H Tat cA cdc Port nay đều có thể truy xuất từng bit nên rất thuận

tiện trong khả năng giao tiếp

Hoạt động Reset :

HƯƠNG 2: KHẢO SÁT VI ĐIỀU KHIỂN HỌ MSC-5I (8951)

Cc

Trang 25

Trang 14

8951 có ngõ vào reset RST tác động ở mức cao trong khoảng thời gian 2 chu kỳ xung

máy, sau đó xuống mức thấp để cho 8951 bắt đầu làm việc RST có thể kích bằng tay bằng

một phím nhấn thường hở, sơ đổ mạch reset như sau:

sv

10 uF

1000 a

RST Reset

Thanh ghi B | OOH

‘Thanh ghi trang thái PSW 90H

“Thanh ghi con trở SP (07H

Thanh ghi quan trọng nhất là thanh ghỉ bộ đếm chương trình PC = 0000H khi reset Khi

trình

Nội dung của RAM trên chip không bị thay đổi bởi tác động của ngõ vào reset

HƯƠNG 2: KHẢO SÁT VI DIEU KH 'Q MSC-51 (8951) =

C

Trang 26

2.3 TÓM TẮT TẬP LENH CUA 8951:

Các chương trình được cấu tạo từ nhiều lệnh, chúng được xây dựng logic, sự nối tiếp

của các lệnh được nghĩ ra một cách hiệu quả và nhanh, kết quả của chương trình khả quan

Tập lệnh họ MSC-51 được sự kiểm tra của các mode định vị và các lệnh của chúng có

các Opcode 8 bit Điều này cung cấp khả năng 2Ÿ= 256 lệnh được thi hành và một lệnh không

được định nghĩa Vài lệnh có 1 hoặc 2 byte bởi dữ liệu hoặc địa chỉ thêm vào Opcode Trong

toàn bộ các lệnh có 139 lệnh 1 byte, 92 lệnh 2 byte và 24 lệnh 3 byte

Các mode định vị (addressing mode) :

Các mode định vị là một bộ phân thống nhất của tập lệnh Chúng cho phép định rố

nguồn hoặc nơi gởi tới của dữ liệu ở các đường khác nhau tùy thuộc vào trạng thái của người

lập tình 95L có 8 mode dinb vị được dụng như sáu :

a Sttdjnh vi thanh ghi (Register Addressing) :

Có 4 dãy thanh ghi 32 byte dau tién của RAM dữ liệu trên Chíp địa chỉ OOH + 1FH, nhưng tại một thời điểm chỉ có một dãy hoạt động các bit PSW3, PSW4 của từ trạng thái

chương trình sẽ quyết định đấy nào hoạt động

Các lệnh để định vị thanh ghi được ghi mật mã bằng cách dùng bịt trọng số thấp nhất của Opcode lệnh để chỉ một thanh ghi trong vùng địa chỉ theo logic này Như vậy 1 mã chức năng và địa chỉ hoạt động có thể được kết hợp để tạo thành một lệnh ngắn 1 byte như sau:

b Sự định địa chỉ trực tiép (Direct Addressing) :

phẩn cứng trên Chip Một byte địa chỉ trực tiếp được đưa vào Opcode để định rõ vị trí được

Trang 27

ĐỒ ÁN TỐT NG Trang 16

Tùy thuộc các bit bậc cao của địa chỉ trực tiếp mà một trong 2 vùng nhớ được chọn Khi

bit 7 = 0, thì địa chỉ trực tiếp ở trong khoảng 0+127 (00H+7FH) và 128 vị trí nhớ thấp của

RAM trên Chip được chọn

Tất cả các Port L/O, các thanh ghỉ chức năng đặc biệt, thanh ghỉ điều khiển hoặc thanh

ghi trạng thái bao giờ cũng được quy định các địa chỉ trong khoảng 128z255 (80:FFH) Khi

byte địa chỉ trực tiếp nằm trong giới hạn này (ứng với bit 7 = 1) thì thanh ghi chức năng đặc biệt được uy xuất Ví dụ Port 0 và Port 1 được quy định địa chỉ trực tiếp là 80H và 90H, P0,

PI là đang thức rút gọn thuật nhớ của Port, thi sự biến thiên cho phép thay thế và hiểu dạng thức rút gọn thuật nhớ của chúng, Chẳng hạn lệnh : MOV Pl, A s sự biên dịch sẽ xác định

địa chỉ trực tiếp của Port T là 901 đất vào hai bytc của lệnh (byte 1 của port 0)

€ Sự định vị địa chỉ gián tiếp (Indireet Addressing) :

Sự định địa chỉ gián tiếp được tượng trưng bởi ký hiệu ® được đặt trước R0, R1 hay

ĐẸP ER RƠ và RÍ có thể hoạt động như rnót thanh ghỉ con trỗ mà nội dung của nó cho biết một

địa chỉ tong RAM nội Ở nơi mà dữ liệu được ghi huge dude doc, Bit có trọng số nhỏ nhất của

Oevle lệnh sẽ xác định RO hay RI dude dung con trỏ Pointer

4 Sự định dja chi tic thoi (Immediate Addressing) :

Sự định địa chỉ tức thời được tượng trưng bởi ký hiệu # được đứng trước một hằng 86, 1

biến ký hiệu hoặc một biểu thức số học được sử dụng bởi các hằng, các ký hiệu, các hoạt động

thêm vô chứa trị số dữ liệu tức thời như sau:

e Sự định địa chỉ tương đối :

Sự định địa chỉ tương đối chỉ sử dụng với những lệnh nhảy nào đó Một địa chỉ tương

đối (hoặc Offset) là một giá trị 8 bit mà nó được cộng vào bộ đếm chương trình PC để tạo

thành địa chỉ một lệnh tiếp theo được thực thi Phạm vi của sự nhảy nằm trong khoảng -128

Trang 28

Những nơi nhảy đến thường được chỉ rõ bởi các nhãn và trình biên dịch xác định Offset Relative cho phù hợp

Sự định vị tương đối đem lại thuận lợi cho việc cung cấp mã vị trí độc lập, nhưng bất lợi là chỉ nhảy ngắn trong phạm vi 128+127 byte

Sf Sự định địa chỉ tuyệt đối (Absolte Addressing) :

Sự định địa chỉ tuyệt đối được dùng với các lệnh ACALL và AJMP Các lệnh 2 byte cho phép phân chia trong trang 2K đang lưu hành của bộ nhớ mã của việc cung cấp 11 bit thấp để xác định địa chỉ trong trang 2K (A0+A10 gồm A10+A8 trong Opcode va A7+A0 trong byte) và 5 bịt cao để chọn trang 2K (5 bịt cao đang lưu hành trong bộ đếm chương trình là 5 bit

Opeode)

Sự định vị tuyệt đối đem lại thuận lợi cho c;

việc giới hạn phạm vi nơi gởi đến và cung cấp mã có vị

c lệnh ngắn (2 byte), nhưng bất lợi trong

4 doc lap

g Sự định vị dài (Long Addressing) =

Sự định vị dài được dùng với lệnh LCALL v2 LIMP Các lệnh 3 byte này bao gồm một dia chi nơi gởi tới 16 bit đầy đủ là 2 byte và 3 b1 của lệnh chẽ tướng nh

Opcode

T T T T T T T

Addr 15 + Addr 8

h Sự định địa chỉ số (Index Addressing) :

Sự định địa chỉ phụ lục dùng một thanh ghỉ cơ bản (cũng như bộ đếm chương trình hoặc bộ đếm dữ liệu) và Offset (thanh ghiA) trong sự hình thành 1 địa chỉ liên quan bởi lệnh JMP hoặc MOVC

Base Register Offset Effective address

Trang 29

ĐỒ ÁN TỐT NGHIỆP Trang 18

2.4 HOAT DONG TIMER CUA 8951

2.4.1 GIGI THIEU :

Bộ định thời của Timer là một chuỗi các Flip Flop được chia 2, nó nhận tín hiệu vào

là một nguồn xung clock, xung ra của Flip Flop thứ nhất là xung clock của Flip Flop thứ hai

mia no cing chia tin si clock nay cho 2 va cứ tiếp tục

Vì mỗi tẳng kế tiếp chia cho 2, nên Timer n tầng phải chia tẩn số clock ngõ vào cho

2" Ngũ ra của tẳng cuối cùng là clock ciia Plip Flop tràn Timer hoặc cỡ mà nó kiểm tra bởi

phẩn mềm hoặc sinh ra ngất, Giá trị nhí phân trong các FF của bộ Timer có thể được nghĩ như

đếm xung clock hoặc các sự kiện quan trọng bởi vì Tìmer được khởi động, Ví dụ Timer 16 bit

co thé dem đến tứ PEEEH sang 0009H

Hoạt động của Timer đơn giản 3 bạt được minh hoa như sau :

inh 2.5 Giản đồ thời gian cua timer

tân số clock, tầng thứ hai đổi trạng thái ở tân số 1⁄4 tần số clock Số đếm được biết ở dạng thập phân và được kiểm tra lại dễ dàng bởi việc kiểm tra các tầng của 3 FF Ví dụ số đếm “4”

xuất hiện khi Q2=1, Q1=0, Q0=0 (410=1002)

CHƯƠNG 2: KHẢO SAT VI DIEU KHIEN HQ MSC-S1 (8951)

Trang 30

Các Timer được ứng dụng thực tế cho các hoạt động định hướng 8951 có 2 bộ Timer

16 bit, mỗi Tìmer có 4 mode hoạt động Các Timer dùng để đếm giờ, đếm các sự kiện cần

thiết và sự sinh ra tốc độ của tốc độ Baud bởi sự gắn liền Port nối tiếp

số clock vào cho 2!5 = 65.536

“Trong các ứng dụng định thời, 1 Tìmer được lập trình để tràn ở một khoảng thời gian

đều đặn và được seL cờ trần Timer Cờ được dùng để đồng bộ chương trình để thực hiện một

hoạt đóng như việc đưa tới 1 tằng các ngõ vào hoặc gởi dữ liệu đến ngõ ra Các ứng dụng khác

ghi giờ đều đều của Timer để đo thời gian đã trôi qua hai trạng thái (ví dụ đo

w).Việc đếm một sự kiện được dùng để xác định số lần xuất hiện của sự kiện đó,

có sứ dụng V

đồ rồng XI

ti thời gián trôi qua giữa các sự kiện

Cac ‘Viner của 895 được ưuy xuất bởi việc dùng 6 thanh ghỉ chức năng đặc biệt như

sau

r T

‘Timer SFR Purpose | Address Bit-Addressable

TCON Control | 88H YES

TMOD Mode | 89H NO

TLO Timer 0 low-byte 8AH NO

TLI Timer 1 low-byte SBH NO

THO Timer 0 high-byte 8CH NO

THI Timer 1 high-byte 8DH NO

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

2.4.2 THANH GHI MODE TIMER TMOD (TIMER MODE REGITER) :

Thanh ghi mode gồm hai nhóm 4 bit là: 4 bịt thấp đặt mode hoạt động cho Timer 0

và 4 bit cao đặt mode hoạt động cho Timer 1 8 bit của thanh ghỉ TMOD được tóm tắt như

Bit Name | Timer Description

7 GATE 1 Khi GATE = 1, Timer chi lam viéc khi INTI=1

Trang 31

C/T = 0: Ghi gid đều đặn

5 MI 1 Bit chọn mode của Timer 1

4 MO 1 Bit chon mode của Timer 1

3 GATE 0 Bit cổng của Timer 0

2 C/T 0 Bit chọn Counter/Timer của Timer 0

1 MI 0 Bit chon mode cia Timer 0

Hai bit MO va M1 cla TMOD 4é chon mode cho Timer 0 hoac Timer 1

0 0 0 | Mode Timer 13 bit (mode 8048)

0 1 1 | Mode Timer 16 bit

1 0 2 | Mode tự động nạp 8 bit

1 1 3 Mode Timer tách ra :

Timer 0 : TL0 là Timer 8 bit được điều khiển bởi các

bit của Timer 0 THO tương tự nhưng được điều khiển

bởi các bit của mode Timer 1

Timer 1 : Được ngừng lại

như thế bởi sự truy xuất các thanh ghi chức năng đặc biệt của Timer khác

2.4.3 THANH GHI ĐIỀU KHIỂN TIMER TCON (TIMER CONTROL REGISTER)

“Thanh ghi điều khiển bao gồm các bit trạng thái và các bit điều khiển bởi Timer 0 va

Timer 1 Thanh ghi TCON có bit định vị Hoạt động của từng bit được tóm tắt như sau :

CHƯƠNG 2: KHẢO SÁT VI ĐIỀU KHIỂN HỌ MSC-51 (8951)

Trang 32

Bit Symbol | Bit Address Description

TCON.7 | TFỊ 8FH Cờ tràn Timer 1 được set bởi phần cứng ở sự tràn,

được xóa bởi phần mềm hoặc bởi phần cứng khi

các vectơ xử lí đến thủ tục phục vụ ngắt ISR

TCON.6 | TRI 8EH Bịt điểu khiển chay Timer 1 được set hoặc

xóa bởi phần mềm để chạy hoặc ngưng

TRO KD Cờ tràn Timer 0 (hoat d6ng tương tự TF1)

TOONS | LEI %BH C2 cạnh ngắt I ngoài Khi cạnh xuống xuất

| hiện trên INTI thì IEI được xóa bởi phẩn|

¡ mm hoặc phần cứng khi CPU định hướng

{ đến thủ tục phục vụ ngắt ngoài

TCON.2 | ITI 8AH | Cờ kiểu ngất 1 ngoài được set hoặc xóa bằng|

| phấn mềm bởi cạnh kích hoạt bởi sự ngấ

| ngoài

TCON.1 | IEO 89H Cờ cạnh ngắt 0 ngoài

TCON | ITO 88H Cờ kiểu ngắt 0 ngoài

Bang 2.9 Mô tả thanh ghi TCON|

2.4.4 CAC MODE VA CO TRAN (TIMER MODES AND OVERFLOW) :

8951 c6 2 Timer la Timer 0 va timer 1, Ta dùng ký hiệu TLx và Thx để chỉ 2 thanh ghi

byte thấp và byte cao của Timer 0 hodc Timer 1

2.4.4.1 Mode Timer 13 bịt (MODE 0) :

Mode 0 là mode Timer 13 bit, trong đó byte cao của Timer (Thx) được đặt thấp và 5 bit trọng số thấp nhất của byte thấp Timer (TL) đặt cao để hợp thành Timer 13 bit 3 bịt cao của

'TLx không dùng

Timerdle€k „| TLx 5 bits | THx 8 bits TFx

2.4.4.2 Mode Timer 16 bit (MODE 1) :

CHUONG 2: KHAO SAT VI DIEU KHIEN HQ MSC-51 (8951)

Trang 33

Mode | 1a mode Timer 16 bit, tương tự như mode 0 ngoại trừ Timer này hoạt động

như một Timter đẩy đủ 16 bịt, xung clock được dùng với sự kết hợp các thanh ghỉ cao và thấp

(TEx, TH) Khi xung clock due nhjn vào, bộ đếm Timer tăng lên 0000H, 0001H, 0002H ,

Và một sự trần sẻ xuất hiện khi cá sự chuyến trên bộ đếm Timer từ FFFfH sang 0000H và sẽ

xet cô trăn Tung, sau đó Tìmer đếm tiếp

Co tain là bịt TEX trong thánh ghí TCON mà nó sẽ được đọc hoặc ghi bởi phẩn mềm Bật có trọng số lớn nhất (MSB) của giá trị rong thanh ghi Timer Ia bit 7 của THx và bit và: trọng số thấp nhất (LSB) là bị 0 của TLx Bít LSB đổi trạng thái ở tần số clock vào được chia 2'° = 65.536,

thanh ghỉ Timer TLx và Thx có thể được đọc hoặc ghi tại bất kỳ thời điểm nào bởi

MODE2

Mode 2 là mode tự động nạp 8 bit, byte thấp TLx của Timer hoạt động như một Timer

8 bit trong khi byte cao THx của Timer giữ gid tri Reload Khi bộ đếm tràn từ FFH sang 00H, không chỉ cờ tràn được set mà giá trị trong THx cũng được nạp vào TLx : Bộ đếm được tiếp

tục từ giá trị này lên đến sự chuyển trạng thái từ FFH sang 00H kế tiếp và cứ thế tiếp tục

Mode nay thì phù hợp bởi vì các sự tràn xuất hiện cy thể mà mỗi lúc nghỉ thanh ghỉ TMOD và

Trang 34

Overflow flag MODE3

Í Hình 2.9 Mode Timer tách ra (mode 3

Mode 3 là mode Timer tach ra va la oy khác biệt cho mỗi Timer

Timer 0 6 mode 3 duge chia la 2 mer 4 bit TLO va THÔ hoạt động như những Timer

riêng lẻ với sự tràn sẽ set các bit TLO va TFL tương ứng

Timer 1 bị dừng lại ở mode 3, nhưng có thể được khởi động bởi việc ngắt nó vào một trong cde mode khác Chỉ có nhược điểm i4 cỡ trăn TF1 của Timer 1 không bị ảnh hưởng bởi

cúc sự tràn của Timer 1 bởi vì TF1 được nối với TH,

Mode 3 cung cấp I Timer ngoại 8 bít là Timer thứ ba của 8951 Khi vào Timer 0 ở

mode 3, Timer có thể hoạt động hoặc tất bởi sự ngất nó ra ngoài và vào trong mode của chính

nó hoặc có thể được dùng bởi Port nối tiếp như là một máy phát tốc độ Baud, hoặc nó có thể

dùng trong hướng nào đó mà không sử dụng Interrupt

2.4.4.4 Các nguôn xung clock (clock sources) :

Có hai nguồn xung Clock có thể đếm giờ là sự định giờ bên trong và sự đếm sự kiện bên ngoài Bit C/T trong TMOD cho phép chọn | trong 2 khi Timer được khởi động

Hình 2.10 Các nguồn xung clock|

Néu bit C/T = 0 thì hoạt động của Timer liên tục được chọn vào bộ Timer được ghi giờ

từ dao động trên Chip Một bộ chia 12 được thêm vào để giảm tân số clock đến 1 giá trị phù

CHƯƠNG 2: KHẢO SÁT VI ĐIỀU KHIỂN HỌ MSC-5I (8951)

Trang 35

ĐỒ ÁN TỐT NGHIỆP Trang 24

——- ::` hợp với _sác ứng dụng Các thanh ghỉ TLx và THx tăng ở tốc độ 1/12 lần tân số dao động trên

Chip Nếu dùng thạch anh 12MHz thi sé dua đến tốc d6 clock IMHz

Các sự trần Timer sinh ra sau một con số cố định của những xung clock, nó phụ thuộc vào giá trị khởi tạo được LOAD vào các thanh ghi THx va TLx

2.4.4.5 Sudém cdc sy kign (Event Counting) :

Néu bit C/T = | thì bộ Timer được ghỉ giờ tit nguồn bên ngoài trong nhiều ứng dung, nguồn bên ngoài này cung cấp 1 sự định giờ với ! xung trên sự xảy ra của sự kiện Sự định giờ

sự đêm sự kiện Con số sự kiện được xác định trong phần mềm bởi việc đọc các thanh ghi

Timer TLx/THx, bdi vi gid tri 16 bit trong các thanh này tăng lên cho mỗi sự kiện Nguồn Xung CÀxk bên ngoài đưa vào chân P3.4 là ngõ nhập của xung clock bởi Timer 0 (T0) và P3.5

lầ ngò nhập của xung clock bei Tuner 1 (TL)

Trong các ứng dụng đếm các thanh ghi Timer được tăng trong đáp ứng của sự chuyển trang tiệt từ T sang Ô ở ngõ nhập Tx, Ngõ nhập bên ngoài được thử trong suốt S5P2 của mọi

chú AY may | Do do khi ngõ nhập đưa tới mức cáo trong một chủ kỳ và mức thấp trong một chu

KY ke wep thi bd dém tầng lên một Giá trị ø⁄í xuất hiện trong các thanh ghi Tỉmer trong suốt

SSPI của chủ kỳ theo sau một sự chuyển đổi Bởi vì nó chiếm 2 chu kỳ máy (2us) để nhận ra

sự chuyến đổi từ 1 sang 0, nên tần số bên ngơài lớn nhất là 500KHz nếu dao động thạch anh

12 MHz

2.4.5 SY BẮT ĐẦU, KẾT THÚC YÀ SỰ BIEU KHIEN CAC TIMER (STARTING,

STOPPING AND CONTROLLING THE TIMER) :

Bit TRx trong thanh ghi có bít định vj TCON duce diéu khién bdi phn mém dé bat đầu hoặc kết thúc các Timer Để bắt đầu cdc Timer ta set bit TRx va dé két thtic Timer ta Clear TRx Ví dụ Timer 0 được bắt đầu bởi lệnh SETB TRO và được kết thúc bởi lệnh CLR

TRO (bit Gate= 0) Bit TRx bị x6a sau sy reset hệ thống, do đó các Timer bị

cấm bằng sự mặc định

CHƯƠNG 2: KHẢO SÁT VI ĐIỀU KHIỂN HỌ MSC-51 (8951)

Trang 36

Thêm phương pháp nữa để điều khiển các Timer là dùng bit GATE trong thanh ghỉ

TMOD và ngõ nhập bên ngoài INTx Điều này được dùng để đo các độ rộng xung Giả sử

xung đưa vào chân INTO ta khởi động Timer 0 cho mode 1 là mode Timer 16 bit với TL0/THO

= 0000H, GATE = 1, TRO = 1 Như vậy khi INT0 = 1 thi Timer “được mở cổng” và ghỉ giờ

với tốc độ của tần số IMHz Khi INT0 xuống thấp thì Timer “đóng cổng” và khoảng thời gian

của xung tính bằng rs là sự đếm được trong thanh ghi TL0/TH0

2.4.6 SY KHỞI ĐỘNG VÀ TRUY XUẤT CÁC THANH GHI TIMER :

Cac Timer dive khởi động 1 lần ở đầu chương trình để đặt mode hoạt động cho

Sau đó trong chương trình các Tìmer được bắt đầu, được xóa, các thanh ghi Timer

được đọc và cập nhật theo yêu câu của từng ứng dụng cụ thể,

Mode Timer TMOD Ja thành ghì đâu tiên được khởi gán, bởi vì đặt mode hoạt động

cho các Truet, VÌ dụ khởi động cho Timer | hoạt động ở mode 1 (mode Timer 16bit) và đưệx gìu giờ bằng đạo động trên Chip ta dung lénh : MOV TMOD, # 00001001 Trong lệnh này MỸ = 0, MÔ = 1 để vào mode ] vá C/T = 0, GATE = 0 để cho phép ghỉ giờ bên trong đồng thời xóa các bit mode của Timer 0 Sau lệnh én Timer vin chưa đếm giờ, nó chỉ bắt đầu đếm giờ khi set bịt điểu khiển chạy TRI cia nd,

Nếu ta không khởi gán giá trị đầu cho các thanh ghí TLx/THx thì Timer $ẽ bắt đầu

đếm từ 0000H lên và khi tràn từ FFFFH sang ⁄⁄2)H nó sẽ bất đầu tràn TFx rồi tiếp tục đếm

từ UO00H lên tiếp

Nếu ta khởi gán giá trị đầu cho TLx/THx, thì Timer sẽ bắt đâu đếm từ giá trị khởi gan

đó lên nhưng khi tràn từ FFFFH sang 0000H lại đếm từ 0000H lên

Chú ý rằng cờ tràn TFx tự động được set bởi phẩn cứng sau mỗi sự tràn và sẽ được

xóa bởi phân mềm Chính vì vậy ta có thể lập trình chờ sau mỗi lần tràn ta sẽ xóa cờ TFx và

quay vòng lặp khởi gán cho TLx/THx để Timer luôn luôn bắt đầu đếm từ giá trị khởi gán lên

theo ý ta mong muốn

Đặc biệt những sự khởi gán nhỏ hơn 256 ps, ta sé goi mode Timer ty dong nap 8 bit của mode 2 Sau khi khởi gán giá trị đầu vào THx, khi set bit TRx thì Timer sẽ bắt đầu đếm giá trị khởi gán và khi tràn từ FFH sang 00H trong TLx, cờ TFx tự động được set đồng thời giá trị

khởi gán mà ta khởi gán cho Thx được nạp tự động vào TLx và Timer lại được đếm từ giá trị khởi gán này lên Nói cách khác, sau mỗi tràn ta không cân khởi gán lại cho các thanh ghi

Timer ma chúng vẫn đếm được lại từ giá trị ban đầu

'Ví dụ 1: Chương trình tạo xung vuông tấn số 1kHz sử dụng timer model:

: ORG 4000H ;Khai báo địa chi bat dau của chương

LOOP: JNB TFO,LOOP ;Chờ báo ngắt

CPL P1.0 ;Nghịch đảo bit p1.0 SIMP LOOPI ;Quay trở lại làm tiếp

—— -— —ễễễ

CHƯƠNG 2: KHẢO SÁT VI ĐIÊU KHIỂN HỌ MSC-51 (8951)

Trang 37

ĐỒ ÁN TỐT NGHIỆP >> Trang 26

———-—~

2.5 HOẠT ĐỘNG INTERRUPT CỦA 8951 :

- Trong nhiều ứng dụng đồi hỏi ta phải dùng Interrupt mà không dùng Timer bởi vì nếu

dùng Timer ta phải mất thời gian để chờ cờ tràn TimerTEx set mới xử lý tiếp chương trình

Đo đó ta không có thời gian để làm các việc quan trọng khác mà ứng dụng đòi hỏi

Đây là chương trình rất quan trọng của 8951 hay họ MSC-51

2.5.1 GIỚI THIỆU :

InterrupL là một sự cố có điểu kiện mà nó gây ra sự ngưng lại tạm thời của chương trình để phục vụ một chương trình khác Các Interrupt vận hành một Relay rất quan trọng

c ứng dụng vi điều khiển Chúng cho phép 1 hệ thống

đồng bộ đến sự kiện quan trọng và giải quyết sự kiện đó trong khi chương trình khác

thi Mot hé thong được: lái bởi Interrupt cho | kỹ xảo làm nhiều công việc cùng một lúc Tát nhiên CPU không thể thực thì nhiều lệnh tại một thời điểm, nhưng nó có thể tạm thời

eo việc thực thí của chương trình chính đế thực thi chương trình khác và sau đó quay lại

ehuwing trình chính

Khi chương trình chính đang thực thí mà có một sự ngắt xảy đến thì chương trình

chinh ngưng thực thì vàrể nhánh đến thủ tục phục vụ ngất ISR (interrupt service routine) ISR

thực thi để thực hiện hoạt động và kết thúc với lệnh “trỡ lại từ sự ngắt” : Chương trình tiếp tục

nơi mà nó dừng lại

Ta có thể tóm tắt sự thực thí của 1 chương trình trong trường hợp có Interrupt va khong

có Interrupt như sau :

trong thiết bị và sự cùng cấp đây đủ c

= Time Progcam execution without interrupts

Program execution with interrupts Time

trong thủ tục phục vụ ngất ISR Còn ký hiệu ** cho biết quay trở lại chương trình chính thực thi tiếp khi kết thúc chương tỉnh con trong ISR

2.5.2 TỔ CHỨC INTERRUPT CỦA 8951 (INTERRUPT ORGANIZATION)

Trang 38

8951 cung cấp 5 nguồn nối tiếp Tất cả các Interrrupt bị mất tác dụng bởi sự mặc định

sau khi reset hệ ngắt, 2 sự ngất ngoài, 2 sự ngất Tìmer và một sự ngắt Port thống và được cho phép cá biệt bởi phần mềm,

Trong trường hợp có hai hoặc nhiều hơn sự ngắt xảy ra đồng thời hoặc một sự ngắt

đang được phục vụ mà xuất hiện một sự ngắt khác, thì sẽ có hai cách thực hiện sự ngắt là sự kiểm tra liên tiếp và sự ưu tiên cấp 2

3.5.2.1 Sự cho phép ngắt và sự cấm ngắt

Mỗi nguồn Inerrupt được cho phép riêng biệt hoặc sự cấm riêng biệt qua thanh ghỉ chức năng đặc biệt có bít định vj IE (Interrupt Enable) tai dia chi OA8H Cũng như sự cá biệt cho phép các bịt của mỗi nguồn ngất có 1 bịt cho phép (hoặc cấm) chung mà nó được xóa để vấm tất cá các Interrupt hoặc được set để cho phép chung các Interrupt

Hoat dong của từng bịt tong thánh ghỉ cho phép ngắt IE được tóm tắt trong bang sau:

Symbol | Bit Address | Sự mô tả (Enable = 1; Dissble)

1E.7| EA AFH Cho phép toàn bộ hoặc cấm toàn bộ

IE.6 - AEH Không định nghĩa

IE5 | ET2 ADH Cho phép ngất Timer 2 (8052)

IE4| ES ACH Cho phép ngất Port nối tiếp

IE3| ETI ABH Cho phép ngắt Timer 1

IEI| ETO A9H Cho phép ngắt Timer 0

IE0| EXO A8H Cho phép ngắt ngoài External 0

TE (Interrupt Enable) Register Sumary

0 Mé ta thanh ghi cho phép ngiit IE}

Bắn;

Hai bit phải set để cho phép 1 sự ngắt nào đó : Là bit cho phép riêng và bit cho phép

chung Ví dụ để cho phép ngất Timer | ta c6 thể thực hiện trên bit: SETB et1 và setb ea hoặc

sự thực hiện trên byte : MOV IE, #10001000B Cả 2 phương pháp này có kết quả chính xác

sau khí reset hé thống, nhưng kết quả khác nhau nếu thanh ghi IE được ghỉ trên tuyến Ở giữa

Trang 39

ĐỒ ÁN TỐT NGHIỆP Trang 28

lệnh mov byte, nhưng sự cho phép ngắt và cấm ngắt trên tuyến trong một chương trình sẽ dùng

các lệnh SET BIT và CLR BIT để tránh kết quả phụ với các bit khác trong thanh ghỉ IE

2.5.2.2 Sự ưu tiên ngắt (Interrupt Prioriy) :

Mỗi nguồn ngắt được lập trình cá biệt đến một trong hai mức ưu tiên qua thanh ghỉ

chức năng đặc biệt có định vị IP (Interrupr Priority) tai địa chỉ 0B8H Hoạt động của từng bit

trong thanh phi IP được tóm tắt trong bảng sau :

Bit | §ymbol Bit address Descripe(enable=1,disenable=0) IP.7- cà _ Không định nghĩa

IP6 - | Không định nghĩa

15 re BOH — |Uutiênsựngấttimer2(8052) |

Thanh ghi ưu tiên ngắt IP được xóa sau khí reset hệ thống để đặt tất cả các sự ngắt ở

mức ưu tiên thấp hơn sự mặc định Y tưởng “các sự ưu tiên” cho phép một thủ tục phục vụ

ngắt ISR mới được ngắt nếu sự ngắt mdi nay ưu tiến cao hơn cho sự ngắt hiện hành đang phục

vụ

Trên 8051 có 2 mức ưu tiên thấp và 2 mức ưu tiên cao Nếu một thủ tục phục vụ ngắt

có mức ưu tiên thấp đang thực thi mà có một sự ngất ưu tiên cao hơn xuất hiện, thì thủ tục phục

vụ đó bị ngắt đi để thực thi thủ tục ngất mới Ngược lại thủ tục phục vụ ngắt có mức ưu tiên

cao hơn đang thực thi mà có sự ngắt ưu tiên thấp hơn xuất hiện, thì nó không thể bị ngắt mà phải chờ thực thi xong thủ tục phục vụ cao hơn mới nhảy tới thủ tục phục vụ ngất thấp

Chương trình thực thi ở mức cơ bản và không kết hợp với sự ngắt nào, nó có thể luôn

luôn bị ngắt bất chấp sự ưu tiên ngất ở mức cao hay thấp Nếu 2 sự ngắt của các ưu tiên khác

nhau xuất hiện đồng thời, sự ngắt ưu tiên cao hơn sẽ được phục vụ đầu tiên

2.5.2.3 Sự kiểm tra vòng quét liên

Nếu 2 sự ngắt có cùng mức ưu tiên xuất hiện đồng thời, thì sự kiểm tra vòng quét liên tiếp sẽ ấn định sự ngắt nào sẽ được phục vụ trước tiên Sự kiểm tra vòng quét liên tiếp ưu tiên

từ trên xuống theo thứ tự là : External 0, Timer 0, External 1, Timer 1, serial Port, Timer 2

Hình trên minh họa 5 nguồn ngắt của 8051, các kỹ xảo cho phép ngắt riêng và chung,

sự kiểm tra vòng quét liên tiếp và mức ưu tiên Trạng thái của tất cả các nguồn ngắt có hiệu

lực thông qua các bịt cờ tương ứng trong các thanh ghỉ chức năng đặc biệt Nếu có sự ngắt nào

bị cấm thì sự ngất đó không xuất hiện nhưng phần mêm vẫn còn kiểm tra cờ ngắt,

Sự ngất của Port nối tiếp đưa đến cổng OR logic của sự ngắt thu RI (Receive Interrupt) hoặc sự ngất phát TĨ (Transmit Interrupt) Tương tự sự ngắt của Port nối tiếp, các sự

CHƯƠNG 2: KHẢO SÁT VI DIEU KHIEN HQ MSC-51 (8951)

Trang 40

ngắt của Timer 2 có thể được sinh ra bởi cờ tràn TF2 hoặc cờ nhập ngoài EXF2 (External Input Flag)

Các bit cờ sinh ra các sự ngất được tóm tắt như sau :

| SenalPot | — Finer 0 THO TỊ - TCON 5 SCON I

2.5.3 VIỆC XỬ LÝ CAC SY NGAT (PROCESSING INTERRUPT) :

Khi một sự ngắt xuất hiện và được chấp nhận bởi CPU thì chương trình chính bị ngắt

Các hoạt động sau đây xuất hiện :

~ Lệnh hiện hành và kết thúc thực thi

- _ Bộ đếm chương trình PC được cất giữ vào Stack.s

- Trang thai ngất hiện hành được cất giữ vào bên trong

~_ Những sự ngắt bị ngăn lại tại mức ngất

~ Bộ đếm chương tình PC được LOAD với địa chỉ vectơ của thủ tục phục vụ ngất ISR

- _ Thủ tục phục vụ ngắt ISR được thực thi

“Thủ tục phục vụ ngắt ISR thực thi và đưa hoạt động vào đáp ứng ngắt, thủ tục phục vụ

ngắt ISR kết thúc với lệnh RETI (quay trở về chương trình chính từ Stack) Điều này khôi phục

lại giá trị cũ của bộ đếm chương trình từ Stack và hoàn toàn dừng lại trạng thái cũ Sự thực thi

của chương trình chính tiếp tục ở nơi mà nó ngừng lại

2.5.3.1 Céc vecto ngdt (Interrupt Vectors) :

Khi có một sự ngắt được nhận giá trị được LOAD vào PC được gọi bởi vectơ ngắt Nó

là địa chỉ của sự khởi động thủ tục phục vụ ngất ISR của nguồn ngất Các vectơ được cho trong

Ngày đăng: 19/11/2024, 11:30

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

TÀI LIỆU LIÊN QUAN

w