(Tài liệu Có kèm slide) Mục đích chính của đề tài là nhằm phát hiện sớm các đột nhập trong phạm vi giám sát và báo động cho chủ nhà hoặc bảo vệ thông qua việc truyền thông RF về mạch điều khiển trung tâm. Từ những mục đích trên, đề tài phải thỏa mãn được các yêu cầu sau: Hệ thống dễ dàng lắp đặt. Báo động kịp thời, nhanh chóng, chính xác khi xảy ra sự cố ở nơi lắp đặt hệ thống. Đề tài có thể ứng dụng trong các cơ quan, nhà máy, phân xưởng hoặc nhà riêng...
Trang 1LỜI CẢM ƠN
Trong suốt thời gian học tập và làm đồ án tại trường ĐH CÔNG NGHỆTHÔNG TIN VÀ TRUYỀN THÔNG, em đã nhận được sự hướng dẫn, giúp đỡnhiệt tình của quý thầy cô, các anh chị và các bạn Quý thầy cô không chỉtruyền đạt cho chúng em những kiến thức về chuyên môn cần thiết sau khi ratrường mà chúng em còn học hỏi được rất nhiều kiến thức thực tế từ thầy côtrong khoa cũng như cô hướng dẫn Do vậy em đã có thể hoàn thành đồ án tốtnghiệp trong đúng thời gian quy định
Với lòng kính trọng và biết ơn sâu sắc, em xin được bày tỏ lời cảm ơnchân thành tới: Quý thầy cô trường ĐH CNTT &TT đã giảng dạy cho chúng
em nhiều kiến thức quý báu Bộ môn Công nghệ viễn thông cùng tất cả quýthầy cô trong khoa Công nghệ điện tử và truyền thông đã giảng dạy những kiếnthức chuyên môn làm cơ sở để em thực hiện tốt đồ án tốt nghiệp và tạo điềukiện thuận lợi cho chúng em hoàn tất khóa học
Đặc biệt, em xin được cảm ơn thầy giáo Vũ Văn Diện- giáo viên hướngdẫn đã nhiệt tình giúp đỡ và chỉ dạy, giúp em định hướng tốt trong trong suốtthời gian hoàn thành đồ án
Bên cạnh đó, em cũng xin cảm ơn các bạn sinh viên viễn thông cũngnhư các bạn bên bộ môn điện tử đã đóng góp ý kiến và giúp đỡ em hoàn thànhsản phẩm thực tế
Thái nguyên, ngày…tháng….năm 2014
SINH VIÊN THỰC HIỆN
Hoàng Thanh Tùng
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan:
Những nội dung trong đồ án này là do tôi thực hiện dưới sự hướng dấntrực tiếp của thầy Vũ Văn Diện- giáo viên hướng dẫn, nghiên cứu trên Internet,sách báo, và các tài liệu trong và ngoài nước có liên quan Không sao chép hay
Thái Nguyên, ngày…tháng…năm 2014
Hoàng Thanh Tùng
Trang 3MỤC LỤC
Trang 4DANH MỤC HÌNH ẢNH
Trang 5DANH MỤC BẢNG BIỂU
Trang 6LỜI NÓI ĐẦU
Truyền dữ liệu không dây là một mảng lớn trong điện tử thông tin, dữ liệuđược truyền đi có thể là tương tự cũng có thể là số Trong truyền dữ liệu khôngdây, hiệu quả nhất vẫn là truyền bằng sóng điện từ hay sóng Radio, bởi những ưuđiểm là truyền ở khoảng cách xa, đa hướng, tần số hoạt động cao, không bị ảnhhưởng bởi vật cản hay tường Vì những ưu điểm trên, các ứng dụng của sóng RF
đã được áp dụng rộng rãi trong điều khiển dân dụng Như trong lĩnh vực y tế,trong các phòng xạ trị bằng phóng xạ, cũng như chụp bức xạ Xquang, điều khiển
từ xa các thiết bị qua sóng RF đang được ứng dụng rộng rãi để tránh cho cácnhân viên y tế tiếp xúc trực tiếp với phóng xạ và tia Xquang Ngoài lĩnh vực y tế,sóng RF hiện nay cũng được áp dụng rộng rãi trong các mô hình điều khiển môhình robot và máy bay
Trong xã hội hiện nay đời sống tinh thần, vật chất của con người khôngngừng nâng cao Chính vì thế mà sự tích lũy về của cải, vật chất nói chung ngàycàng nhiều với các hình thức đa dạng, xong việc bảo vệ những của cải và vật chất
đó vẫn còn gặp nhiều khó khăn Nhìn chung những vụ trộm cắp tài sản riêng haychung thường gây thiệt hại lớn về vật chất và cả tinh thần
Vì hai lý do trên và với những kiến thức đã được học, tìm hiểu từ các tài
liệu liên quan, em đã nghiên cứu và hoàn thành đề tài “Thiết kế mạch cảnh báo anh ninh trong phòng khách gia đình” có sử dụng truyền dữ liệu không dây
bằng RF dưới sự hướng dẫn tận tình của thầy Vũ Văn Diện, khoa CNĐT & TT,trường ĐH Công nghệ thông tin và truyền thông Thái Nguyên
Hi vọng với đề tài này sẽ làm cơ sở nghiên cứu cho các nhóm khác saunày có thể mở rộng và phát triển hơn nữa
Mặc dù đã cố gắng rất nhiều trong thời gian thực hiện đề tài nhưng cũngkhông thể tránh khỏi những sai sót do kiến thức cũng như kinh nghiệm còn hạn chế.Rất mong được sự góp ý từ các thầy cô và các bạn để đề tài đạt kết quả tốt hơn
Xin chân thành cảm ơn thầy giáo Vũ Văn Diện đã tận tình hướng dẫn emhoàn thành đề tài này !
Thái Nguyên, tháng….năm 2014
Trang 7CHƯƠNG 1 : KHẢO SÁT HỆ THỐNG
1.1 Tổng quan về đề tài
1.1.1 Khái quát chung về đề tài
Cùng với sự tiến bộ của khoa học kỹ thuật, các thiết bị điện tử ra đời ngàycàng nhiều Và nhu cầu sử dụng các thiết bị một cách tự động cũng như các chứcnăng tự động cảnh báo trong gia đình cũng như cơ quan là rất cần thiết Có thể ởViệt Nam chưa phát triển mạnh trong các lĩnh vực này nhưng hiện nay ở trên thếgiới thì mô hình ngôi nhà thông minh đã phát triển rất mạnh mẽ
Với xu hướng phát triển theo mô hình ngôi nhà thông minh thì các chứcnăng điều khiển cảnh báo tự động là không thể thiếu Một trong những chứcnăng làm nên sự thông minh cho ngôi nhà đó chính là chức năng cảnh báochống trộm Đó chính là lý do em chọn đề tài này với mong muốn đề tài này cóthể đem ra ứng dụng trong thực tế Mô hình cảnh báo chống trộm sử dụng cảmbiến hồng ngoại PIR có truyền thông RF về mạch điều khiển trung tâm
Mục đích chính của đề tài là nhằm phát hiện sớm các đột nhập trongphạm vi giám sát và báo động cho chủ nhà hoặc bảo vệ thông qua việc truyềnthông RF về mạch điều khiển trung tâm
Từ những mục đích trên, đề tài phải thỏa mãn được các yêu cầu sau:
Thiết bị báo động cho phép chúng ta có thể biết được lúc nào có ngườiđột nhập vào nhà Giải pháp thông minh đó có thể phát hiện kẻ trộm bằng các
Trang 8cảm biến mở cửa, cảm biến chuyển động khi kẻ trộm đột nhập Sẽ phát hiệnbằng cảm biến mở cửa chính hay cửa sổ khi được mở, và chuyển động khi cóngười xâm nhập qua bộ cảm biến hồng ngoại Hệ thống này kết hợp giữa phầncứng và phần mềm, khi có người xâm nhập sẻ phát ra tín hiệu báo động bằngcòi hú để gây chú ý cho người xung quanh đồng thời sẽ gửi tín hiệu báo trộm
về mạch điểu khiển trung tâm
1.1.3 Mục đích nghiên cứu
Đề tài được nghiên cứu, khảo sát và thực hiện với mục đích trước mắtnhắm hoàn thành đồ án tốt nghiệp để được ra trường Bên cạnh đó em cònmong muốn đề tài này sẽ được phát triển hơn nữa và được thực hiện trên phạm
vi rộng rãi để phục vụ nhu cầu của cuộc sống hiện đại ngày nay
Với việc áp dụng những kiến thức đã học trong nhà trường và những tìmhiểu thực tế, em đã nghiên cứu tổng quan về về sử dụng cảm biến và kết hợpVĐK 8051 Dựa vào cơ sở lý thuyết đã nghiên cứu được, em đã thiết kế mộtứng dụng demo “Mạch cảnh báo an ninh trong phòng khách gia đình” Hệthống bao gồm module cảm biến phát và thu , phần mạch điều khiển trung tâm
1.1.4 Đối tượng nghiên cứu
Để có thể thực hiện ứng dụng demo mạch cảng báo an ninh trong phòngkhách gia đình, em tập trung nghiên cứu các đối tượng sau:
Nghiên cứu một cách tổng quan về cảm biến hồng ngoại
Nghiên cứu tổng quan về truyền thông RF
Chương trình phần mềm điều khiển trên 89C51
Nguyên lý hoạt động của hệ thống và ứng dụng trên thực tế
1.2 Tổng quan về RF (Radio frequency)
Trong một phiên truyền thông bản chất của dữ liệu là bao gồm các bit 0 và
1, bên phát dữ liệu cần có một cách thức để gửi các bit 0 và 1 để gửi cho bênnhận Một tín hiệu xoay chiều hay một chiều tự nó sẽ không thực hiện tác vụ này.Tuy nhiên, nếu một tín hiệu có thay đổi và dao động, dù chỉ một ít, sự thay đổinày sẽ giúp phân biệt bit 0 và bit 1 Lúc đó, dữ liệu cần truyền sẽ có thể gửi vànhận thành công dựa vào chính sự thay đổi của tín hiệu Dạng tín hiệu đã điều
Trang 9sóng có thể thay đổi để tạo ra sóng mang, đó là biên độ, tần số và pha Tất cả cácdạng truyền thông dùng sóng vô tuyến đều dùng vài dạng điều chế để truyền dữliệu Để mã hóa dữ liệu vào trong một tín hiệu gửi qua sóng AM/FM, điện thoại
di động, truyền hình vệ tinh, ta phải thực hiện một vài kiểu điều chế trong sóng
vô tuyến đang truyền
Để truyền dữ liệu trong mạch cảnh báo em sử dụng vi mạch hỗ trợ khôngdây là vi mạch PT2262 và PT2272, hai vi mạch này được ứng dụng rộng rãitrong việc truyền dữ liệu số nhất là trong lĩnh vực điều khiển và thông tin số.Ngoài ra còn có các vi mạch như PT2248, PT2249, PT9148 PT9149… cũng hỗtrợ xử lí tín hiệu không dây
1.2.1 Mã hóa tín hiệu
Trong thực tế hiện nay, có rất nhiều loại mã hóa được sử dụng phổ biếnnhư mã NRZ, mã AMI, mã Pseudoternary…để mã hóa tín hiệu Để thiết kế đềtài, chúng em sử dụng mã hóa Manchester và dữ liệu được mã hóa bởi IC chuyêndụng PT2262
Hình 1.1: Mã hóa Manchester cơ bản
1.2.2 Biểu diễn Bit code mã hóa
Cơ bản PT2262 sử dụng mỗi Bit gồm 3 trạng thái 0,1 và f Mỗi trạng thái
sẽ có 1 kiểu mã hóa Bit code khác nhau Mỗi Bit code mã hóa chứa trong 32 chu
kì tần số mã hóa của OSC (32 α)
Trang 10Hình 1.2 : Bit code mã hóa
Hình 1.4 Một frame truyền 4 bit data
Với dòng PT2262 sử dụng 6 bits địa chỉ và 6 bits dữ liệu thì từ mã nàyđược biểu diễn:
Trang 11Hình 1.5 Một frame truyền 6 bit data
Các thời khoảng bit có thể có là 4α,12α và 127α tương ứng với độ dài 1bit,
3 bits và 31.5 bits
Việc đo các thời khoảng bit này thực hiện khi có sự thay đổi trạng thái củatín hiệu Các điểm đỏ sẽ đánh dấu việc kết thúc đo thời gian bit 0 và bắt đầu đocho bit 1, ngược lại các điểm xanh kết thúc việc đo thời gian của bit 1 và bắt đầu
đo cho bit 0
Hình 1.7 Thực hiện đo khoảng thời gian bit
Gọi T1 và T2 là khoảng thời gian đo được của xung 1 và 0 liên tiếp nhauthì ta có bảng giải mã các bits:
Trang 12Bảng 1.1 Khoảng thời gian xung
Với mỗi cặp 4 bits thu được liên liếp nhau ta lại thu được kết quả giải mãtương ứng
Bảng 1.2 Kết quả giải mã sau khi đếm xung
Thực hiện lần lượt 12 bits địa chỉ/ dữ liệu và 1 Sync Bit ta sẽ thu được 1 từmã(Code Word)
Vì PT2262 phát 1 khung truyền gồm 4 từ mã (Code Word) nên khi ta thuliên tiếp các từ mã (Code Word) giống nhau thì có nghĩa chắc chắn dữ liệu đãđược giải mã đúng
1.2.4 Điều chế tín hiệu
Với mục đích của đề tài là thiết kế truyền tín hiệu từ xa qua sóng vô tuyến,
em lựa chọn phương pháp điều chế ASK/OOK với tần số 315MHz
ASK (Amplitude Shift Keying), tiếng Việt gọi là điều chế số theo biên độ
tín hiệu Tín hiệu ASK có dạng sóng dao động có tần số f, mỗi bit đặc trưng bởi
biên độ khác nhau của tín hiệu Và OOK là dạng đơn giản nhất của điều chế sốASK
Trang 13Hình 1.8 Tín hiệu điều chế ASK
1.3 Mô hình tổng quan hệ thống
Hình 1.9: Mô hình tổng quan hệ thống
Mô hình trên bao gồm nhiều thiết bị cảm biến PIR với chức năng pháthiện có kẻ đột nhập thì truyền tín hiệu về khối xử lý phần cứng PIR có thể lắpđặt ở bất cứ nới nào trong ngôi nhà mà cần thiết phải bảo vệ Tín hiệu cảnh báo
sẽ được gửi về mạch điều khiển trung tâm
Trang 14CHƯƠNG 2: CƠ SỞ LÍ THUYẾT 2.1 Tổng quan về họ vi điều khiển 8051
2.1.1 Lịch sử phát triển của 8051
Vào năm 1981 hãng Intel giới thiệu một số bộ vi điều khiển được gọi là
8051 Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM trên chip, hai bộđịnh thời, một cổng nối tiếp và 4 cổng (đều rộng 8 bit) vào – ra tất cả được đặttrên một chip Lúc ấy nó được coi là một “hệ thống trên chip” 8051 là một bộ xử
lý 8 bit có nghĩa là CPU chỉ có thể làm việc với 8 bit dữ liệu tại một thời điểm
Dữ liệu lớn hơn 8 bit được chia ra thành các dữ liệu 8 bit để xử lý 8051 có tất cả
4 cổng vào – ra I/O mỗi cổng rộng 8 bit Mặc dù 8051 có thể có một ROM trênchip cực đại là 64K byte, nhưng các nhà sản xuất lúc đó đã cho xuất xưởng chỉvới 4K byte ROM trên chip
8051 đã trở lên phổ biến sau khi Intel cho phép các nhà sản xuất khác sảnxuất và bán bất kỳ dạng biến thể nào của 8051 mà họ thích với điều kiện họ phải
để lại mã tương thích với 8051 Điều này dẫn đến sự ra đời nhiều phiên bản của
8051 với các tốc độ khác nhau và dung lượng ROM trên chip khác nhau đượcbán bởi hơn nửa các nhà sản xuất Điều này quan trọng là mặc dù có nhiều biếnthể khác nhau của 8051 về tốc độ và dung lượng nhớ ROM trên chip, nhưng tất
cả chúng đều tương thích với 8051 ban đầu về các lệnh Điều này có nghĩa là nếuviết chương trình của mình cho một phiên bản nào đó thì nó cũng sẽ chạy vớimọi phiên bản bất kỳ khác mà không phân biệt nó được sản xuất từ hãng nào
Trang 15Bảng 2.1: Các đặc tính của 8051 đầu tiên
Trang 162.1.3.Các bộ vi điều khiển 8051 từ các hãng khác nhau
Bộ vi điều khiển 8751
Chíp 8751 chỉ có 4K byte bộ nhớ UV-EPROM trên chíp Để sử dụng chipnày để phát triển yêu cầu truy cập đến một bộ đốt PROM cũng như bộ xoá UV-EPROM để xoá nội dung của bộ nhớ UV-EPROM bên trong 8751 trước khi ta cóthể lập trình lại nó Do một thực tế là ROM trên chíp đối với 8751 là UV-EPROM nên cần phải mất 20 phút để xoá 8751 trước khi nó có thể được lập trìnhtrở lại Điều này đã dẫn đến nhiều nhà sản xuất giới thiệu các phiên bản FlashRom và UV-RAMcủa 8051 Ngoài ra còn có nhiều phiên bản với các tốc độ khácnhau của 8751 từ nhiều hãng khác nhau
Bộ vi điều khiển AT89C51 từ Atmel Corporation
Chíp 8051 phổ biến này có ROM trên chíp ở dạng bộ nhớ Flash Điều này
là lý tưởng đối với những phát triển nhanh vì bộ nhớ Flash có thể được xoá trongvài giây trong tương quan so với 20 phút hoặc hơn mà 8751 yêu cầu Vì lý donày mà AT89C51 để phát triển một hệ thống dựa trên bộ vi điều khiển yêu cầumột bộ đốt ROM mà có hỗ trợ bộ nhớ Flash Tuy nhiên lại không yêu cầu bộ xoáROM Lưu ý rằng trong bộ nhớ Flash ta phải xoá toàn bộ nội dung của ROMnhằm để lập trình lại cho nó Việc xoá bộ nhớ Flash được thực hiện bởi chính bộđốt PROM và đây chính là lý do tại sao lại không cần đến bộ xoá Để loại trừ nhucầu đối với một bộ đốt PROM hãng Atmel đang nghiên cứu một phiên bản của
AT 89C51 có thể được lập trình qua cổng truyền thông COM của máy tínhIBMPC
Số linh kiện ROM RAM Chân
Đóng vỏ
Trang 17Chữ C trong ký hiệu AT89C51 là CMOS.
Cũng có những phiên bản đóng vỏ và tốc độ khác nhau của những sản phẩmtrên đây Ví dụ để ý rằng chữ “C” đứng trước số 51 trong AT 89C51 -12PC là kýhiệu cho CMOS “12” ký hiệu cho 12 MHZ và “P” là kiểu đóng vỏ DIP và chữ “C”cuối cùng là ký hiệu cho thương mại (ngược với chữ “M” là quân sự) Thôngthường AT89C51 - 12PC rất lý tưởng cho các dự án của học sinh, sinh viên
Bộ vi điều khiển DS5000 từ hãng Dallas Semiconductor
Một phiên bản phổ biến khác nữa của 8051 là DS5000 của hãng DallasSemiconductor Bộ nhớ ROM trên chíp của DS5000 ở dưới dạng NV-RAM Khảnăng đọc/ ghi của nó cho phép chương trình được nạp vào ROM trên chíp trongkhi nó vẫn ở trong hệ thống (không cần phải lấy ra) Điều này còn có thể đượcthực hiện thông qua cổng nối tiếp của máy tính IBM PC Việc nạp chương trìnhtrong hệ thống (in-system) của DS5000 thông qua cổng nối tiếp của PC làm cho
nó trở thành một hệ thống phát triển tại chỗ lý tưởng Một ưu việt của NV-RAM
là khả năng thay đổi nội dung của ROM theo từng byte tại một thời điểm Điềunày tương phản với bộ nhớ Flash và EPROM mà bộ nhớ của chúng phải đượcxoá sạch trước khi lập trình lại cho chúng
Mã linh kiện ROM RAM Chân I/O Timer Ngắt Vcc Đóng
128128128128
32323232
2222
6666
5V5V5V5V
40404040
Bảng 2.3: Các phiên bản 8051 từ hãng Dallas Semiconductor.
Chữ “T” đứng sau 5000 là có đồng hồ thời gian thực
Lưu ý rằng đồng hồ thời gian thực RTC là khác với bộ định thời Timer.RTC tạo và giữ thời gian l phút giờ, ngày, tháng – năm kể cả khi tắt nguồn
Còn có nhiều phiên bản DS5000 với những tốc độ và kiểu đóng gói khácnhau Ví dụ DS5000-8-8 có 8K NV-RAM và tốc đọ 8MHZ Thông thườngDS5000-8-12 hoặc DS5000T-8-12 là lý tưởng đối với các dự án của sinh viên
Trang 188MHz12MHz8MHz8MHz (with RTC)12MHz
12MHz (with RTC)
Bảng 2.4: Các phiên bản của DS5000 với các tốc độ khác nhau
Phiên bản OTP của 8051
Các phiên bản OTP của 8051 là các chíp 8051 có thể lập trình được mộtlần và được cung cấp từ nhiều hãng sản xuất khác nhau Các phiên bản Flash vàNV-RAM thường được dùng để phát triển sản phẩm mẫu Khi một sản pohẩmđược thiết kế và được hoàn thiện tuyệt đối thì phiên bản OTP của 8051 đượcdùng để sản hàng loạt vì nó rẻ hơn rất nhiều theo giá thành một đơn vị sản phẩm
Họ 8051 từ Hãng Philips
Một nhà sản xuất chính của họ 8051 khác nữa là Philips Corporation Thậtvậy, hãng này có một dải lựa chọn rộng lớn cho các bộ vi điều khiển họ 8051.Nhiều sản phẩm của hãng đã có kèm theo các đặc tính như các bộ chuyển đổiADC, DAC,cổng I/0 mở rộng và cả các phiên bản OTP và Flash
2.1.4 Kiến trúc vi điều khiển 8051
2.1.4.1.Tổ chức bộ nhớ
Các vi điều khiển thuộc họ 8051 đều tổ chức thành 2 không gian chươngtrình và dữ liệu Kiến trúc vi xử lý 8 bit của 8051 này cho phép truy nhập và tínhtoán nhanh hơn đối với không gian dữ liệu nhờ việc phân chia 2 không gian bộnhớ chương trình và dữ liệu như trên Tuy nhiên bộ nhớ ngoài được truy nhập bởi
hệ thống 16 bit địa chỉ vẫn có thể thực hiện nhờ thanh ghi con trỏ
Bộ nhớ chương trình (ROM, EPROM) là bộ nhớ chỉ đọc, có thể mở rộngtối đa 64Kbyte Với họ vi điều khiển 89xx, bộ nhớ chương trình được tích hợpsẵn trong chip có kích thước nhỏ nhất là 4kByte Với các vi điều khiển khôngtích hợp sẵn bộ nhớ chương trình trên chip, buộc phải thiết kế bộ nhớ chương
Trang 19trình bên ngoài Ví dụ sử dụng EPROM: 2764 (64Kbyte), khi đó chân PSEN phải
ở mức tích cực (5V)
Hình 2.2: Cấu trúc vi điều khiển 8051
Bộ nhớ dữ liệu (RAM) tồn tại độc lập so với bộ nhớ chương trình Họ viđiều khiển 8051 có bộ nhớ dữ liệu tích hợp trên chip nhỏ nhất là 128byte và cóthể mở rộng với bộ nhớ dữ liệu ngoài lên tới 64kByte Với những vi điều khiểnkhông tích hợp ROM trên chip thì vẫn có RAM trên chip là 128byte Khi sửdụng RAM ngoài, CPU đọc và ghi dữ liệu nhờ tín hiệu trên các chân RD và WR.Khi sử dụng cả bộ nhớ chương trình và bộ nhớ dữ liệu bên ngoài thì buộc phảikết hợp chân RD và PSEN bởi cổng logic AND để phân biệt tín hiệu truy xuất dữliệu trên ROM hay RAM ngoài
2.1.4.2 Bộ nhớ chương trình
Hình 2.3: Cấu trúc bộ nhớ chương trình
Trang 20Hình 2.4: Địa chỉ các ngắt trên bộ nhớ chương trình
Hình 2.3 mô tả cấu trúc bộ nhớ chương trình Sau khi khởi động, CPU bắt
đầu thực hiện chương trình ở vị trí 0000H
Hình 2.4 mô tả địa chỉ ngắt mặc định trên bộ nhớ chương trình Mối khi
xảy ra ngắt, con trỏ của CPU sẽ nhảy đến đúng địa chỉ ngắt tương ứng và thực thichương trình tại đó Ví dụ ngắt ngoài 0 sẽ có địa chỉ là 0003H, khi xảy ra ngắtngoài 0 thì con trỏ chương trình sẽ nhảy đến đúng địa chỉ 0003H để thực thichương trình tại đó Nếu trong chương trình ứng dụng không xử dụng đến ngắtngoài 0 thì địa chỉ 0003H vẫn có thể dùng cho mục đích khác (sử dụng cho bộnhớ chương trình)
2.1.4.3 Bộ nhớ dữ liệu
Hình 2.5: Cấu trúc bộ nhớ dữ liệu
Trang 21Hình 15 mô tả cấu trúc bộ nhớ dữ liệu trong và bộ nhớ dữ liệu ngoài của
họ vi điều khiển 8051 CPU sẽ dùng đến các chân RD và WR khi truy cập đến bộnhớ dữ liệu ngoài
Hình 1.6 mô tả cấu trúc bộ nhớ dữ liệu trong chip, được chia thành 3 khối
là 128 byte thấp, 128 byte cao và 128 byte đặc biệt
Hình 2.6: Cấu trúc bộ nhớ trong
Hình 1.7 mô tả cấu trúc 128 byte thấp của bộ nhớ dữ liệu của họ vi điều
khiển 8051 32 byte đầu tiên (00H-1FH) được sử dụng cho 4 bộ 8 thanh ghi R7 Hai bit của thanh ghi đặc biệt PSW sẽ lựa chọn 1 trong 4 bộ thanh ghi mà viđiều khiển sẽ dùng trong khi thực thi chương trình
R0-Hình 2.7: Cấu trúc 128 byte thấp của bộ nhớ dữ liệu trong
Trang 228051 chứa 210 vị trí bit được định địa chỉ trong đó 128 bit chứa trong cácbyte ở địa chỉ từ 20H đến 2FH (16 byte x 8 bit = 128 bit) và phần còn lại chứatrong các thanh ghi đặc biệt Ngoài ra 8051 còn có các port xuất/nhập có thể địnhđịa chỉ từ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ácthiết bị xuất/nhập đơn bit
Vùng RAM đa mục đích có 80 byte đặt ở địa chỉ từ 30H đến 7FH, bêndưới vùng này từ địa chỉ 00H đến 2FH là vùng nhớ có thể được sử dụng tương
tự Bất kỳ vị trí nhớ nào trong vùng RAM đa mục đích đều có thể được truy xuất
tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp hoặc gián tiếp
Bất kỳ vị trí nhớ nào trong vùng RAM đa mục đích đều có thể được truyxuất tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp hoặc gián tiếp
Cũng như các thanh ghi từ R0 đến R7, ta có 21 thanh ghi chức năng đặcbiệt SFR chiếm phần trên của Ram nội từ địa chỉ 80H đến FFH Cần lưu ý làkhông phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chỉ có 21địa chỉ được định nghĩa
Hình 2.8: Cấu trúc 128 byte cao của bộ nhớ dữ liệu
2.1.5 Các thanh ghi
Trong bộ vi điều khiển các thanh ghi được dùng để lưu cất thông tin tạmthời, những thông tin này có thể là một byte dữ liệu cần được xử lý hoặc là mộtđịa chỉ đến dữ liệu cần được nạp
Phần lớn các thanh ghi của 8051 là các thanh ghi 8 bit Trong 8051 chỉ cómột kiểu dữ liệu: Loại 8 bit, 8 bit của một thanh ghi được trình bày như sau :
Trang 237 5 4 3 2 1Với MBS (Most Sigfican bit) là bit có giá trị cao nhất D7 cho đến LBS(Leart Significant bit) là bit có giá trị thấp nhất D0 Với một kiểu dữ liệu 8 bit thìbất kỳ dữ liệu nào lớn hơn 8 bit đều phải được chia thành các khúc 8 bit trước khiđược xử lý.
Hình 2.9: Thanh ghi 8 bit của 8051
Hình 2.10: Thanh ghi 16 bit của 8051
Các thanh ghi được sử dụng rộng rãi nhất của 8051 là A (thanh ghi tíchlũy), B, R0 – R7, DPTR (con trỏ dữ liệu) và PC (bộ đếm chương trình) Tất cảcác dữ liệu trên đều là thanh ghi 8 bit, trừ DPTR và PC là 16 bit
Thanh ghi tích lũy A được sử dụng cho tất cả mọi phép toán số học và logic.Ngoài ra 8051 còn có 21 thanh ghi chức năng đặc biệt SFR chiếm phầntrên của RAM nội từ địa chỉ 80H đến FFH Cần lưu ý là không phải tất cả 128địa chỉ từ 80H đến FFH đều được định nghĩa mà chỉ có 21 địa chỉ được định
nghĩa Hình 2.11 mô tả các thanh ghi đặc biệt trong vùng nhớ dữ liệu 80H đến
FFH và giá trị của chúng sau khi Reset
Trang 24Hình 2.11: Các thanh ghi đặc biệt
Thanh ghi chính:
Thanh ghi tính toánchính của vi điều khiển 8051 ACC (Accumulator) Làthanh ghi đặc biệt của 8051 dùng để thực hiện các phép toán của CPU, thường kíhiệu là A
Thanh ghi phụ:
Thanh ghi tính toán phụ của vi điều khiển 8051 là B Thanh ghi B ở địachỉ F0H được dùng chung với thanh chứa A trong các phép toán nhân, chia LệnhMULAB nhân 2 số 8 bit không dấu chứa trong A và B và chứa kết quả 16 bit vàocặp thanh ghi B, A (thanh chứa A cất byte thấp và thanh ghi B cất byte cao)
Lệnh chia DIVAB chia A bởi B, thương số cất trong thanh chứa A và dư sốcất trong thanh ghi B Thanh ghi B còn được xử lý như một thanh ghi nháp Cácbit được định địa chỉ của thanh ghi B có địa chỉ từ F0H đến F7H
Trang 25Thanh ghi trạng thái chương trình (PSW):
Thanh ghi trạng thái chương trình PSW (địa chỉ: D0H) là thanh ghi mô tảtoàn bộ trạng thái chương trình đang hoạt động của hệ thống Hai bảng sau sẽ mô
tả thanh ghi này
Cờ nhớ (Carry Flag): được Set nếu có Bit nhớ
từ Bit 7 trong phép cộng hoặc có Bit mượn cho Bit 7 trong phép trừ
Cờ nhớ phụ: được Set trong phép cộng nếu có
Bit nhớ từ Bit 3 sang Bit 4 hoặc kết quả trong 4 Bit thấp nằm trong khoảng 0AH->0FH
PSW.2 OV D2H Cờ tràn (Overflow Flag): được Set khi phép
toán có dấu có kết quả > +127 hoặc < -128
Cờ kiểm tra chẵn lẻ: được Set hoặc Clear bởi
phần cứng sau mỗi 1 chu kỳ lệnh, để chỉ ra rằng
có 1 số chẵn hoặc số lẻ Bit 1 trong thanh chứa
Thanh ghi ngăn xếp (Stack Pointer):
Con trỏ stack SP (stack pointer) là 1 thanh ghi 8 bit ở địa chỉ 81H SP chứađịa chỉ của dữ liệu hiện đang ở đỉnh của stack Các lệnh liên quan đến satck bao
Trang 26gồm lệnh cất dữ liệu vào stack và lệnh lấy dữ liệu ra khỏi stack Việc cất vàostack làm tăng SP trước khi ghi dữ liệu và việc lấy dữ liệu ra khỏi stack sẽ giảm
SP Vùng stack của 8051 được giữ trong RAM nộivà được giới hạn đến các địachỉ truy xuất được bởi kiểu định địa chỉ gián tiếp Các lệnh PUSH và POP sẽ cất
dữ liệu vào stack và lấy dữ liệu từ stack, các lệnh gọi chương trình con (ACALL,LCALL) và lệnh trở về (RET, RETI) cũng cất và phục hồi nội dung của bộ đếmchương trình PC (Program counter)
Con trỏ dữ liệu DPTR:
Con trỏ dữ liệu DPTR (data pointer) được dùng để truy xuất bộ nhớchương trình ngoài hoặc bộ nhớ dữ liệu ngoài DPTR là một thanh ghi 16 bit cóđịa chỉ là 82H (DPL, byte thấp) và 83H (DPH, byte cao)
Thanh ghi các cổng P0-P3:
Các port xuất/nhập của 8051 bao gồmPort 0 tại địa chỉ 80H, Port 1 tại địachỉ 90H, Port 2 tại địa chỉ A0H và Port 3 tại địa chỉ B0H Tất cả các port đềuđược định địa chỉ từng bit nhằm cung cấp các khả năng giao tiếp mạnh
Thanh ghi bộ đệm truyền thông nối tiếp (Serial Data Buffer):
Bộ đệm truyền thông được chia thành hai bộ đệm, bộ đệm truyền dữ liệu và bộđệm nhận dữ liệu Khi dữ liệu được chuyển vào thanh ghi SBUF, dữ liệu sẽ đượcchuyển vào bộ đệm truyền dữ liệu và sẽ được lưu giữ ở đó cho đến khi quá trìnhtruyền dữ liệu qua truyền thông nối tiếp kết thúc Khi thực hiện việc chuyển dữ liệu từSBUF ra ngoài, dữ liệu sẽ được lấy từ bộ đệm nhận dữ liệu của truyền thông nối tiếp
Thanh ghi của bộ định thời/bộ đếm:
8051 có 2 bộ đếm/định thời (counter/timer) 16 bit để định các khoảng thờigian hoặc để đếm các sự kiện Các cặp thanh ghi (TH0, TL0) và (TH1, TL1) làcác thanh ghi của bộ đếm thời gian Bộ định thời 0 có địa chỉ 8AH (TL0, bytethấp) và 8CH (TH0, byte cao) Bộ định thời 1 có địa chỉ 8BH (TL1, byte thấp) và8DH (TH1, byte cao)
Hoạt động của bộ định thời được thiết lập bởi thanh ghi chế độ định thờiTMOD (Timer Mode Register) ở địa chỉ 88H Chỉ có TCON được định địa chỉtừng bit
Các thanh ghi điều khiển:
Các thanh ghi điều khiển đặc biệt như IP, IE, TMOD, TCON, SCON vàPCON là các thanh ghi điều khiển và ghi nhận trạng thái của hệ thống ngắt, bộđếm/định thời, truyền thông nối tiếp
Trang 272.1.6 Tìm hiểu cổng vào-ra của 8051
2.1.6.1 Mô tả chân của 8051
Mặc dù các thành viên của họ 8051 (ví dụ 8751, 89C51, DS5000) đều cócác kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng chân DIP (Dual In-LinePakage) dạng vỏ dẹt vuông QFP (Quad Flat Pakage) và dạng chíp không có chân
đỡ LLC (Leadless Chip Carrier) thì chúng đều có 40 chân cho các chức năngkhác nhau như vào/ra I/0, đọc RD, ghi WR, địa chỉ, dữ liệu và ngắt Cần phải lưu
ý rằng một số hãng cung cấp một phiên bản 8051 có 20 chân với số cổng vào-ra
ít hơn cho các ứng dụng yêu cầu thấp hơn Tuy nhiên, vì hầu hết các nhà pháttriển chính sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên ta chỉ tậptrung mô tả phiên bản này
Hình 2.12: Sơ đồ bố trí chân của 8051
Hình 2.12 trên là sơ đồ bố trí chân của 8051 Ta thấy rằng trong 40 chân
thì có 32 chân dành cho các cổng P0, P1, P2 và P3 với mỗi cổng có 8 chân Cácchân còn lại được dành cho nguồn VCC, đất GND, các chân dao động XTAL1 vàXTAL2, chân Reset RST, chân cho phép chốt địa chỉ ALE, chân truy cập địa chỉngoài EA, cho phép cất chương trình PSEN Trong 8 chân này thì 6 chân VCC ,GND, XTAL1, XTAL2, RST và EA được các họ 8051 sử dụng Hay nói cách
Trang 28khác là chúng phải được nối để cho hệ thống làm việc Còn hai chân khác làPSEN và ALE được sử dụng chủ yếu trong các họ 8031.
- Chân VCC
Chân số 40 là VCC, có chức năng cấp điện áp nguồn cho chíp Nguồnđiện áp là +5V
- Chân GND
Chân số 20 là GND, được nối với đất
- Chân XTAL1 và XTAL2
8051 có một bộ dao động trên chíp nhưng nó yêu cầu có một xung đồng
hồ ngoài để chạy nó Một bộ dao động thạch anh sẽ được nối tới các chân đầuvào XTAL1 (chân 19) và XTAL2 (chân 18) Bộ dao động thạch anh được nối tớiXTAL1 và XTAL2 cũng cần hai tụ gốm giá trị khoảng 30pF Một phía của tụ
điện được nối xuống đất như được trình bày trên hình 2.13a.
Cần phải lưu ý rằng có nhiều tốc độ khác nhau của họ 8051 Tốc độ đượccoi như là tần số cực đại của bộ dao động được nối tới chân XTAL Một bộ viđiều khiển 8051 yêu cầu một tinh thể thạch anh có tần số không lớn hơn 20MHz.Khi 8051 được nối tới một bộ dao động tinh thể thạch anh và cấp nguồn thì ta cóthể quan sát tần số trên chân XTAL2 bằng máy hiện sóng Nếu ta quyết định sửdụng một nguồn tần số khác bộ dao động thạch anh, chẳng hạn như là bộ daođộng TTL thì nó sẽ được nối tới chân XTAL1, còn chân XTAL2 thì để hở không
kê các thanh ghi đặc biệt của 8051 và giá trị của chúng sau khi Reset
Trang 29Hình 2.14 : Giá trị một số thanh ghi sau khi RESET
Lưu ý rằng giá trị của bộ đếm chương trình PC là 0 khi tái lập để ép CPUnạp mã lệnh đầu tiên từ bộ nhớ ROM tại vị trí ngăn nhớ 0000 Điều này có nghĩa
là ta phải đặt dòng đầu tiên của mã nguồn tại vị trí ngăn nhớ 0 của ROM vì đây là
mã mà sau khi CPU thức tỉnh sẽ tìm lệnh đầu tiên
Trang 30Các thành viên họ 8051 như 8751, 98C51 hoặc DS5000 đều có ROM trênchíp lưu cất chương trình Trong các trường hợp như vậy thì chân EA được nốitới Vcc Đối với các thành viên của họ như 8031 và 8032 mà không có ROM trênchíp thì mã chương trình được lưu cất ở trên bộ nhớ ROM ngoài và chúng đượcnạp cho 8031/32 Do vậy, đối với 8031 thì chân EA phải được nối đất để báorằng mã chương trình được cất ở ngoài.
Các chân mô tả ở trên đều phải được nối mà không cần thành phần nàođược sử dụng Còn hai chân dưới đây được sử dụng chủ yếu trong hệ thống viđiều khiển 8031
- Chân PSEN
PSEN là chân đầu ra cho phép cất chương trình (Program Store Enable)trong hệ thống Trên vi điều khiển 8031, chương trình được cất ở bộ nhớ ROMngoài thì chân này được nối tới chân OE của ROM
- Chân ALE
Chân cho phép chốt địa chỉ ALE là chân đầu ra tích cực cao Khi nối 8031tới bộ nhớ ngoài thì cổng P0 dùng để trao đổi cả địa chỉ và dữ liệu Hay nói cáchkhác 8031 dồn cả địa chỉ và dữ liệu qua cổng P0 để tiết kiệm số chân Chân ALEđược sử dụng để phân kênh địa chỉ và dữ liệu
2.1.6.2 Các chân cổng vào/ra và các chức năng của chúng
Bốn cổng P0, P1, P2 và P3 đều sử dụng 8 chân và tạo thành cổng 8 bít.Tất cả các cổng khi Reset đều được cấu hình như các đầu ra, sẵn sàng để được sửdụng như các cổng đầu ra Muốn sử dụng cổng nào trong số các cổng này làmđầu vào thì nó phải được lập trình
Trang 31Cổng P0
Cổng P0 chiếm tất cả 8 chân (từ chân 32 đến 39) Nó có thể được dùngnhư cổng đầu ra, để sử dụng các chân của cổng P0 vừa làm đầu ra, vừa làm đầuvào thì mỗi chân phải được nối tới một điện trở kéo bên ngoài 10kW Điều này là
do một thực tế là cổng P0 là một máng mở khác với các cổng P1, P2 và P3 Kháiniệm máng mở được sử dụng trong các chíp MOS về chừng mực nào đó nógiống như collector hở đối với các chíp TTL
Trong bất kỳ hệ thống nào sử dụng 8751, 89C51 hoặc DS5000 ta thườngnối cổng P0 tới các điện trở kéo, bằng cách này ta có thể sử dụng được cổng P0cho cả 2 trường hợp đầu ra và đầu vào Với những điện trở kéo ngoài được nối,khi Reset cổng P0 được cấu hình như một cổng đầu ra
Hình 2.16: Cổng P0 với các điện trở kéo
Cổng P0 là đầu vào: Với các điện trở được nối tới cổng P0 nhằm để tạo
nó thành cổng đầu vào thì nó phải được lập trình bằng cách ghi 1 tới tất cả các bitcủa P0
Vai trò kép của cổng P0: cổng P0 được gán là các bit địa chỉ AD0 - AD7
cho phép nó được sử dụng vừa cho địa chỉ, vừa cho dữ liệu Khi nối 8051/31 tới
bộ nhớ ngoài thì cổng P0 cung cấp cả địa chỉ và dữ liệu, 8051 dồn dữ liệu và địachỉ qua cổng P0 để tiết kiệm số chân ALE được sử dụng để tách địa chỉ và dữliệu với sự trợ giúp của IC chốt dữ liệu 74LS373
Cổng P1
Cổng P1 cũng chiếm tất cả 8 chân (từ chân 1 đến chân 8) nó có thể được
sử dụng như đầu vào hoặc đầu ra So với cổng P0 thì cổng này không cần đến