Mục lục LỜI NÓI ĐẦU 1 CHƯƠNG 1 2 GIỚI THIỆU TỔNG QUAN VỀ VI ĐIỀU KHIỂN 2 1.1: Giới thiệu chung về vi xử lý và vi điều khiển 2 1.1.1: Tổng quan 2 1.1.2: Lịch sử và sự phát triển của bộ vi xử lý 3 1.1.3: Vi xử lý và vi điều khiển 5 1.1.4: Ứng dụng của vi xử lý – vi điều khiển 7 1.2: Vi điều khiển 9 1.2.1: Ứng dụng của vi điều khiển 9 1.2.2: Phân loại 9 1.2.3: Hoạt đông của vi điều khiển 10 1.2.4: Cấu trúc chung của vi điều khiển 11 CHƯƠNG 2 VI ĐIỀU KHIỂN 89S52 17 2.1: Giới thiệu chung về vi điều khiển 8051 17 2.2: Giới thiệu sơ lược vi điều khiển 89S52 18 2.2.1: Tổng quan 89S52 18 2.2.2: Cấu trúc IC 89S52 19 2.2.3: Tổ chức bộ nhớ của vi điều khiển 25 2.2.4: Hoạt động định thời 27 2.2.5: Cổng nối tiếp 34 2.2.6: Tổ chức ngắt 37 2.3: Giới thiệu một số linh kiện khác 40 2.3.1: Giới thiệu 74HC595 40 2.3.2: Giới thiệu transistor TIP41C 41 2.3.3: IC 74HC245 41 2.4: Giới thiệu khối led 3D cube 43 2.4.1: Giới thiệu 43 2.4.2: Nguyên lý hoạt động 43 CHƯƠNG 3 45 NỘI DUNG THIẾT KẾ MẠCH 45 3.1: Sơ đồ thiết kế 45 3.1.1: Khối vi điều khiển 89S52 46 3.1.2: Khối ghi dịch 46 3.1.3: Khối nguồn 47 3.2: Các bước làm mạch 48 3.3: Thuật toán 49 Tài liệu tham khảo : 51 PHỤ LỤC 1 CODE LẬP TRÌNH 52
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA: ĐIỆN TỬ
***
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP
Đề tài: Thiết kế hệ thống điều khiển led 3D
Giáo viên hướng dẫn : Vũ Thị Hoàng Yến
Sinh viên thực hiện : Nguyễn Thị Hồng Phượng
MSV : 0741050295
Lớp : ĐH CNKT Điện Tử 4 – K7
Trang 21.1: Giới thiệu chung về vi xử lý và vi điều khiển 2
1.1.1: Tổng quan 2
1.1.2: Lịch sử và sự phát triển của bộ vi xử lý 3
1.1.3: Vi xử lý và vi điều khiển 5
1.1.4: Ứng dụng của vi xử lý – vi điều khiển 7
1.2: Vi điều khiển 9
1.2.1: Ứng dụng của vi điều khiển 9
1.2.2: Phân loại 9
1.2.3: Hoạt đông của vi điều khiển 10
1.2.4: Cấu trúc chung của vi điều khiển 11
CHƯƠNG 2 VI ĐIỀU KHIỂN 89S52 17 2.1: Giới thiệu chung về vi điều khiển 8051 17
2.2: Giới thiệu sơ lược vi điều khiển 89S52 18
2.2.1: Tổng quan 89S52 18
2.2.2: Cấu trúc IC 89S52 19
2.2.3: Tổ chức bộ nhớ của vi điều khiển 25
2.2.4: Hoạt động định thời 27
2.2.5: Cổng nối tiếp 34
2.2.6: Tổ chức ngắt 37
2.3: Giới thiệu một số linh kiện khác 40
2.3.1: Giới thiệu 74HC595 40
2.3.2: Giới thiệu transistor TIP41C 41
2.3.3: IC 74HC245 41
2.4: Giới thiệu khối led 3D cube 43
2.4.1: Giới thiệu 43
2.4.2: Nguyên lý hoạt động 43 CHƯƠNG 3 45
NỘI DUNG THIẾT KẾ MẠCH 45
Trang 33.2: Các bước làm mạch 48 3.3: Thuật toán 49 Tài liệu tham khảo : 51
PHỤ LỤC 1 CODE LẬP TRÌNH 52
Trang 4AC Auxiliary Carry Flag Cờ nhớ phụ
A/D Analog/Digital Tương tự/Số
ALE Address Latch Enable Tín hiệu điều khiển chốt địa chỉCLK Clock Xung đồng
CP/RL2 Capture/Reload Select Chế độ thu nhận
CPU Central Processing Unit Đơn vị xử lý trung tâm
DPTR Data Poiner Con trỏ ngăn xếp
DTR Data Terminal Realy Đầu cuối dữ liệu
DSR Data Set Realy Dữ liệu sẵn có
DTE Data Terminal Equipment Thiết bị đầu cuối
EA External Access Thiết bị cho phép chọn bộ nhớ
EN Enable Chân cho phép
GND Ground Đất
I2C Intergrated Circuit Chuẩn giao tiếp I2C
IE Interupt Enable Thanh ghi cho phép ngắt
I/O Input/Output Vào/Ra
INT Interrupt Ngắt
IP Interrupt Priority Thanh ghi ưu tiên ngắt
ISR Interrupt Service Routine Chương trình con phục vụ ngắtLCHLCK Latch Clock Xung clock chốt dữ liệu
Trang 6LỜI NÓI ĐẦU
Trong cuộc sống con người ngày nay, điện tử đóng một vai trò quantrọng, nó có mặt trong nhiều lĩnh vực khác nhau Với sự phát triển mạnh mẽcủa khoa học, đặc biệt là ngành điện tử thì việc ứng dụng vi điều khiển,vi xử
lí càng trở nên quan trọng Ở đây vi điều khiển là một máy tính hoàn chỉnh cókích thước nhỏ và là hệ thống độc lập với các thiết bị ngoại vi Trong vi điềukhiển các tập lệnh xử lý các kiểu dữ liệu nhỏ Nó không những ứng dụng vàocác lĩnh vực kỹ thuật hiện đại mà còn áp dụng phổ biến, rộng rãi trong các vậtdụng thường ngày trong đời sống xã hội Các ứng dụng ngày nay không đơngiản chỉ có điều khiển đèn nhấp nháy hay đồng hồ điện tử đơn giản,…mà nóngày càng trở nên phức tạp, chế tạo vi mạch nhỏ và tạo ra linh kiện điện tửvới những vi điều khiển có cấu trúc chức năng linh hoạt và đa dạng hơn, giáthành thấp hơn và quan trọng là độ chính xác cao
Trong đó những ứng dụng 3D ngày càng phát triển rộng rãi, các nhàkhoa học ngày càng đi sâu và tìm hiểu công nghệ 3D với chất lượng các sảnphẩm 3D cao hơn nhằm đáp ứng những nhu cầu của con người Vì vậy việcnghiên cứu và tìm hiểu khối led 3D giúp chúng ta hiểu hơn về công nghệ 3D.Trong bài báo cáo này em sẽ nói rõ hơn về khối led 3D với đề tài: “Thiết kếmạch điều khiển led 3D”
Tuy nhiên có thể trong quá trình thiết kế và ứng dụng còn thiếu sót hay
có nhiều vấn đề không mong muốn Em mong nhận được ý kiến, nhận xétcũng như sự chỉ bảo thầy cô và các bạn
Em xin chân thành cảm ơn !!!
Giáo viên hướng dẫn : Vũ Thị Hoàng Yến
Trang 7CHƯƠNG 1
GIỚI THIỆU TỔNG QUAN VỀ VI ĐIỀU KHIỂN
1.1: Giới thiệu chung về vi xử lý và vi điều khiển
1.1.1: Tổng quan
Vi xử lý (hay còn viết là µP hay uP), còn được gọi là bộ vi xử lý, là mộttrong các linh kiện điện tử được tạo từ các tranzitor nhỏ tích hợp trên một vimạch tích hợp hơn Khối xử lý trung tâm (hay CPU) là một bộ vi xử lý đượcnhiều người biết đến Không chỉ vậy nhiều thành phần khác trong máy tínhcũng có bộ vi xử lý riêng của nó, ví dụ trên card màn hình (video card) chúng
giá thành của bộ vi xử lý đã giảm đáng kể
Vi điều khiển là một máy tính được tích hợp trên chíp, nó thường đượcdụng để điều khiển các thiết bị điện tử Vi điều khiển, thực chất là một hệthống gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các
bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như
bộ nhớ, các mô đun vào/ra, các mô đun biến đổi số sang tương tự và tương tự
Trang 8mạch ngoài.
Hầu hết các vi điều khiển được xây dựng theo kiến trúc Harvard, kiến trúcnày định nghĩa bốn thành phần cần thiết của một hệ thống nhúng Nhữngthành phần này bao gồm khối xử lý CPU, bộ nhớ chương trình (thông thường
là ROM hoặc bộ nhớ Flash), bộ nhớ dữ liệu (RAM), một hoặc vài bộ địnhthời và các cổng vào/ra để giao tiếp với các thiết bị ngoại vi và các môitrường bên ngoài - tất cả các khối này được thiết kế trong một vi mạch tíchhợp Vi điều khiển khác với các bộ vi xử lý đa năng ở chỗ là nó có thể hoạtđộng chỉ với một số vi mạch hỗ trợ bên ngoài
1.1.2: Lịch sử và sự phát triển của bộ vi xử lý
Hình 1.1: Lịch sử phát triển của vi xử lý
- Thế hệ 1 (1971 - 1973): vi xử lý 4 bit, đại diện là 4004, 4040, 8080 (Intel)hay IPM-16 (National Semiconductor)
+ Độ dài word thường là 4 bit (có thể lớn hơn)
+ Tốc độ 10 - 60 μs/ lệnh với tần số xung nhịp 0.1 - 0.8 MHz s/ lệnh với tần số xung nhịp 0.1 - 0.8 MHz
Trang 9- Thế hệ 2 (1974 - 1977): vi xử lý 8 bit, đại diện là 8080, 8085 (Intel) hayZ80
+ Tập lệnh phong phú hơn
+ Địa chỉ có thể đến 64 KB Một số bộ vi xử lý có thể phân biệt 256 địa chỉcho thiết bị ngoại vi
+ Sử dụng công nghệ NMOS hay CMOS
+ Tốc độ 1 - 8 μs/ lệnh với tần số xung nhịp 0.1 - 0.8 MHz s / lệnh với tần số xung nhịp 1 - 5 MHz
- Thế hệ 3 (1978 - 1982): vi xử lý 16 bit, đại diện là 68000/68010 (Motorola)hay 8086/ 80286/ 80386 (Intel)
+ Tập lệnh đa dạng với các lệnh nhân, chia và xử lý chuỗi
+ Địa chỉ bộ nhớ có thể từ 1 - 16 MB và có thể phân biệt tới 64KB địa chỉ chongoại vi
+ Sử dụng công nghệ HMOS
+ Tốc độ 0.1 - 1 μs/ lệnh với tần số xung nhịp 0.1 - 0.8 MHz s / lệnh với tần số xung nhịp 5 - 10 MHz
- Thế hệ 4: vi xử lý 32 bit 68020/ 68030/ 68040/ 68060 (Motorola) hay80386/ 80486 (Intel) và vi xử lý 32 bit Pentium (Intel)
+ Bus địa chỉ 32 bit, phân biệt 4 GB bộ nhớ
+ Có thể dùng thêm các bộ đồng xử lý (coprocessor)
+ Có khả năng làm việc với bộ nhớ ảo
+ Có các cơ chế pipeline, bộ nhớ cache
+ Sử dụng công nghệ HCMOS
Trang 10Về cơ bản hai định nghĩa này không khác nhau nhiều, “vi xử lý” là thuậtngữ chung dùng để đề nói về kỹ thuật ứng dụng các công nghệ vi điện tử,công nghệ tích hợp và khả năng xử lý theo chương trình với các lĩnh vực khácnhau Vào những giai đoạn đầu trong quá trình phát triển của công nghệ vi xử
lý, các chip (hay các vi xử lý) được tạo ra chỉ tích hợp những phần cứng thiếtyếu như CPU cùng các mạch giao tiếp giữa CPU và các phần cứng khác.Trong giai đoạn này, các phần cứng khác (kể cả bộ nhớ) không được tích hợptrên chip mà phải ghép nối thêm bên ngoài Các phần cứng này được gọi làcác ngoại vi (Peripherals) Về sau, nhờ sự phát triển vượt bậc của công nghệtích hợp, các ngoại vi cũng được tích hợp vào bên trong IC và người ta gọicác vi xử lý đã được tích hợp thêm các ngoại vi là các “vi điều khiển”
Vi xử lý có các chức năng cần thiết để lấy dữ liệu, xử lý dữ liệu và xuất dữliệu ra ngoài sau khi đã xử lý Và chức năng chính của Vi xử lý chính là xử lý
dữ liệu, chẳng hạn như cộng, trừ, nhân, chia, so sánh.v.v Vi xử lý không cókhả năng giao tiếp trực tiếp với các thiết bị ngoại vi, nó chỉ có khả năng nhận
và xử lý dữ liệu
Để vi xử lý hoạt động cần có chương trình kèm theo, các chương trình nàyđiều khiển các mạch logic và sau đó vi xử lý sẽ xử lý các dữ liệu cần theo yêucầu Chương trình là tập hợp các lệnh để xử lý dữ liệu thực hiện từng lệnhđược lưu trữ trong bộ nhớ, công việc thực hành lệnh bao gồm các bước: nhậnlệnh từ bộ nhớ, giải mã lệnh và thực hiện lệnh sau khi đã giải mã
Để thực hiện các công việc với các thiết bị cuối cùng, chẳng hạn điều khiểnđộng cơ, hiển thị kí tự trên màn hình yêu cầu phải kết hợp vi xử lý với cácmạch điện giao tiếp bên ngoài được gọi là các thiết bị I/O (nhập/xuất) hay cácthiết bị ngoại vi Bản thân vi xử lý khi đứng một mình không có nhiều hiệu
Trang 11của Vi xử lý là rất lớn Vi xử lý kết hợp với các thiết bị khác được sử dùngtrong các hệ thống lớn, phức tạp đòi hỏi phải xử lý một lượng lớn các phéptính toán phức tạp, có tốc độ nhanh như các hệ thống sản xuất tự động trongcông nghiệp, các tổng đài điện thoại, hoặc ở các robot có khả năng hoạt độngphức tạp v.v
Bộ Vi xử lý có khả năng vượt trội so với các hệ thống khác về khả năngtính toán, xử lý, và thay đổi chương trình linh hoạt theo yêu cầu người dùng,đặc biệt hiệu quả đối với các bài toán và hệ thống lớn Tuy nhiên đối với cácứng dụng nhỏ, tầm tính toán không đòi hỏi khả năng tính toán lớn thì việc ứngdụng vi xử lý cần xem xét Bởi vì hệ thống dù lớn hay nhỏ, nếu dùng vi xử lýthì cũng đòi hỏi các khối mạch điện giao tiếp phức tạp như nhau Các khốinày gồm bộ nhớ để chứa dữ liệu và chương trình thực hiện, các mạch điệngiao tiếp ngoại vi để xuất nhập và điều khiển trở lại, các khối cùng liên kếtvới vi xử lý thì mới thực hiện được công việc Để kết nối các khối này đòi hỏingười thiết kế phải hiểu biết tinh tường về các thành phần vi xử lý, bộ nhớ,các thiết bị ngoại vi Hệ thống được tạo ra khá phức tạp, chiếm nhiều khônggian, mạch in phức tạp và vấn đề chính là trình độ người thiết kế Kết quả làgiá thành sản phẩm cuối cùng rất cao, không phù hợp để áp dụng cho các hệthống nhỏ
Vì một số nhược điểm trên các nhà chế tạo đã tích hợp một ít bộ nhớ vàmột số mạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất đượcgọi là Microcontroller-Vi điều khiển Vi điều khiển có chức năng tương tựnhư chức năng của vi xử lý, nhưng cấu trúc phần cứng dành cho người dùngđơn giản hơn nhiều Vi điều khiển xuất hiện mang lại sự tiện lợi đối với ngườidùng, họ không cần nắm vững khối lượng kiến thức quá lớn như người sửdùng vi xử lý, cấu tạo mạch điện dành cho người dùng cũng trở nên đơn giảnhơn nhiều và có khả năng giao tiếp trực tiếp với các thiết bị bên ngoài Vi
Trang 12hơn, nhưng thay vào ưu điểm này là khả năng xử lý bị giới hạn (tốc độ xử lýchậm hơn và khả năng tính toán ít hơn, dung lượng chương trình bị giới hạn).
Do đó, Vi điều khiển có giá thành rẻ hơn nhiều so với vi xử lý, việc sử dụngđơn giản, nhờ vậy nó được ứng dụng rộng rãi vào nhiều ứng dụng có chứcnăng đơn giản, không đòi hỏi tính toán phức tạp
Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, cácrobot có chức năng đơn giản, trong máy giặt, ôtô v.v
Năm 1976 Intel cho ra mắt bộ vi điều khiển (microcontroller) 8748, mộtchip tương tự như các bộ vi xử lý và là chip đầu tiên trong họ MCS-48 Độphức tạp, kích thước và khả năng của Vi điều khiển tăng thêm một bậc quantrọng vào năm 1980 khi intel tung ra chip 8051, bộ Vi điều khiển đầu tiên của
họ MCS-51 và là chuẩn công nghệ cho nhiều họ Vi điều khiển được sản xuấtsau này Sau đó rất nhiều họ Vi điều khiển của nhiều nhà chế tạo khác nhaulần lượt được đưa ra thị trường với tính năng được cải tiến ngày càng mạnh Trong tài liệu này, ranh giới giữa hai khái niệm “vi xử lý” và “vi điềukhiển” thực sự không cần phải phân biệt rõ ràng Tôi sẽ dùng thuật ngữ “vi xửlý” khi đề cập đến các khái niệm cơ bản của kỹ thuật vi xử lý nói chung và sẽdùng thuật ngữ “vi điều khiển” khi đi sâu nghiên cứu một họ chip cụ thể
1.1.4: Ứng dụng của vi xử lý – vi điều khiển
Vi xử lý, chính là chip trong các loại máy tính ngày nay Ở đây, tôi chỉ nóiđên ứng dụng của vi điều khiển Vi điều khiển có thể dùng trong thiết kế cácloại máy tính nhúng Máy tính nhúng có trong hầu hết các thiết bị tự động,thông minh ngày nay Chúng ta có thể dùng vi điều khiển để thiết kế bộ điềukhiển cho các sản phẩm như:
Trang 13o Nhà thông minh:
Cửa tự động
Khóa số
Tự động điều tiết ánh sáng thông minh
Điều khiển các thiết bị từ xa
Điều tiết hơi ẩm, gió , nhiệt độ, điều tiết không khí,…
Hệ thống vệ sinh thông minh
o Trong quảng cáo:
Các loại biển quảng cáo nháy chữ
Quảng cáo led ma trân 3D
Điều khiển máy cuốn bạt quảng cáo
Trang 14o Máy cán thép: điều khiển máy quấn thép,…
o Làm bộ điều khiển trung tâm của Robot
o Ổn định tốc độ động cơ
o Máy đếm sản phẩm
o Máy vận hành tự động
1.2: Vi điều khiển
1.2.1: Ứng dụng của vi điều khiển
Về cơ bản, vi điều khiển rất đơn giản Chúng chỉ bao gồm tối thiểu một sốthành phần sau:
- Một bộ vi xử lý tối giản được sử dụng như bộ não của hệ thống
- Tùy theo công nghệ của mỗi hãng sản xuất, có thể có thêm bộ nhớ, các chânnhập/xuất tín hiệu, bộ đếm, bộ định thời, các bộ chuyển đổi tương tự/số(A/D), …
- Tất cả chúng được đặt trong một vỏ chíp tiêu chuẩn Dựa trên nguyên tắctrên, rất nhiều họ vi điều khiển đã được phát triển và ứng dụng một cách thầmlặng nhưng mạnh mẽ vào mọi mặt của đời sống của con người
Một số ứng dụng cơ bản của vi điều khiển có thể kể ra sau đây:
- Những thành phần điện tử được nhúng vào vi điều khiển có thể trực tiếphoặc qua các thiết bị vào ra (công tắc, nút bấm, cảm biến, LCD, rơ le, …)điều khiển rất nhiều thiết bị và hệ thống như thiết bị tự động trong côngnghiệp, điều khiển nhiệt độ, dòng điện, động cơ, …
- Giá thành rất thấp khiến cho chúng được nhúng vào rất nhiều thiết bị thôngminh trong đời sống con người như ti vi, máy giặt, điều hòa nhiệt độ, máy
Trang 151.2.2: Phân loại
Theo độ dài thanh ghi
Dựa vào độ dài của các thanh ghi và các lệnh của vi điều khiển màngười ta chia ra các loại vi điều khiển 8bit, 16bit, hay 32bit Các loại
vi điều khiển 16bit do có độ dài lệnh lớn hơn nên các tập lệnh cũngnhiều hơn, phong phú hơn Tuy nhiên bất cứ chương trình nào viếtbằng vi điều khiển 16bit chúng ta đều có thể viết trên vi điều khiển 8bitvới chương trình thích hợp
Kiến trúc Harvard và kiến trúc Vonneumann
Kiến trúc Harvard sử dụng bộ nhớ riêng biệt cho chương trình và dữliệu Bus địa chỉ và bus dữ liệu độc lập với nhau nên quá trình truyềnnhận dữ liệu đơn giản hơn Kiến trúc Vonneumann Kiến trúc này sửdụng chung bộ nhớ cho chương trình và dữ liệu Điều này làm cho viđiều khiển gọn nhẹ hơn, giá thành nhẹ hơn
1.2.3: Hoạt đông của vi điều khiển
Mặc dù đã có nhiều họ vi điều khiển được phát triển cũng như nhiềuchương trình điều khiển tạo ra cho chúng, nhưng tất cả chúng vẫn có một sốđiểm chung cơ bản Do đó nếu ta hiểu cặn kẽ một họ thì việc tìm hiểu thêmmột họ vi điều khiển mới là hoàn toàn đơn giản Một kịch bản chung cho hoạtđộng của một vi điều khiển như sau:
Khi không có nguồn điện cung cấp, vi điều khiển chỉ là một con chip
có chương trình nạp sẵn vào trong đó và không có hoạt động gì xảy ra
Khi có nguồn điện, mọi hoạt động bắt đầu được xảy ra với tốc độ cao.Đơn vị điều khiển logic có nhiệm vụ điều khiển tất cả mọi hoạt động
Nó khóa tất cả các mạch khác, trừ mạch giao động thạch anh Sau minigiây đầu tiên tất cả đã sẵn sàng hoạt động
Trang 16nên ổn định Các bit của các thanh ghi SFR cho biết trạng thái của tất
cả các mạch trong vi điều khiển Toàn bộ vi điều khiển hoạt động theochu kỳ của chuỗi xung chính
Thanh ghi bộ đếm chương trình (Program Counter) được xóa về 0 Câulệnh từ địa chỉ này được gửi tới bộ giải mã lệnh sau đó được thực thingay lập tức
Giá trị trong thanh ghi PC được tăng lên 1 và toàn bộ quá trình đượclặp lại vài triệu lần trong một giây
1.2.4: Cấu trúc chung của vi điều khiển
Như ta thấy, tất cả các hoạt động trong các vi điều khiển được thực hiện ởtốc độ cao và khá đơn giản, nhưng vi điều khiển chính nó sẽ không được thật
sự hữu ích nếu không có mạch đặc biệt làm cho nó hoàn thiện Có một sốmạch cụ thể sau đây
1) Read Only Memory (ROM)
Read Only Memory (ROM) là một loại bộ nhớ được sử dụng để lưu vĩnhviễn các chương trình được thực thi Kích cỡ của chương trình có thể đượcviết phụ thuộc vào kích cỡ của bộ nhớ này ROM có thể được tích hợp trong
vi điều khiển hay thêm vào như là một chip gắn bên ngoài, tùy thuộc vào loại
vi điều khiển Cả hai tùy chọn có một số nhược điểm Nếu ROM được thêmvào như là một chip bên ngoài, các vi điều khiển là rẻ hơn và các chươngtrình có thể tồn tại lâu hơn đáng kể Nhưng đồng thời, làm giảm số lượng cácchân vào/ra để vi điều khiển sử dụng với mục đích khác
ROM nội thường là nhỏ hơn và đắt tiền hơn, nhưng lá ghim thêm có sẵn đểkết nối với môi trường ngoại vi Kích thước của dãy ROM từ 512B đến 64KB
Trang 17Random Access Memory (RAM) là một loại bộ nhớ sử dụng cho các dữliệu lưu trữ tạm thời và kết quả trung gian được tạo ra và được sử dụng trongquá trình hoạt động của bộ vi điều khiển Nội dung của bộ nhớ này bị xóa mộtkhi nguồn cung cấp bị tắt.
3) Electrically Erasable Programmable ROM (EEPROM)
EEPROM là một kiểu đặc biệt của bộ nhớ chỉ có ở một số loại vi điềukhiển Nội dung của nó có thể được thay đổi trong quá trình thực hiện chươngtrình (tương tự như RAM), nhưng vẫn còn lưu giữ vĩnh viễn, ngay cả sau khimất điện (tương tự như ROM) Nó thường được dùng để lưu trữ các giá trịđược tạo ra và được sử dụng trong quá trình hoạt động (như các giá trị hiệuchuẩn, mã, các giá trị để đếm, v.v ), mà cần phải được lưu sau khi nguồncung cấp ngắt Một bất lợi của bộ nhớ này là quá trình ghi vào là tương đốichậm
Hình 1.2: Giao tiếp bộ nhớ
4) Các thanh ghi chức năng đặc biệt (SFR)
Trang 18bộ nhớ RAM Mục đích của chúng được định trước bởi nhà sản xuất và khôngthể thay đổi được Các bit của chúng được liên kết vật lý tới các mạch trong
vi điều khiển như bộ chuyển đổi A/D, modul truyền thông nối tiếp,… Mỗi sựthay đổi trạng thái của các bit sẽ tác động tới hoạt động của vi điều khiểnhoặc các vi mạch
5) Bộ đếm chương trình (PC:Program Counter)
Bộ đếm chương trình chứa địa chỉ chỉ đến ô nhớ chứa câu lệnh tiếp theo sẽđược kích hoạt Sau mỗi khi thực hiện lệnh, giá trị của bộ đếm được tăng lên
1 Vì lý do đó nên chương trình chỉ thực hiện được được từng lệnh trong mộtthời điểm
6) Central Processor Unit (CPU)
Đây là một đơn vị có nhiệm vụ điều khiển và giám sát tất cả các hoạt độngbên trong vi điều khiển và người sử dụng không thể tác động vào hoạt độngcủa nó Nó bao gồm một số đơn vị con nhỏ hơn, trong đó quan trọng nhất là:
Bộ giải mã lệnh có nhiệm vụ nhận dạng câu lệnh và điều khiển các mạch
khác theo lệnh đã giải mã Việc giải mã được thực hiện nhờ có tập lệnh
“instruction set” Mỗi họ vi điều khiển thường có các tập lệnh khác nhau
Arithmetical Logical Unit (ALU) Thực thi tất cả các thao tác tính toán số
học và logic
Thanh ghi tích lũy (Accumulator) là một thanh ghi SFR liên quan mật
thiết với hoạt động của ALU Nó lưu trữ tất cả các dữ liệu cho quá trình tínhtoán và lưu giá trị kết quả để chuẩn bị cho các tính toán tiếp theo Một trongcác thanh ghi SFR khác được gọi là thanh ghi trạng thái (Status Register) chobiết trạng thái của các giá trị lưu trong thanh ghi tích lũy
Trang 197) Các cổng vào/ra (I/O Ports)
Để vi điều khiển có thể hoạt động hữu ích, nó cần có sự kết nối với cácthiết bị ngoại vi Mỗi vi điều khiển sẽ có một hoặc một số thanh ghi (được gọi
là cổng) được kết nối với các chân của vi điều khiển
Hình 1.3: Vào ra của thiết bị ngoại vi Chúng được gọi là cổng vào/ra (I/O port) bởi vì chúng có thể thay đổi chứcnăng, chiều vào/ra theo yêu cầu của người dùng
8) Bộ dao động (Oscillator)
Trang 20Hình 1.4: Ghép nối bộ dao động
Bộ dao động đóng vai trò nhạc trưởng làm nhiệm vụ đồng bộ hóa hoạtđộng của tất cả các mạch bên trong vi điều khiển Nó thường được tạo bởithạch anh hoặc gốm để ổn định tần số Các lệnh không được thực thi theo tốc
độ của bộ dao động mà thường chậm hơn, bởi vì mỗi câu lệnh được thực hiệnqua nhiều bước Mỗi loại vi điều khiển cần số chu kỳ khác nhau để thực hiệnlệnh
9) Bộ định thời/đếm (Timers/Counters)
Hầu hết các chương trình sử dụng các bộ định thời trong hoạt động củamình Chúng thường là các thanh ghi SFR 8 hoặc 16 bit, sau mỗi xung daođộng clock, giá trị của chúng được tăng lên Ngay khi thanh ghi tràn, một ngắt
sẽ được phát sinh
10) Truyền thông nối tiếp
Kết nối song song giữa vi điều khiển và thiết bị ngoại vi được thực hiệnqua các cổng vào/ra là giải pháp lý tưởng với khoảng cách ngắn trong vài mét.Tuy nhiên khi cần truyền thông giữa các thiết bị ở khoảng cách xa thì khôngthể dùng kết nối song song, vì vậy truyền thông nối tiếp là giải pháp tốt nhất
Trang 21Ngày nay, hầu hết các vi điều khiển có một số bộ điều khiển truyền thôngnối tiếp như một trang bị tiêu chuẩn Chúng được sử dụng phụ thuộc vàonhiều yếu tố khác nhau như:
- Bao nhiêu thiết bị vi điều khiển muốn trao đổi dữ liệu
- Tốc độ trao đổi dữ liệu
- Khoảng cách truyền
- Truyền/nhận dữ liệu đồng thời hay không ?
Không giống như các mạch tích hợp, chỉ cần kết nối các thành phần vớinhau và bật nguồn, vi điều khiển cần phải lập trình trước Để viết một chươngtrình cho vi điều khiển, có một vài ngôn ngữ lập trình bậc thấp có thể sử dụngnhư Assembly, C hay Basic Viết một chương trình bao gồm việc viết các câulệnh đơn giản theo một thứ tự để chúng có thể thực thi Có rất nhiều phầnmềm chạy trên môi trường Windows cho phép xây dựng các chương trìnhhoàn chỉnh cho các họ vi điều khiển
Trang 22CHƯƠNG 2 VI ĐIỀU KHIỂN 89S52
2.1: Giới thiệu chung về vi điều khiển 8051
Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiên vào năm 1980 là các
IC thiết kế cho các ứng dụng hướng điều khiển Các IC này chính là một hệthống vi xử lý hoàn chỉnh bao gồm các các thành phần của hệ vi xử lý: CPU,
bộ nhớ, các mạch giao tiếp, điều khiển ngắt
Trang 23MCS-51 là họ vi điều khiển sử dụng cơ chế CISC (Complex InstructionSet Computer), có độ dài và thời gian thực thi của các lệnh khác nhau Tậplệnh cung cấp cho MCS-51 có các lệnh dùng cho điều khiển xuất/nhập tácđộng đến từng bit MCS 51 bao gồm nhiều vi điều khiển khác nhau, bộ viđiều khiển đầu tiên là 8051 có 4KB ROM, 128 byte RAM và 8031, không cóROM nội, phải sử dụng bộ nhớ ngoài Sau này, các nhà sản xuất khác nhưSiemens, Fujitsu, … cũng được cấp phép làm nhà cung cấp thứ hai MCS-51bao gồm nhiều phiên bản khác nhau, mỗi phiên bản sau tăng thêm một sốthanh ghi điều khiển hoạt động của MCS-51.
Hình 2.1: Kiến trúc vi điều khiển 8051
2.2: Giới thiệu sơ lược vi điều khiển 89S52
2.2.1: Tổng quan 89S52
Vi điều khiển 89S52 được sản xuất do hãng Atmel Các sản phẩm của89S52 thích hợp cho các ứng dụng điều khiển Việc xử lý các byte và toán sốhọc ở các cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuấtnhanh dữ liệu trên RAM nội bộ Nó cung cấp những hỗ trợ mở rộng trên chipdùng cho một bit như kiểu dữ liệu riêng biệt cho phép quản lý, kiểm tra bit
Trang 24 8 Kbyte có khả năng 1000 chu kỳ ghi/xóa
Trang 252.2.2: Cấu trúc IC 89S52
Hình 2.3: Sơ đồ khối IC 89S52
Trang 26Chức năng các chân
Hình 2.4: Sơ đồ chân của 89S52
a: Port 0 (P0.0-P0.7)
Port 0 có thứ tự chân từ 32 đến 39 với 2 chức năng là:
-Nếu sử dụng bộ nhớ trong không dùng thêm bộ nhớ mở rộng ngoài thì Port 0 được như các đường Input/Output (I/O)
-Còn nếu dùng thêm bộ nhớ mở rộng ngoài thì chức năng của Port 0 là bus địa chỉ và bus địa chỉ dữ liệu AD0-AD7
Trang 27Hình 2.5: Cấu trúc của các chân trên Port 0
Trang 28Hình 2.7: Cấu trúc của các chân trên Port2
Trang 29Bảng 2.1: Chức năng các chân trong Port 3
Bit Tên Chức năng
P3.0 RXD Dữ liệu nhận cho Port nối tiếp
P3.1 TXD Dữ liệu truyền cho port nối tiếpP3.2 INT0 Ngắt bên ngoài 0
P3.3 INT1 Ngắt bên ngoài 1
P3.4 T0 Ngõ vào của timer/counter 0
P3.5 T1 Ngõ vào của timer/counter 1
P3.6 /WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 /RD Xung đọc bộ nhớ dữ liệu ngoài
e: Các chân khác
- PSEN (Address Latch Enable): có tin hiệu ra ở chân 29 cho phép đọc
bộ nhớ chương trình mở rộng và hay được nối với chân EO của EPROM đểđọc các byte mã lệnh Các mã lệnh này từ EPROM sẽ qua bus dữ liệu Sau đóđược giữ lại trong thanh ghi lệnh của 89S52và thực hiện giải mã lệnh Khitrong ROM nội 89S52 sẽ thực hiện chương trình lúc đó PSEN đang ở mứccao (logic 1)
-ALE (Address Latch Enable): tín hiệu ra ở chân 30 Khi vi điều khiển89S52 dùng bộ nhớ ngoài Port 0 sẽ có chức năng là bus địa chỉ và bus dữ liệuthì phải tách các đường địa chỉ và dữ liệu Lúc này tín hiệu ra ALE của chân
30 dùng làm tín hiệu điều khiển để giải đa hợp đường địa chỉ và dữ liệu nốivới IC chốt Trong khoảng thời gian Port 0 hoạt động ở chế độ địa chỉ thấp,tín hiệu ở chân ALE sẽ giống như 1 xung nên chốt địa chỉ hoạt động hoàn tòa
tự động
-EA (External Access): tín hiệu vào ở chân 31 có thể mắc mức 1 hoặc 0.Nếu mắc ở mức 1 tức là nối lên 5V thì 89S52 hoạt động chương trình ở trongROM nội Còn ở mức 0 là được nối với GND chương trình hoạt động với bộnhớ mở rộng
Trang 30trạng thái ban đầu Khi tin hiệu vào này ở mức cao tương ứng logic 1 tối thiểu
2 chu kỳ máy Lúc này các thanh ghi trong nạp giá trị thích hợp để khởi động
hệ thống
Hình 2.9: Sơ đồ mạch reset -XTAL1, XTAL2: thuộc chân thứ 18 và 19 của vi điều khiển Hai chânnày hay nối với thạch anh để tạo thành mạch tạo dao động Tần số thạch anhthường sử dụng là 12MHz và cao nhất là 33MHz
Hình 2.10: Sơ đồ mạch tạo dao động -Chân VCC và GND lần lượt là chân thứ 40 và 20 Các chân này dùng
để cấp nguồn và nối đất cho vi điều khiển
Trang 312.2.3: Tổ chức bộ nhớ của vi điều khiển
Vi điều khiển 89S52 có bộ nhớ trong gồm hai bộ nhớ là bộ nhớ chươngtrình và bộ nhớ dữ liệu
a) Bộ nhớ chương trình (bộ nhớ ROM)
Bộ nhớ ROM có khả năng lưu trữ chương trình do người lập trình viết
ra Trong đó chương trình là nơi tập hợp các câu lệnh được biểu diễn thôngqua các thuật toán với mục đích giải quyết các công việc cụ thể Các chươngtrình này sẽ được lưu trong ROM Khi hoạt động, vi điều khiển sẽ truy suấttừng câu lệnh trong ROM để thực hiện chương trình Ngoài ra ROM còn lưutrữ số liệu của bảng, tham số, và các dữ liệu cố định Trong quá trình thựchiện ROM chỉ thay đổi nội dung khi ở chế độ xóa hoặc nạp chương trình, cònđâu nội dung ROM luôn luôn cố định, không thay đổi
Bộ nhớ của 89S52 gồm 8Kbyte FlashROM Khi chân số 31 (tức làchân /EA) đang ở mức logic 1, thì vi điều khiển sẽ cho chạy chương trìnhtrong bộ nhớ, với địa chỉ đầu tiên là 0000H Bộ nhớ này có thể lập trìnhkhoảng 1000 lần Nếu chân số 31 của vi điều khiển 89S52 ở mức logic 0, lúcnày bộ nhớ trongchương trình sẽ giao tiếp với bộ nhớ ngoài
b) Bộ nhớ dữ liệu (bộ nhớ RAM)
Bộ nhớ RAM là môi trường cho việc xử lý thông tin, là nơi lưu trữ cáckết quả trung gian và kết quả cuối cùng của thuật toán Ngoài ra RAM còn cókhả năng tổ chức vùng đệm dữ liệu trong các bước thu phát, biến đổi dữ liệu Các byte RAM có 8bit của vi điều khiển gọi là ô nhớ, với các ô nhớ cóchức năng đặc biệt gọi là thanh ghi, nếu là bit thì gọi là bit nhớ
Ở vi điều khiển dùng 89S52 bộ nhớ dữ liệu được đọc và ghi qua 2 tínhiệu /RD và /WR Chúng được phân chia như sau:
Trang 3200H đến 1FH: đây là 32 byte thấp trong bộ nhớ nội Bộ lệnh 8951 hỗ trợ 8thanh ghi R0 –R7 được mặc định khi reset hệ thống với địa chỉ từ 00H-07H.Mỗi lần truy xuất thanh ghi R0-R7 chỉ thực hiện được một bank thanh ghi.
Bộ nhớ dữ liệu hóa địa chỉ từ 20H đến 2FH Các bit có thể xóa bằng 1 lệnh đơn thông qua phần mềm Ở đây 89S52 có 128bit được chứa trong các byte xác định địa chỉ
Vi điều khiển 89S52 gồm 21 thanh ghi chức năng đặc biệt từ 80H đến FFH ở trên vùng RAM nội
Thanh ghi trạng thái chương trình
Bảng 2.2: Thanh ghi trạng thái chương trình
Bit Ký hiệu Địa chỉ Ý nghĩa
PSW.7 CY D7H Cờ nhớ được sử dụng trong lệnh
toán họcPSW.6 AC D6H Cờ nhớ phụ
PSW.5 F0 D5H Cờ 0
PSW.4 RS1 D4H Bit 1 chọn bank thanh ghi
PSW.3 RS0 D3H Bit 0 chọn bank thanh ghi
00=bank 0 địa chỉ: 0H 07H01=bank 1 địa chỉ: 08H 0FH10=bank 2 địa chỉ: 10H 1FH11=bank 3 địa chỉ: 18H 1FHPSW.2 0V D2H Cờ tràn dùng trong phép toán cộng
có dấuPSW.1 - D1H Dữ trữ
PSW.0 P D0H Cờ chẵn lẻ dùng để xử lý dữ liệu
Trang 33mà có thể lấy nguồn xung từ xung nhịp của vi điều khiển hay lấy từ bênngoài Vi điều khiển 89S52 này có 3 bộ định thời 16 bit trong đó có hai bộđịnh thời timer 0 và timer 1 gồm có bốn chế độ hoạt động, còn lại riêng timer
2 có ba chế độ hoạt động Những bộ định thời này mực đích sử dụng là hẹngiờ, đếm sự kiện xảy ra bên ngoài hay ở các cổng nối tiếp sẽ tạo ra các baudcủa vi điều khiển
Những ứng dụng định thời gian, bộ định thời đã được lập trình sao cho
sẽ tràn ra sau một thời gian nhất định và lúc này thiết lập cờ tràn bằng 1 Các
cờ tràn được sử dụng để kiểm tra trạng thái của ngõ vào hay gửi sự kiện ở ngõra
Bộ định thời mà được sử dụng đếm số lần xảy ra của 1 sự kiện gọi làđém sự kiện Ở đây người ta gán các sự kiện thành sự chuyển đổi mức 1 về 0trên chân T0 hay T1 hay T2 tùy thuộc vào các timer tương ứng vào việc đếm
Trang 34để cài đặt chế độ hoạt động của timer0, timer1
-THx và TLx lần lượt là 2 thanh ghi gồm 8 bit chứa các giá trị khởi tạohay giá trị hiện thời của 2 bộ định thời timer 0 và timer 1 Những thanh ghitrên không được định địa chỉ bit
Bảng 2.3: Bảng thanh ghi TMOD của timer 0, timer 1
Bit Tên Timer Mô tả
7 GATE 1 1 Bit mở cổng timer 1 và bằng 1,
đồng thời INT1 ở mức cao thìtimer 1 sẽ hoạt động Nếu bit mởcổng timer 1 bằng 0 thì cũng khôngảnh hưởng đến hoạt động của timer
1 vì INT1 vẫn giữ ở mức cao
6 C/T1 1 Bit này dùng để chọn chế độ timer/
counter của timer 11: bộ đếm sự kiện 0: bộ định khoảng thời gian
5 M1 1 Bit 1 chọn mode của timer 1
4 M0 1 Bit 0 chọn mode của timer 1
00: chế độ 0- timer 13bit01: chế độ 1-timer 16bit10: chế độ 2-timer 8 bit tự nạp lại11: chế độ 3-tách timer
3 GATE0 0 Bit mở cổng timer 0 và bằng 1,
đồng thời INT0 ở mức cao thìtimer 0 sẽ hoạt động
2 C/T0 0 Bit này dùng để chọn chế độ timer/
counter của timer 0
1 M1 0 Bit 1 chọn mode của timer 0
0 M0 0 Bit 0 chọn mode của timer 0
Trang 35
-Thanh ghi điều khiển TCON có chức năng chứa bit trạng thái điều khiển
timer và timer 1
Bảng 2.4: Thanh ghi TCON của timer 0, timer 1
Bit Ký hiệu Địa chỉ bit Mô tả
TCON.7 TF1 8FH Cờ báo tràn timer 1, được đặt ở phần
cứng khi báo tràn Được xóa thôngqua phần mềm hay phần cứng khi bộ
xử lý đến chương trình phục vụ ngắt TCON.6 TR1 8EH Bit điều khiển timer 1 hoạt động
được đăt hoặc xóa thông qua phầnmềm để điều khiển timer chạy haydừng
TCON.5 TF0 8DH Cờ báo tràn timer 0
TCON.4 TR0 8CH Bit điều khiển timer 0 hoạt động TCON.3 IE1 8BH Cờ ngắt do timer 1
TCON.2 IT1 8AH Cờ ngắt ngoài 1
TCON.1 IE0 89H Cờ ngắt do timer 0
TCON.0 IT0 88H Cờ ngắt ngoài 0
b: Các thanh ghi timer 2
Bảng 2.5: Bảng thanh ghi T2CON của timer 2
Bit Ký hiệu Mô tả
T2CON.7 TF2 Cờ báo tràn timer 2 TF2 hoạt động khi TCLK hay
RCLK khác 1T2CON.6 EXF2 Cờ ngắt ngoài timer 2 Với EXF2=1 khi xảy ra sự nạp
hay thu nhận đồng thời cũng gây ra ngắt timer 2 nếuđược lấp trình cho phép
T2CON.5 RCLK Bit chọn timer cung cấp xung nhịp cho việc nhận của
cổng nối tiếp T2CON.4 TCLK Bit chọn timer cung cấp xung nhịp cho việc truyền của
cổng nối tiếpT2CON.3 EXEN2 Bit điều khiển hoạt động của timer2 EXEN2=1 việc
nạp hay thu nhận sẽ có sự chuyển đổi trạng thái 1 về 0
ở chân T2EX nếu timer 2 không có chức năng cung cấpbaud cho cổng nối tiếp
T2CON.2 TR2 Bit điều khiển timer 2 hoạt động
Trang 36T2CON.0 CPRL2 Bit chọn thu nhận hay nạp lại của timer2
1: thu nhận sẽ hoạt đông EXEN1=1 và có sườn xuống của chân T2EX
0: nạp lại sẽ được thực hiện EXEN2=1 và có sườn xuống của chân T2EX Nếu RCLK hay TCLK =1 timer
2 tự nạp tràn Lúc đó bit này sẽ được bỏ qua -Thanh ghi T2MOD có địa chỉ 0C9H,ở thanh ghi này không có định địachỉ
Bảng 2.6: Thanh ghi T2MOD của timer2Bit Ký hiệu Mô tả
T2MOD.1 T2OE Cho phép đầu ra khi sử dụng timer 2 để tạo
xung (xung-clock out)T2MOD.0 DCEN Cho phép timer 2 hoạt động chế độ đếm tiến
hoặc lùi
-Các thanh ghi còn lại TH2, TL2 của timer 2 cũng giống như TH1, TL1
và TH0, TL0 đều có chức năng chứa giá trị đếm timer 2 Và các thanh ghiRCAP2H, RCAP2L của timer 2 dùng để chứa giá trị nạp lại
2.2.4.3: Các chế độ của bộ định thời
a: Chế độ của timer 0 và timer 1
-Chế độ 0: là chế độ định thời 13 bit dùng để chứa các giá trị đếm Trong
đó có 3 bit thấp TL không sử dụng được
Trang 37Hình 2.11: Chế độ 0 của timer 0 và timer 1 -Chế độ 1: bộ timer dùng 2 thanh ghi TH, TL dùng để chứa giá trị đếm,chế độ này gọi là chế độ định thời 16 bit Ở chế độ 1 timer chứa giá trị đượcnhiều nhất là 65535 (tương ứng với FFFFFFH) Khi vượt qua giá trị này sẽxảy ra tràn, lúc này TF=1 Sauk hi tràn mà muốn timer tiếp tục hoạt động thìchương trình phải có câu lệnh nạp lại giá trị khởi tạo bằng cách xóa bit TR.
Hình 2.12: Chế độ 1 của timer0 và timer1
-Chế độ 2: ở chế độ 2 thanh ghi TL chưa giá trị đếm và thanh ghi TH
chứa giá trị nạp lại, do đó chế độ này còn được gọi là chế độ tự nạp lại 8 bit.Với chế độ 2 hoạt động đếm quá 255 sẽ xảy ra tràn Lúc đó TF=1 đồng thờigiá trị của timer tự động nạp lại thông qua nội dung của TH
Trang 38Hình 2.13: Chế độ 2 của timer 0 và timer 1
-Chế độ 3: Lúc này timer 0 sẽ tách ra làm 2 bộ timer hoạt động riêng
biệt Timer thứ nhất với xung clock được lấy qua bộ chia tần hay bộ dao độngxung bên ngoài ở chân T0 hoặc trên chip Giá trị đếm timer được chứa trongTL0, TF0=1 gây ra ngắt timer 0 khi xảy ra tràn
+Bộ timer thứ hai: Việc điều khiển timer này là dặt giá trị bit TR0 Ởđây giá trị đếm chứa trong TH0, TF=1 và xảy ra ngắt do timer 1
+Khi timer 0 được tách như vậy thì timer 1 vẫn hoạt động bình thường ởchế độ 0, 1, 2 Nhưng khi xảy ra tràn cờ TF1 không bằng 1 Do đó ở trườnghợp này timer 1 chỉ hoạt động cho ứng dụng không cần thiết ngắt (TF1=1)
Trang 39b: Chế độ hoạt động của timer 2
-Timer 2 có 3 chế độ hoạt động: chế độ thu nhận (Capture), chế độ nạplại (Auto-reload) và chế độ cung cấp baud cho cổng nối tiếp (Baud rategenerator)
Bảng 2.7: Chế độ hoạt động của timer 2
RCLK+TCLK TR2 CP/RL2 Chế độ
0 0 1 16 bit Auto-reload: 16 bit tự nạp lại
0 1 1 16 bit capture:16 bit thu nhận
1 X 1 Baud rate generator: cung cấp tốc
Trang 40Hình 2.16: Chế độ thu nhận của timer 2
- Cung cấp baud cho cổng nối tiếp (Baud rate generator).
Hình 2.17: Cung cấp baud cho cổng nối tiếp của timer 2
2.2.5: Cổng nối tiếp
2.2.5.1: Giới thiệu
89S52 có cổng nối tiếp trên chip có thể thực hiện nhiều chế độ khác nhaucùng bới tốc độ khác nhau Cổng nối tiếp chủ yếu là chuyển đổi song songsang nối tiếp kết hợp với dữ liệu xuất cũng như tương tự với dữ liệu nhận