Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download các bài tập lớn với đề tài: Đo tốc độ động cơ dùng 8051, cho các bạn có thể tham khảo
Lý thuyết Bộ điều khiển lập trình PLC dành cho những ai muốn theo đổi ngành tự động hóa.
Mọi thông tin chi tiết và cấu trúc của các dòng máy bế hộp, máy cán màng nhiệt, máy xén giấy,...
các bạn truy cập vào website: http://sieuthimaynganhin.com/
Những ứng dụng của PLC dành cho những ai muốn theo đổi ngành tự động hóa.
Mọi thông tin chi tiết và cấu trúc của các dòng máy bế hộp, máy cán màng nhiệt, máy xén giấy,...
các bạn truy cập vào website: http://sieuthimaynganhin.com/
Thiết kế hộp phân phối vi sai có vi sai và khớp ma sát điều khiển điện tửLeovnuf
Mua tài liệu và bản vẽ: https://www.facebook.com/tailieuvipfree
https://tailieu-vipfree.rhcloud.com/thiet-ke-hop-phan-phoi-vi-sai-co-vi-sai-va-khop-ma-sat-dieu-khien-dien-tu/
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download các bài tập lớn với đề tài: Đo tốc độ động cơ dùng 8051, cho các bạn có thể tham khảo
Lý thuyết Bộ điều khiển lập trình PLC dành cho những ai muốn theo đổi ngành tự động hóa.
Mọi thông tin chi tiết và cấu trúc của các dòng máy bế hộp, máy cán màng nhiệt, máy xén giấy,...
các bạn truy cập vào website: http://sieuthimaynganhin.com/
Những ứng dụng của PLC dành cho những ai muốn theo đổi ngành tự động hóa.
Mọi thông tin chi tiết và cấu trúc của các dòng máy bế hộp, máy cán màng nhiệt, máy xén giấy,...
các bạn truy cập vào website: http://sieuthimaynganhin.com/
Thiết kế hộp phân phối vi sai có vi sai và khớp ma sát điều khiển điện tửLeovnuf
Mua tài liệu và bản vẽ: https://www.facebook.com/tailieuvipfree
https://tailieu-vipfree.rhcloud.com/thiet-ke-hop-phan-phoi-vi-sai-co-vi-sai-va-khop-ma-sat-dieu-khien-dien-tu/
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise stimulates the production of endorphins in the brain which elevate mood and reduce stress levels.
FDSeminar Processen Stroomlijnen - Bart De Backer en Joris Vanderlinden - Bar...FDMagazine
Barry Callebaut, the world's leading manufacturer of chocolate and cocoa products, implemented an e-invoicing solution to streamline its invoicing process. The company worked with consulting and printing partners Anachron and Pyramid to set up electronic invoicing and outsourced printing. The project was rolled out in phases, first testing with pilot customers in key markets before expanding to all customers. The e-invoicing solution eliminated manual tasks, errors, and costs for Barry Callebaut while providing customers faster service and easier invoice access and storage. Testing with stakeholders and gradual personalized onboarding of customers were keys to the success of the transition.
Los dinosaurios comenzaron a evolucionar en el período Triásico, algo inusual ocurrió con los dinosaurios durante su dominio, y se extinguieron al final del período Cretácico.
Charles Petit has worked as Chief Financial Officer for Patriots' Trail Girl Scout Council since 1998. The letter writer considers him a dedicated professional and strong team player focused on the organization's needs. As CFO, Charles has been instrumental in the council's success with retail and product sales operations over the past two years. The letter writer describes Charles as a great manager who encourages communication, creativity, and independent teamwork to achieve goals. The letter recommends Charles highly for his skills and experience in supporting an organization's merchandise sales success.
eurococ.eu is a leading online provider of Certificates of Conformity (COC) for new and used cars in Europe. They have over 13,000 clients after 4 years in business due to their unique database of suppliers, relationships with importers, and multilingual customer service. Customers can order a COC by logging onto the website, selecting a vehicle's country and type, paying online, and receiving both a digital and physical COC. eurococ.eu allows dealers to save time, pay up to 50% less than importers, and order COCs before vehicles arrive.
I nr 2 av Information från Läkemedelsverket kan du bl.a. läsa om nya läkemedelsrekommendationer vid inflammatorisk tarmsjukdom. Du kan även läsa om samordningen kring forskning av narkolepsi samt läkemedel och miljö.
Upgrade von TYPO3 4.5 auf 6.2 - CertiFUNcation Phantasialand 2015Wolfgang Wagner
This document provides guidance on performing a smooth migration from TYPO3 4.5 to 6.2 LTS. It recommends preparing by making copies of live sites and databases, cleaning up unused extensions and tables, and updating extensions. The smoothmigration extension is used to automate parts of the upgrade process. Post-upgrade steps include updating language packs, scheduler tasks, and migrating DAM assets to FAL.
La fotografía es un arte que captura imágenes sensibles a la luz usando una cámara. Originalmente se consideró un arte moderno debido a que la cámara se convirtió en una herramienta para que los artistas expresen sus emociones. La fotografía ha jugado un papel importante en la historia humana como un testigo fiel que deja huellas de los eventos.
The document provides an overview of international opportunities with several international organizations, including:
1) The United Nations system and its main organs and specialized agencies.
2) The World Bank system, which offers highly competitive internships for graduate students in fields like economics, finance, and development.
3) The International Monetary Fund system, which offers 10-13 week research internships for PhD students in macroeconomics and related fields during the summer.
Digital Pulse Summit - A Report From the Front Lines of CEM - Randy Woods, No...Digital Clarity Group
The document outlines an agenda for a presentation on customer experience management. The agenda includes introductions, an overview of the changing landscape of customer experience, barriers to customer experience management, and a case study of how the Rotman School of Management overcame barriers through their implementation of a customer experience management system. The presentation provides examples of how Rotman used tactics like A/B testing, personalization, and analytics to improve customer engagement.
En este número: Premio Exportar: Fernando Poggio, diseño de vanguardia – PADEx: Programa de Aumento y Diversificación de las Exportaciones – Outsource2LAC – Tecnópolis – Fruit Logistica – Cagnoli – Biofach – RPB – Informes: Emiratos Árabes Unidos, Arabia Saudí y Qatar.
La revista de la Fundación Exportar reúne notas de interés sobre representantes nacionales, sus talentos exportadores e información destacada de empresas argentinas que han internacionalizado sus productos y servicios.
Today Netpeak is one of the biggest internet marketing agencies in Eastern Europe. We promote not the site, but the business of the client. Our goal is to bring not visitors to the site, but the future clients of the company. Netpeak follows ROI-oriented business approach. Netpeak is a technological software company that develops own unique software for external and internal use.
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp với đề tài: Thiết kế Hệ Thống Quảng Cáo, cho các bạn làm luận văn tham khảo
20593
PHẦN I
TỔNG QUAN về ĐỀ TÀI
I. ĐẶT VẤN ĐỀ:
Ngày nay, những ứng dụng của Vi điều khiển đã đi sâu vào đời sống sinh hoạt và
sản xuất của con người. Thực tế hiện nay là hầu hết các thiết bị điện dân dụng hiện nay
đều có sự góp mặt của Vi Điều Khiển và vi xử lí . Ứng dụng vi điều khiển trong thiết kế
hệ thống làm giảm chi phí thiết kế và hạ giá thành sản phẩm đồng thời nâng cao tính ổn
định của thiết bị và hệ thống.Trên thị trường có rất nhiều họ vi điều khiển: họ 8051 của
Intel, 68HC11 của Motorola, Z80 của hãng Zilog, PIC của hãng Microchip, H8 của
Hitachi,vv…
Việc phát triển ứng dụng các hệ vi xử lý đòi hỏi những hiểu biết cả về phần cứng
cũng như phần mềm, nhưng cũng chính vì vậy mà các hệ vi xử lý được sử dụng để giải
quyết những bài toán rất khác nhau. Tính đa dạng của các ứng dụng phụ thuộc vào việc
lựa chọn các hệ vi xử lý cụ thể cũng như vào kỹ thuật lập trình.
Ngày nay các bộ vi xử lý có mặt trong rất nhiều thiết bị điện tử hiện đại: từ đầu
đĩa CD, máy thu hình, máy ghi hình, dàn âm thanh HiFi, bộ điều khiển lò sưởi cho đến
các thiết bị điều khiển dùng trong công nghiệp. Lĩnh vực ứng dụng của các hệ vi xử lý
cũng rất rộng lớn: từ nguyên cứu khoa học, truyền dữ liệu, đến công nghiệp, năng lượng,
giao thông và y tế…
Tùy theo kinh nghiệm và mức độ thông thạo mà chúng ta có thể sử dụng các ngôn
ngữ khác ngoài hợp ngữ như: C, C++, Visual basic để có những chương trình chất lượng
cao hơn.
https://www.maudon.vn/
Đồ án tốt nghiệp điện tử viễn thông Điều khiển và giám sát thiết bị điện gia đình điểm cao
- sdt/ ZALO 093 189 2701
Viết thuê Đồ án tốt nghiệp ngành điện tử viễn thông, Bài mẫu Đồ án tốt nghiệp ngành điện tử viễn thông, Khóa luận tốt nghiệp ngành điện tử viễn thông, Đề tài đồ án tốt nghiệp ngành điện tử viễn thông
http://vietthuewriter.com/category/do-an-tot-nghiep-nganh-dien-tu-vien-thong/
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien
1. 12/21/2012 kỹ thuật vi điều khiển 1
Môn
KỸ THUẬT VI ĐIỀU KHIỂN
GV: LÊ TRỌNG LUÂN
0937351983
Khoa Điện – Điện Tử
Trường Đại Học Kinh Tế Kỹ Thuật Công Nghiệp
2. 212/21/2012 kỹ thuật vi điều khiển
KỸ THUẬT VI ĐIỀU KHIỂN
NỘI DUNG CHƯƠNG TRÌNH
Chương 1: Introduction to 89S52
Chương 2: AT89S52 Assembly Programming
Chương 3:Data Structures and Subroutine Calls
Chương 4: Operation Modes and Memory Expansion
Chương 5: Interrupts and Resets
Chương 6: Parallel I/O Ports
Chương 7: Timer/Counter Functions
Chương 8: Serial Communication Interface
Chương 9: LCD,ADC and SENSOR Interface
Chương 10: Step motor and DAC Interface
3. 312/21/2012 kỹ thuật vi điều khiển
KỸ THUẬT VI ĐIỀU KHIỂN
Chương 1:
Introduction to 89S52
4. 412/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
Máy tính là gi?
Software
Hardware
Cấu trúc chung của máy tính như sau
Microcontroller AT89S52
Control
unit
Arithmetic
logic
unit
Registers
common bus
memory
program
storage
data
storage
output
unit
input
unit
Figure 1.1 Computer organization
5. 512/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
The processor (bộ xử lý)
- Registers: bộ nhớ trong của Processcor
- Arithmetic logic unit (ALU)
- Control unit (CU)
PC- thanh ghi bộ đếm chương trình sẽ luôn lưu giữ địa chỉ
của lệnh tiếp theo sẽ được thực hiện.
The Microprocessor (bộ vi xử lý)
A processor implemented on a very large scale integration
(VLSI) chip.
Peripheral chips are needed to construct a product
The Microcontroller (bộ vi điều khiển)
The processor and peripheral functions implemented on one
VLSI chip
Microcontroller AT89S52
6. 612/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
Features of the AT89S52 microcontroller
8K Bytes of In-System Programmable (ISP) Flash Memory
– Endurance: 1000 Write/Erase Cycles
4.0V to 5.5V Operating Range
Fully Static Operation: 0 Hz to 33 MHz
Three-level Program Memory Lock
256 x 8-bit Internal RAM
32 Programmable I/O Lines
Three 16-bit Timer/Counters
Eight Interrupt Sources
Full Duplex UART Serial Channel
Low-power Idle and Power-down Modes
Interrupt Recovery from Power-down Mode
Watchdog Timer
Dual Data Pointer
Power-off Flag
Fast Programming Time
Flexible ISP Programming (Byte and Page Mode)
Microcontroller AT89S52
7. 712/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
Microcontroller AT89S52
H 1.2 Block diagram
10. 1012/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
Erasable programmable ROM (EPROM)
Electrically erasable programmable
ROM (EEPROM)
Flash memory
Microcontroller AT89S52
11. 1112/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
Software:
Chương trình chạy trên máy tính gọi là phần
mềm.
Một chương trình là tập hợp của nhiều lệnh
Machine instruction :
Là tập hợp các số nhị phân mà processor hiểu
được.
Nó rất khó đối với những người mới bắt đầu.
Assembly language:
Một lệnh Assembly là mô tả của lệnh mã máy
tương ứng.
Chương trình Assembly phải được dịch trước
khi thực hiện.
Microcontroller AT89S52
12. 1212/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
High-level language
Cần có chương trình dịch từ ngôn ngữ cấp
cao về ngôn ngữ máy.
Source code
Một chương trình được viết bằng ngôn ngữ
cấp cao hoặc assembly
Object code
Kết quả của một chương trình dịch ra dạng
assembler
Microcontroller AT89S52
13. 1312/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
The AT89S52 Registers
Microcontroller AT89S52
7 Accumulator A 0 7 Accumulator B 0
7 0 7 0
7 0 7 0
7 0 7 0
7 DPH 0 7 DPL 0
15 Program counter 0
C A Z S1 S0 O - P
A:B
TMOD:TCON
THx:TLx x=0; 1; 2
T2MOD:T2CON
DPTR
PC
PSW
Parity
Non
Over
Lựa chọ băng thanh ghi
RS1:RS0
Zero
Cờ nhớ phụ
Cờ nhớ
7 0 R0-R7
7 0
7 0
IP
SP
14. 1412/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
Khi RESET
Microcontroller AT89S52
15. 1512/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
Memory Addressing
Bộ nhớ bao gồm các ô nhớ. Mỗi ô nhớ có
địa chỉ xác định
1 vị trị nhớ có 2 thành phần : address và
contents
Data transfer between CPU and memory
Microcontroller AT89S52
address contents
CPU memory
address bus lines
data bus lines
17. 1712/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
Chế độ địa chỉ thanh ghi
MOV A, RO ; Sao néi dung thanh ghi RO vµo thanh ghi A
MOV R2, A ; Sao néi dung thanh ghi A vµo thanh ghi R2
ADD A; R5 ; Céng néi dung thanh ghi R5 vµo
Chế độ địa chỉ trực tiếp
1. C¸c ng¨n nhí tõ 00 ®Õn 1FH ®îc g¸n cho c¸c b¨ng thanh ghi vµ ng¨n xÕp.
2. C¸c ng¨n nhí tõ 20H ®Õn 2FH ®îc dµnh cho kh«ng gian ®¸nh ®Þa chØ theo bit
®Ó lu c¸c d÷ liÖu 1 bit.
3. C¸c ng¨n nhí tõ 30H ®Õn 7FH lµ kh«ng gian ®Ó lu d÷ liÖu cã kÝch thíc 1byte.
MOV R0, 40H ; Lu néi dung cña ng¨n nhí 40H cña RAM
vµo R0
MOV 56H, A ; Lu néi dung thanh ghi A vµo ng¨n nhí
56H cña RAM
MOV R4, 7FH ; ChuyÓn n«i dung ng¨nnhí 7FH cña RAM
vµo R4
Microcontroller AT89S52
18. 1812/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
Chế độ địa chỉ gián tiếp thanh ghi
Ví dụ: H·y viÕt ch¬ng tr×nh ®Ó sao chÐp mét khèi 10 byte d÷ liÖu tõ vÞ trÝ ng¨n nhí RAM b¾t ®Çu
tõ 35H vµo c¸c vÞ trÝ ng¨n nhí RAM b¾t ®Çu tõ 60H
Giải:
MOV R0, # 35H ; Con trá nguån
MOV R1, #60H ; Con trá ®Ých
MOV R3, #10 ; Bé ®Õm
BACK: MOV A, @R0 ; LÊy 1byte tõ nguån
MOV @R1, A ; Sao chÐp nã ®Õn ®Ých
INC R0 ; T¨ng con trá nguån
INC R1 ; T¨ng con trá ®Ých
DJNZ R3, BACK ; LÆp l¹i cho ®Õn khi sao chÐp hÕt 10 byte
Lưu ý: Chỉ thanh ghi R0, R1, DPTR dùng được trong chế độ
này
Microcontroller AT89S52
19. 1912/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
Chế độ địa chỉ theo chỉ số
Ví dụ: H·y viÕt mét ch¬ng tr×nh ®Ó lÊy x gi¸ trÞ cèng P1 vµ göi gi¸ trÞ x2 tíi cæng
P2 liªn tôc.
Lêi gi¶i:
ORG 000
MOV DPTR, #300 H ; N¹p ®Þa chØ b¶ng XSQR-TABLE
MOV A, #0FFH ; N¹p A gi¸ trÞ FFH
MOV P1, A ; §Æt cæng P1 lµ ®Çu vµo
BACK: MOV A, P1 ; LÊy gi¸ trÞ X tõ P1
MOVC A, @A + DPTR ; LÊy gi¸ trÞ X tõ b¶ng XSDQ-TABLE
MOV P2, A ; XuÊt nã ra cæng P2
SJMP BACK ; LÆp l¹i
ORG 300H
XSQR - TABLE:
DB 0, 1, 4, 9, 16, 25, 36, 49, 64, 81
END
Microcontroller AT89S52
20. 2012/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
89S52 Instructions
Microcontroller AT89S52
21. 2112/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
89S52
I
N
S
T
R
U
C
T
I
O
N
S
Microcontroller AT89S52
22. 2212/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
89S52
I
N
S
T
R
U
C
T
I
O
N
S
Microcontroller AT89S52
23. 2312/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
89S52 Instructions
Microcontroller AT89S52
24. 2412/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
89S52
I
N
S
T
R
U
C
T
I
O
N
S
Microcontroller AT89S52
25. 2512/21/2012 kỹ thuật vi điều khiển
Chương 1: Introduction to 89S52
89S52
I
N
S
T
R
U
C
T
I
O
N
S
Microcontroller AT89S52
26. 2612/21/2012 kỹ thuật vi điều khiển
KỸ THUẬT VI ĐIỀU KHIỂN
Chương 2
AT89S52 Assembly
Programming
27. 2712/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
ROM
Bộ nhớ ROM dùng để lưu chương trình do người viết chương trình viết
ra.
Trong quá trình hoạt động nội dung ROM là cố định, không thể thay đổi,
nội dung ROM chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương
trình (do các mạch điện riêng biệt thực hiện).
Bộ nhớ ROM được tích hợp trong chip Vi điều khiển với dung lượng
tùy vào chủng loại cần dùng, chẳng hạn đối với 89S52 là 8KByte, với
89S53 là 12KByte.
Bộ nhớ bên trong Vi điều khiển 89Sxx là bộ nhớ Flash ROM cho
phép xóa bộ nhớ ROM bằng điện và nạp vào chương trình mới cũng
bằng điện và có thể nạp xóa nhiều lần
Bộ nhớ ROM được định địa chỉ theo từng Byte, bắt đầu từ địa chỉ
0000H, khi viết chương trình cần chú ý đến địa chỉ lớn nhất trên
ROM, chương trình được lưu sẽ bị mất khi địa chỉ lưu vượt qua vùng
này. Ví dụ: AT89S52 có 8KByte bộ nhớ ROM nội, địa chỉ lớn nhất là
1FFFH, nếu chương trình viết ra có dung lượng lớn hơn 8KByte các
byte trong các địa chỉ lớn hơn 1FFFH sẽ bị mất.
Ngoài ra Vi điều khiển còn có khả năng mở rộng bộ nhớ ROM với việc
giao tiếp với bộ nhớ ROM bên ngoài lên đến 64KByte(địa chỉ từ 0000H
đến FFFFH).
Microcontroller AT89S52
28. 2812/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
RAM
Microcontroller AT89S52
29. 2912/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
RAM
Microcontroller AT89S52
31. 3112/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
RAM
Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu
trữ các kết quả trung gian và kết quả cuối cùng của các
phép toán, xử lí thông tin. Nó cũng dùng để tổ chức các
vùng đệm dữ liệu, trong các thao tác thu phát, chuyển
đổi dữ liệu.
RAM nội trong Vi điều khiển được tổ chức như sau:
Các vị trí trên RAM được định địa chỉ theo từng
Byte bằng các số thập lục phân (số Hex)
Các bank thanh ghi có địa chỉ 00H đến 1FH
210 vị trí được định địa chỉ bit
các vị trí RAM bình thường
Các thanh ghi có chức năng đặc biệt có địa chỉ từ
80H đến FFH.
Các byte RAM 8 bit của vi điều khiển được gọi là "ô
nhớ", nếu các ô nhớ có chức năng đặc biệt thường
được gọi là "thanh ghi", nếu là bit thì được gọi là "bit
nhớ".
Microcontroller AT89S52
32. 3212/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
RAM
Các bank thanh ghi
Các bank thanh ghi có địa chỉ byte từ 00H đến 1FH, có 8 thanh ghi
trong mỗi bank, các thanh ghi được đặt tên từ R0-R7, các thanh ghi này
được đặt mặc định trong bank 1. Có 4 bank thanh ghi và tại mỗi thời
điểm chỉ có một bank thanh ghi được truy xuất với các thanh ghi từ R0
đến R7, để thay đổi việc truy xuất các thanh ghi trên các bank thanh ghi,
người dùng phải thay đổi giá trị các bit chọn bank trong thanh ghi trạng
thái PSW bằng các câu lệnh trong chương trình.
Các lệnh dùng các thanh ghi từ R0 đến R7 mất khoảng không gian
lưu trữ ít hơn và thời gian thực hiện nhanh hơn so với các lệnh dùng
các ô nhớ RAM khác, ngoài ra các thanh ghi này còn có thêm một số
chức năng đặc biệt khác, vì lí do này các dữ liệu sử dụng thường
thường được người viết chương trình đưa vào lưu trong các thanh ghi
này.
Ngoài ra, có thể truy xuất thanh ghi trên các bank thanh ghi như với
các ô nhớ bình thường khác. Ví dụ: nguời dùng có thể truy xuất đến
thanh ghi R7 bằng ô nhớ 07H.
Microcontroller AT89S52
33. 3312/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
RAM
Vùng RAM truy xuất từng bit
Trên RAM nội có 210 ô nhớ bit được định địa chỉ và có
thể truy xuất đến từng bit, các bit nhớ này cũng được định
địa chỉ bằng các số thập lục phân- số Hex. Trong đó có 128
bit nằm trong các ô nhớ có địa chỉ byte từ 20H đến 2FH,
các bit nhớ còn lại chứa trong nhóm thanh ghi có chức năng
đặc biệt.
Mặc dù các bit nhớ và ô nhớ (byte) cùng được định
bằng số Hex, tuy nhiên chúng sẽ được nhận dạng là địa chỉ
bit hay địa chỉ byte thông qua các câu lệnh tương ứng dành
cho các bit nhớ hoặc các ô nhớ này.
Ví dụ:
mov 05H,#10111111B ;>>> lệnh này thiết lập
giá trị cho ô nhớ có địa chỉ là 05H
JB 05H,nhan01 ;>>> lệnh này liên quan
đến trạng thái của bit nhớ có địa chỉ 05H
Microcontroller AT89S52
34. 3412/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
RAM
+ Vùng RAM bình thường
Vùng RAM này có địa chỉ byte từ 30H đến
7FH, dùng để lưu trữ dữ liệu, được truy xuất
theo từng byte.
+ Các thanh ghi có chức năng đặc biệt
Các thanh ghi này được định địa chỉ
byte, một số được định thêm địa chỉ bit, có
địa chỉ của các thanh ghi này nằm trong
khoảng 80H đến FFH. Các thanh ghi đặc biệt
này này được dùng để xác lập trạng thái
hoạt động cần thiết cho Vi điều khiển.
Microcontroller AT89S52
35. 3512/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
RAM
Các thanh ghi có địa chỉ 80H, 90H, A0H, B0H:
Đây là các thanh ghi kiểm tra và điều khiển mức logic của các Port, có thể truy xuất và xác
lập các thanh ghi này với địa chỉ byte hoặc tên riêng lần lượt là P0, P1, P2, P3 tương ứng
với các Port xuất. Chẳng hạn để tất cả các chân của Port 0 lên mức logic 1, cần làm cho
các bit của thanh ghi có địa chỉ 80H lên mức 1.
thanh ghi A
Thanh ghi A là thanh ghi quan trọng, dùng để lưu trữ các toán hạng và kết quả của phép
tính.
Thanh ghi A có độ dài 8 bits, có địa chỉ là E0H.
thanh ghi B
Thanh ghi B ở địa chỉ F0H, được dùng với thanh ghi A để thực hiện các phép toán số học.
Khi thực hiện lệnh chia với thanh ghi A, số dư được lưu trữ ở thanh ghi B. Ngoài ra thanh
ghi B còn được dùng như một thanh ghi đệm có nhiều chức năng.
Con trỏ ngăn xếp SP: địa chỉ 81H
Con trỏ ngăn xếp SP là một thanh ghi có địa chỉ 81H, giá trị của nó được tăng,giảm tự
động khi thực hiện các lệnh PUSH, CALL,POP con trỏ SP dùng quản lí và xử lí các nhóm
dữ liệu liên tục.Giá trị mặc định của SP là 07H.
Con trỏ dữ liệu DPTR.
Con trỏ dữ liệu DPTR là thanh ghi 16 bit duy nhất của Vi điều khiển được tạo thành từ hai
thanh ghi DPL (byte thấp-địa chỉ byte 82H) và DPH (byte cao-địa chỉ byte 83H). Hai thanh
ghi DPL và DPH có thể truy xuất độc lập bởi người sử dụng. Con trỏ dữ liệu DPTR
thường được sử dụng khi truy xuất dữ liệu từ bộ nhớ ROM hoặc bộ nhớ từ bên ngoài.
Microcontroller AT89S52
36. 3612/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
Thanh ghi trạng thái chương trình PSW (địa chỉ
byte D0H)
Microcontroller AT89S52
BIT
ĐỊA CHỈ
BIT
KÍ HIỆU CHỨC NĂNG
PSW.7 D7H C hoặc Cy Cờ nhớ
PSW.6 D6H AC Cờ nhớ phụ
PSW.5 D5H F0 Cờ 0 hay cờ Zero
PSW.4 D4H RS1 Bit lựa chọn dãy thanh ghi
PSW.3 D3H RS0 Bit lựa chọn dãy thanh ghi
PSW.2 D2H 0V
Cờ tràn với phép tính liên quan đến số nhị
phân có dấu
PSW.1 D1H - Chưa được thiết kế để sử dụng
PSW.0 D0H P Cờ chẵn lẻ
37. 3712/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
Assembly Program Structure
C program
int somefunction (int param) reentrant
{ ...
return (param);
}
/* The handler for External interrupt 0, which uses somefunction() */
void external0_int (void) interrupt 0
{ ...
somefunction(0);
}
/* the main program function, which also calls somefunction() */
void main (void)
{
while (1==1)
{ ...
somefunction();
}
}
Microcontroller AT89S52
38. 3812/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
Microcontroller AT89S52
Assembly Program
org 000h ; Reset
nop
ljmp Start
org 003h ; Int EX0
reti
org 00bh ; Int Timer0
reti
org 013h ; Int EX1
reti
org 01bh ; Int Timer1
reti
org 023h ; Int
Communication
reti
stack equ 2fh
;=================================
Main Program
;=================================
org 4bh
Start::
; chuong trinh viet o day
Jmp Start
;=================================
; Cac chuong trinh con viet o day
;=================================
end.
39. 3912/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
Fields of a Instruction
Ví dụ:
Mov A,R0 ; đưa nội dung R0 vào A
Loop_: DJNZ R0,Loop
; Giảm R0 đi 1 và
;nhảy đến nhã loop khi R0<>0
Microcontroller AT89S52
Label operation operand ; comment
40. 4012/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
Assembler Directives -- a sample
END
ORG
#DEFINE
#define <label> <expression>
EQU
<label> EQU <expression> [<comment>]
Microcontroller AT89S52
41. 4112/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
Flowchart
Microcontroller AT89S52
Symbols of Flowchart
Terminal
Process
Input or
output
Decision
Subroutine
A
B
A
yes
no
On-page
connector
Off-page connector
42. 4212/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
Hợp dịch và
chạy một
chương trình
hợp ngữ
Microcontroller AT89S52
EDITOR
PRAGRAM
ASSEMBLER
PRAGRAM
LINKER
PRAGRAM
OH
PRAGRAM
myfile.asm
myfile.lst
myfile.obj
other obj file
myfile.abs
myfile.hex
43. 4312/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
Ví dụ 1: Viết chương trình tính 1+2+…+20.
kết quả cất vào 45H
Microcontroller AT89S52
Start
i = 0
sum = 0
i = i + 1
sum = sum + i
i = 20 ?
Stop
no
yes
Giải:
Mov A,#0
Mov R0,#0
Again:
INC R0
ADD A,R0
CJNE R0,#20,Again
Mov 45H,A
44. 4412/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
Ví dụ 2: Viết chương trình tìm ra số lớn
nhất trong số 20 số(sô 8 bit) nằm ở đoạn
45h đến 58h. Kết quả cất vào ô nhớ 60h
Microcontroller AT89S52
Start
array max array [45]
i 45
array max < array [i] ?
i = 58h?
Stop
i i + 1
array max array [i]
yes
no
no
yes
45. 4512/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
Giải
N equ 20 ; array count
org 000
Mov R3,45h ; R3=array[0]=array max
Mov R0,#46h ; R0=46h
Loop_:
Mov A,@R0
CJNE A,R3,Next ;
Next:
JC chkend ; nhảy nếu A<R3
Mov R3,A ;
chkend:
CJNE R0,#57h,next1
Next1:
Jnc exit
Inc R0;
jmp loop_ ;
Exit:
Mov 60h,R3 ; save the array max
end
Microcontroller AT89S52
Cần lưu ý lệnh CJNE; DES>SRC Cy=0, DES<SRC Cy=1
46. 4612/21/2012 kỹ thuật vi điều khiển
Chương 2: AT89S52 Assembly Programming
Ví dụ 3: Viết chương trình tính tổng các số
lẻ 8bit nằm ở địa chỉ 45h đến 58h, sau đó
lưu kết quả byte cao ở 61h và byte thấp ở
60h
Microcontroller AT89S52
Start
sum 0
ptr 45
bit 0 of mem[ptr] = 0?
sum sum + [mem[ptr]]
no
ptr = 58h?ptr ptr + 1
Stop
no
yes
48. 4812/21/2012 kỹ thuật vi điều khiển
KỸ THUẬT VI ĐIỀU KHIỂN
Chương 3:
Data Structures and
Subroutine Calls
(chương trình con)
Microcontroller AT89S52
49. 4912/21/2012 kỹ thuật vi điều khiển
Chương 3: Data Structures and Subroutine Calls
Stack
Microcontroller AT89S52
SPlow address
high address
top element
bottom
.
.
.
Sp là thanh ghi 8bit. Truy cập các ô nhớ từ 08h-FFh
Nguyên tắc LIFO (Last In First Out)
Vào bằng lệnh PUSH => SP=SP+1
Ra bằng lệnh POP => SP=SP-1
52. 5212/21/2012 kỹ thuật vi điều khiển
Chương 3: Data Structures and Subroutine Calls
Giới hạn trên của ngăn xếp:
- Ngăn xếp giới hạn trong khoảng 08h-1Fh
Và từ 30H đến 7Fh
- Từ 20H-2FH dùng dự phòng cho bộ nhớ
đánh địa chỉ được theo bit
- Chuyển địa chỉ sang 30h – 7Fh bằng cách:
MOV SP, #XX
Microcontroller AT89S52
53. 5312/21/2012 kỹ thuật vi điều khiển
Chương 3: Data Structures and Subroutine Calls
Phân bố không gian nhớ trong RAM
R0-R7
R0-R7
R0-R7
R0-R7
RAM ®¸nh ®Þa chØ theo
bit
RAM bảng nhí (Seratch Pad)
Microcontroller AT89S52
00 07 08 0F 10 17 18 1F 20 2F 30 7F
Băng 0 luôn được chọn ngầm đinh
RS1 (PSW.4) RS0 (PSW.3)
Băng0 0 0
Băng1 0 1
Băng2 1 0
Băng3 1 1
54. 5412/21/2012 kỹ thuật vi điều khiển
Chương 3: Data Structures and Subroutine Calls
Xung đột ngăn xếp và băng thanh ghi 1
Xảy ra khi chương trình muốn sử dụng các
băng thanh ghi số 1 lúc đó cả băng thanh
ghi và ngăn xếp đều sử dụng chung một
không gian nhớ RAM
Lúc đó ta phải thay địa chỉ sử dụng của
RAM bằng cách “MOV SP,#xx”
Microcontroller AT89S52
55. 5512/21/2012 kỹ thuật vi điều khiển
Chương 3: Data Structures and Subroutine Calls
Subroutine
- Là đoạn chương trình khi cần có thể gọi từ
chương trình đang thực hiện.
- Cấu trúc khai báo:
namesub_:
;Cất trạng thái chương trình
; Nội dung chương trình
; Trả lại trạng thái chương trình
ret
Microcontroller AT89S52
56. 5612/21/2012 kỹ thuật vi điều khiển
Chương 3: Data Structures and Subroutine Calls
Các lệnh gọi Subroutine
CALL <namesub_>
ACALL <namesub_>
LCALL <namesub_>
Call là lệnh gọi xa
ACall gọi tuyệt đối 2 byte
LCall gọi 3 byte
Microcontroller AT89S52
57. 5712/21/2012 kỹ thuật vi điều khiển
Chương 3: Data Structures and Subroutine Calls
Vai trò của ngăn xếp trong lệnh Call
Microcontroller AT89S52
incoming
parameters
return address
saved registers
local variables
SP
Với lệnh RET thao tac giống lệnh POP đối với các đối tượng
trên
59. 5912/21/2012 kỹ thuật vi điều khiển
Chương 3: Data Structures and Subroutine Calls
Cấu trúc sử dụng lệnh gọi call
; MAIN program calling subroutines
ORG 0
MAIN: LCALL SUBR-1
LCALL SUBR-2
LCALL SUBR-3
HERE: SJMP MAIN
;----------------- end of MAIN
;
SUBR-1l ...
...
RET
; ----------------- end of subroutinel 1
; SUBR-1l ...
...
RET
; ----------------- end of subroutinel 2
; SUBR-1l ...
...
RET
; ----------------- end of subroutinel 3
END ; end of the asm file
Microcontroller AT89S52
61. 6112/21/2012 kỹ thuật vi điều khiển
Chương 3: Data Structures and Subroutine Calls
Tạo và tính toán thời gian giữ chậm
Chu kỳ máy
Fmáy=Fthachanh/12
Tmáy=1/Fmáy
Fthachjanh=4MHz-30MHz
Một lệnh được thực hiện từ 1-4 chu kỳ máy
Một chương trình giữ chậm gồm 2 phần :
(1) thiết lập bộ đếm và (2) một vòng lặp
Thời gian trễ chủ yếu ở vòng lặp
Microcontroller AT89S52
62. 6212/21/2012 kỹ thuật vi điều khiển
Chương 3: Data Structures and Subroutine Calls
Ví dụ 3.5: H·y t×m kÝch thíc cña thêi gian gi÷ chËm
trong ch¬ng tr×nh sau, nÕu tÇn sè giao ®éng thach anh
lµ 11.0592MHz.
MOV A, #55H
AGAIN: MOV P1, A
ACALL DELAY
CPL A
SJMP AGAIN
; -------- Time delay
DELAY: MOV R3, #200
HERE : DJNZR3, HERE
RET
Microcontroller AT89S52
63. 6312/21/2012 kỹ thuật vi điều khiển
Chương 3: Data Structures and Subroutine Calls
Giải
DELAY: MOV R3, #200 1
HERE : DJNZ R3, HERE 2
RET 1
Do vËy tæng thêi gian gi÷ chËm lµ [(200 2) + 1 +
1] 1.085 = 436.17s.
Th«ng thêng ta tÝnh thêi gian gi÷ chËm dùa trªn
c¸c lÖnh bªn trong vßng lÆp vµ bá qua c¸c chu kú ®ång
hå liªn quan víi c¸c lÖnh ë ngoµi vßng lÆp.
Trong vÝ dô 3.5 gi¸ trÞ lín nhÊt mµ R3 cã thÓ chøa
lµ 255, do vËy mét c¸ch t¨ng ®é trÔ lµ sö dông lÖnh
NOP (kh«ng lµm g×) trong vßng lÆp ®Ó tiªu tèn thêi
gian mét c¸ch ®¬n gi¶n.
Microcontroller AT89S52
64. 6412/21/2012 kỹ thuật vi điều khiển
Chương 3: Data Structures and Subroutine Calls
Ví dụ 3.6:H·y t×m ®é trÔ thêi gian cho ch¬ng tr×nh con sau. Gi¶ thiÕt tÇn sè
dao ®éng th¹ch anh lµ 11.0592MHz.
Sè chu kú m¸y
DELAY: MOV R3, #250 1
HERE : NOP 1
NOP 1
NOP 1
NOP 1
DJNZ R3, HERE 2
RET 1
Lêi gi¶i:
Thêi gian trÔ bªn trong vßng lÆp HERE lµ [250 (1 + 1 + 1 + 1 + 1 + 2)]
1.0851s = 1627.5s. Céng thªm hai lÖnh ngoµi vßng lÆp ta cã 1627.5s +
1.085s x2= 1629.67s.
Microcontroller AT89S52
66. 6612/21/2012 kỹ thuật vi điều khiển
KỸ THUẬT VI ĐIỀU KHIỂN
Chương 4:
Operation Modes and Memory
Expansion
(Làm việc với bộ nhớ ngoài)
67. 6712/21/2012 kỹ thuật vi điều khiển
Chương 4: Operation Modes and Memory Expansion
Bộ nhớ bán dẫn:
RAM
SRAM
DRAM
ROM
ROM
PROM
EPROM
EEPROM
FLASH
Microcontroller AT89S52
68. 6812/21/2012 kỹ thuật vi điều khiển
Chương 4: Operation Modes and Memory Expansion
Cấu trúc của bộ nhớ bán dẫn.
Microcontroller AT89S52
A0
A1
A2
.
.
.
AN-1
O0
O1
O2
.
.
.
Om-1
Các đường
tín hiệu địa
chỉ
Các đường
tín hiệu dữ
liệu
CS OE
WE
Dung lượng IC nhớ là : 2nxm bit
69. 6912/21/2012 kỹ thuật vi điều khiển
Chương 4: Operation Modes and Memory Expansion
Một số bộ nhớ EPROM thông dụng
Microcontroller AT89S52
A0-A10: Tín hiệu địa chỉ
OE: Cho phép đưa dữ liệu ra
CS/PGM: Chọn vỏ, điều
khiển ghi
D0-D7: Dữ liệu đầu ra
Vpp: Điện áp ghi
EPROM 2716
70. 7012/21/2012 kỹ thuật vi điều khiển
Chương 4: Operation Modes and Memory Expansion
Microcontroller AT89S52
STT Tên IC Chi tiết
1 2704 512x8
2 2808 1Kx8
3 2716 2Kx8
4 2732 4Kx8
5 2764 8Kx8
6 27128 16Kx8
7 27256 32Kx8
8 27512 64Kx8
9 271024 128Kx8
Một số EPROM họ 27xxx
71. 7112/21/2012 kỹ thuật vi điều khiển
Chương 4: Operation Modes and Memory Expansion
Ví dụ 4.1 Cần sử dụng bao nhiêu IC để xây dựng
bộ nhớ EPROM 512KB cho bộ VĐK có 16 chân
địa chỉ 16 chân dữ liệu.
a. 1K × 2 Eprom
b. 4K × 4 Eprom
c. 8K × 8 Eprom
d. 16K × 8 Eprom
Trả lời:
cần 512KB=512Kx8=256Kx16
a. Số IC=(256/1) x (16/2)= 2048
b. Số IC=(256/4) x (16/4)= 256
c. Số IC=(256/8) x (16/8)= 64
d. Số IC=(256/16) x (16/8)= 32
Microcontroller AT89S52
72. 7212/21/2012 kỹ thuật vi điều khiển
Chương 4: Operation Modes and Memory Expansion
Microcontroller AT89S52
Sơ đồ chân
Có 16 chân địa chỉ
A0-A15
Có 8 chân dữ liệu
D0-D7
Chân điều khiển ghi
WR
Chân điều khiển đọc
RD
Chân chon chế độ
ALE/PROG
73. 7312/21/2012 kỹ thuật vi điều khiển
Chương 4: Operation Modes and Memory Expansion
Khả năng mở rộng bộ nhớ ROM của 89S52
MemoryMax= 216x8=64KB
Không gian nhớ này được chia thành các block.
Mỗi block là 8KB
Số Block=64/8=8 block
Microcontroller AT89S52
Block.no Address range Block.no Address range
0
1
2
3
0000h-1FFFh
2000h-3FFFh
4000h-5FFFh
6000h-7FFFh
4
5
6
7
8000h-9FFFh
A000h-BFFFh
C000h-DFFFh
E000h-FFFFh
81. 8112/21/2012 kỹ thuật vi điều khiển
Chương 4: Operation Modes and Memory Expansion
Microcontroller AT89S52
The HM6264ATiming Diagrams
There are four access times:
- Address access time (tAA)
- CS1 access time (tCO1)
- CS2 access time (tCO2)
- OE access time (tOE)
tRC
tAA
tCO1
tCO2
tOE
tOHZ
tHZ1
tHZ2
Address
CS1
CS2
OE
Data
Figure HM6264ARead Cycle Timing Diagram
tOH
tLZ2
tLZ1
tOLZ
82. 8212/21/2012 kỹ thuật vi điều khiển
Chương 4: Operation Modes and Memory Expansion
Microcontroller AT89S52
tWC
tAW
tCW
tCW
tWP
tDH
tWR
tHZ2
Address
CS1
CS2
WE
Din
Figure HM6264AWrite Cycle Timing Diagram
tOW
tAS
- Write data must be valid for tDW before WE goes high
and remain valid for at least tDH after WE goes high
- the pulse width of WE must be at least tWP
tDW
83. 8312/21/2012 kỹ thuật vi điều khiển
Chương 4: Operation Modes and Memory Expansion
Ví dụ 4.3 Xây dựng bộ nhớ EPROM 32KB cho bộ
vi điều khiển AT89S52 sử dụng IC 2732 và mạch
giải mã 74138. cho đoạn địa chỉ bắt đầu từ
4000h.
Giải:
IC2732= 4kx8 => số IC sử dụng = (32/4)x(8/8)=
8 IC xếp thành (32/4) hàng và (8/8) cột
Địa chỉ các hàng:
Hàng 1: 100 Hàng 5: 000
Hàng 2: 101 Hàng 6: 001
Hàng 3: 110 Hàng 7: 010
Hàng 4: 111 Hàng 8: 011
Như vậy cần dùng 2 con 74138
Microcontroller AT89S52
84. 8412/21/2012 kỹ thuật vi điều khiển
Chương 4: Operation Modes and Memory Expansion
Microcontroller AT89S52
2732
2732
2732
O2
O1
O3
O4
O5
O6
O7
O0
E1
E2
E1
E2
E3
E3
LE
D7-D0
O7-O0
OE
74F373
A11-A0
D0-D7
A12
A13
A14
A0
A1
A2
A1
A0
A2
A15
ALE
AD0-AD7
A8-A11
WR
WD
AT89S52
74138
74138
PSEN
85. 8512/21/2012 kỹ thuật vi điều khiển
Chương 4: Operation Modes and Memory Expansion
Một số lệnh làm việc với bộ nhớ ngoài
MOVX A,@Ri
MOVX A,@dptr
MOVX @Ri,A
MOVX @dptr,A
Microcontroller AT89S52
86. 8612/21/2012 kỹ thuật vi điều khiển
KỸ THUẬT VI ĐIỀU KHIỂN
Chương 5:
Interrupts and Resets
(ngắt và reset)
87. 8712/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
Basics of Interrupts
What is an interrupt?
Ng¾t(interrupt) lµ sù x¶y a cña 1 sù kiÖn, 1®iÒu kiÖn nµo ®ã lµm cho
ch¬ng tr×nh hiÖn hµnh bÞ t¹m ngng ®ª thùc thi 1 nhiÖm vô kh¸c.
C¸c ng¾t ®ãng vai trß rÊt quang träng trong viÖc thiÕt kÕ vµ thùc hiÖn
c¸c øng dông cña bé vi ®iÒu khiÓn. Nã cho phÐp hÖ thèng ®¸p øng 1 sù
kiÖn theo c¸ch kh«ng ®ång bé vµ xö lý sù kiÖn trong khi 1 ch¬ng tr×nh
kh¸c ®ang ®îc thùc thi.
Functions of Interrupts
Hàm ngắt là hàm được CPU thực hiện khi sảy ra ngắt.
Interrupt Maskability
Khi sảy ra một ngắt mà CPU có thể bỏ qua gọi là ngắt che
được. Bỏ mặt nạ ngắt.
Một số ngắt CPU không thể bỏ qua được gọi là ngắt không che
được.
Microcontroller AT89S52
88. 8812/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
Cơ chế ngắt:
Microcontroller AT89S52
ISR: tr×nh phôc vô ng¾t(interrupt service rountine)
89. 8912/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
Khi ngắt sảy ra
Nã kÕt thóc lÖnh ®ang thùc hiÖn vµ lu ®Þa chØ cña lÖnh kÕ tiÕp
(PC) vµo ng¨n xÕp.
Nã còng lu t×nh tr¹ng hiÖn t¹i cña tÊt c¶ c¸c ng¾t vµo bªn trong
(nghÜa lµ kh«ng lu vµo ng¨n xÕp).
Nã nh¶y ®Õn mét vÞ trÝ cè ®Þnh trong bé nhí ®îc gäi lµ b¶ng vÐc
t¬ ng¾t níi lu gi÷ ®Þa chØ cña mét tr×nh phôc vô ng¾t.
Bé vi ®iÒu khiÓn nhËn ®Þa chØ ISR tõ b¶ng vÐc t¬ ng¾t vµ nh¶y
tíi ®ã. Nã b¾t ®Çu thùc hiÖn tr×nh phôc vô ng¾t cho ®Õn lÖnh
cuèi cïng cña ISR lµ RETI (trë vÒ tõ ng¾t).
Khi thùc hiÖn lÖnh RETI bé vi ®iÒu khiÓn quay trë vÒ n¬i nã ®·
bÞ ng¾t. Tríc hÕt nã nhËn ®Þa chØ cña bé ®Õm ch¬ng tr×nh PC tõ
ng¨n xÕp b»ng c¸ch kÐo hai byte trªn ®Ønh cña ng¨n xÕp vµo
PC. Sau ®ã b¾t ®Çu thùc hiÖn c¸c lÖnh tõ ®Þa chØ ®ã.
Microcontroller AT89S52
90. 9012/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
Microcontroller AT89S52
Thanh ghi cho phép và cấm ngắt:
92. 9212/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
Sử lý ưu tiên ngắt: Khi sảy ra nhiều ngắt đồng thời
Microcontroller AT89S52
Møc u tiªn cao xuèng thÊp
Ng¾t ngoµi 0 INT0
Ng¾t bé ®Þnh thêi 0 TF0
Ng¾t ngoµi 1 INT1
Ng¾t bé ®Þnh thêi 1 TF1
Ng¾t truyÒn th«ng nèi tiÕp (RI + TI)
93. 9312/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
Interrupts Timer
Lập trình bộ timer sử dụng
ngắt sẽ được trình bày cụ thể
trong chương 7
Microcontroller AT89S52
94. 9412/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
Lập trình các ngắt phần cứng bên ngoài
Microcontroller AT89S52
IE0
(TCON.1)
INTO
(Pin 3.2)
Level -
tringgered
Edge - triggered
0003ITO
0
1
IE0
(TCON.3)
INT1
(Pin 3.3)
Level -
tringgered
Edge - triggered
0013IT1
0
1
95. 9512/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
Có hai kiêu ngắt tại các chân
INTRx
Việc cho phép và cấm ngắt thông
qua thanh ghi IE
1. Ngắt theo mức
Các chân thông thường ở mức
cao, khi nó được cấp một tín
hiệu mức thấp thì nó sẽ sảy ra
ngắt
Microcontroller AT89S52
99. 9912/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
2. Ngắt theo sườn xuống
Thanh ghi TCON. Các bit D0(IT0 hay
TCON.0) và D2(IT1 hay TCON.2) để
điều khiển ngắt INTRx theo mức hay
theo sườn
Microcontroller AT89S52
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
D0D7
Quy định ngắt theo sườn dùng lệnh
SETB TCON.0 hay
SETB TCON.2
102. 10212/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
Trích mẫu theo sườn
Microcontroller AT89S52
1.085s
1.085s
1MC
1MC
103. 10312/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
Lập trình ngắt truyền thông nối tiếp
Phần này sẽ được trình bày cụ
thể trong chương 8
Microcontroller AT89S52
104. 10412/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
Microcontroller AT89S52
BẢNG VECTOR NGẮT
105. 10512/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
RESET
Là một nguồn ngắt ngoài tại chân 9
Có chức năng đặt lại giá trị các thanh ghi
Microcontroller AT89S52
Register Reset Value
PC 0000
ACC 0000
B 0000
PSW 0000
SP 0000
DPTR 0007
0000
106. 10612/21/2012 kỹ thuật vi điều khiển
Chương 5: Interrupts and Resets
Hai cách tạo mạch RESET
Microcontroller AT89S52
Vcc Vcc
10F
8.2K
RST
30pF
X2
31
EA/Vpp
19
9
18
+
30pF
31
9
EA/Vpp
X1 X1
X2
RST
8.2K
10F
11.0592 MHz
107. 10712/21/2012 kỹ thuật vi điều khiển
KỸ THUẬT VI ĐIỀU KHIỂN
Chương 6:
Parallel I/O Ports
108. 10812/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
Các giao tiếp cơ bản
Microcontroller AT89S52
Address bus Address
decoder
R/W CE
SRAM
CE
ROM
CE
Interface
Chip 1
Interface
Chip 2
CE
From input
device
To output
device
Microprocessor
Data Bus
109. 10912/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
Sơ đồ chân
Microcontroller AT89S52
110. 11012/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
Có 4 port P0, P1, P2 và P3
Mỗi Port là một cổng 8bit
P0: P0.0 – P0.7
P1: P1.0 – P1.7
P2: P2.0 – P2.7
P3: P3.0 – P3.7
Khi Reset các port này đều được định nghĩa
là các cổng ra, muốn nó làm cổng vào ta phải
lập trình.
Muốn đọc/ghi tới 8bit/cổng dùng dạng Px
Muốn đọc/ghi tới từng bit ta dùng dạng Px.y
X=0-3; y=0-7
Microcontroller AT89S52
111. 11112/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
PORT P0 từ chân 32 – 39
Được dùng làm đầu vào hoặc ra dữ liệu
Muốn cấu hình nó là cổng vào ta dùng lệnh:
MOV P0,#0FFH
Các chân của cổng P0 thường được nối với
điện trở kéo:
Microcontroller AT89S52
Vcc
10K
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
DS5000
8751
8951
Po
rt
0
112. 11212/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
P0 được gán cho chức năng AD0-AD7
Chân EA (chân 31) nối với GND để xác
định VĐK làm việc với ROM ngoài
Chân ALE (chân 30) phân định chức năng
của P0 là A0-A7 (ALE=1) và D0-D7
(ALE=1)
Việc phân định này nhờ mạch chốt
74LS373 (xem thêm chương 4)
Microcontroller AT89S52
113. 11312/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
PORT P1 từ chân 1-8
Không cần điện trở kéo
Cấu hình làm cổng vào : Mov P1,#0FFh
P1.0 ngõ vào của timer/counter thứ 2
P1.1 ngõ nạp lại/thu nhận của
timer/counter thứ 2
Microcontroller AT89S52
114. 11412/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
PORT P2 từ chân 21 – 28
Có 2 chức năng
Chức năng suất nhập như các cổng khác
(ALE=0)
Chức năng địa chỉ cao A8-A15 (ALE=1)
Microcontroller AT89S52
117. 11712/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
Một số giao tiếp cơ bản
Microcontroller AT89S52
5 V
74LS138 B
C
X7
X6
X5
X4
X3
X2
X1
X0
inhibit
MC14051
P1.7
P1.5
P1.4
P1.3
P1.2
P1.1
89S52
10KW each
X
C
B
A
P1.0
118. 11812/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
Giao tiếp với 16 phím
Microcontroller AT89S52
119. 11912/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
Điều khiển led đơn và led 7 đoạn
Microcontroller AT89S52
330W
5V
74HC04
b
c
a
d
e
f g
common cathode
common anode
a b c d e f g
a b c d e f g
(a) seven-segment digit
(b) common-cathode seven-segment display
(c) common-anode seven-segment display
120. 12012/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
Ví dụ 6.2
Microcontroller AT89S52
AT89S52
74ALS244
b
c
a
d
e
f g
a
b
c
d
e
f
g
100W
each
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
BCD
digit
segments
g f e d c b a
corresponding
hex number
0 0 1 1 1 1 1 1 $3F
1 0 0 0 0 1 1 0 $06
2 1 0 1 1 0 1 1 $5B
3 1 0 0 1 1 1 1 $4F
4 1 1 0 0 1 1 0 $66
5 1 1 0 1 1 0 1 $6D
6 1 1 1 1 1 0 1 $7D
7 0 0 0 0 1 1 1 $07
8 1 1 1 1 1 1 1 $7F
9 1 1 0 1 1 1 1 $6F
Table BCD to seven-segment decoder
Dùng LED
cathode chung
121. 12112/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
Ghép với nhiều led 7 đoạn
Microcontroller AT89S52
74ALS244
AT89S52
P3.5
P3.4
P3.0
100W
a
b
g
.
.
a
b
.
.
.
g
a
b
.
.
. g
.
.
.
2N2222
2N2222
2N2222
common
cathode
common
cathode
common
cathode
1KW
1KW
1KW
P2.0 P2.1 P2.6
Imax=91mA
100W
122. 12212/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
Ví dụ 6.3 VD: Hieån thò ‘123’ leân LED 7 ñoaïn.
Microcontroller AT89S52
124. 12412/21/2012 kỹ thuật vi điều khiển
Chương 6: Parallel I/O Ports
MOV P2,#0A4h ; XuÊt ra P2 m· cña sè 2
CLR P3.1 ; bËt LED2
ACALL DELAY ; delay
SETB P3.1 ; T¾t LED2
MOV P2,#0F9h ; XuÊt ra P2 m· cña sè 1
CLR P3.2 ; bËt LED3
ACALL DELAY ; delay
SETB P3.2 ; t¾t LED3
SJMP BEGIN
DELAY: MOV R1,#10
MOV R0,#0FFh
LOOP: DJNZ R0,LOOP
DJNZ R1,LOOP
RET
END
Microcontroller AT89S52
125. 12512/21/2012 kỹ thuật vi điều khiển
KỸ THUẬT VI ĐIỀU KHIỂN
Chương 7:
Timer/Counter Functions
126. 12612/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
Tổng quan :
Sơ đồ khối Timer/Counter trong các hệ VĐK
Microcontroller AT89S52
127. 12712/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
7.1 LẬP TRÌNH TIMER
Lập trình bằng phương pháp thăm dò
Lập trình bằng ngắt
Microcontroller AT89S52
128. 12812/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
Các thanh ghi cơ sở của bộ định thời
Thanh ghi bộ Tmer THx TLx
Thanh ghi TMOD của Timer0 và Timer1
Microcontroller AT89S52
D15 D14 D13 D12 D11 D10 D9 D8
THx
D7 D6 D5 D4 D3 D2 D1 D0
TLx
(MSB)
GATE C/T M1 M0
Timer1
GATE C/T M1 M0
Timer0
(MSB)
129. 12912/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
Microcontroller AT89S52
M1 M0 ChÕ ®é ChÕ ®é ho¹t ®éng
0 0 0 Bé ®Þnh thêi 13 bÝt gåm 8 bÝt lµ bé ®Þnh thêi/ bé ®Õm 5 bÝt ®Æt tr-
íc
0 1 1 Bé ®Þnh thêi 16 bÝt (kh«ng cã ®Æt tríc)
1 0 2 Bé ®Þnh thêi 8 bÝt tù n¹p l¹i
1 1 3 ChÕ ®é bé ®Þnh thêi chia t¸ch
Trong c¸c chÕ ®é trªn th× chÕ ®é 1 vµ 2 lµ ®îc ding réng r·i nhÊt.
+ Bit C/T ®Ó quy ®Þnh nguån xung cho Timer
C/T=0 : Dïng nh bé ®Þnh thêi
C/T=1 : Dïng nh bé ®Õm
Nguån xung ®ång hå cho bé ®Þnh thêi:
Bé giao ®éng
th¹ch anh
12 TÇn sè ®ång hå cña bé ®Þnh
thêi
130. 13012/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
Bit Gate quy ®Þnh dõng vµ khëi ®éng bé Timer
b»ng phÇn cøng hay phÇn mÒm.
GATE = 0 Khëi ®éng vµ dõng timer b»ng phÇn
mÒm
GATE = 1 Khëi ®éng vµ dõng timer b»ng phÇn
cøng tõ ngoµi
Thanh ghi TCON của Timer0 và Timer1
Microcontroller AT89S52
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
D0D7
Thanh ghi TCON ®îc ®¸nh ®Þa chØ theo bit. 4 bit cao dïng cho ®iÒu khiÓn
Timer/Counter cßn 4 bit thÊp dïng cho ®iÒu khiÓn ng¾t.
138. 13812/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
LAÄP TRÌNH CHEÁ ÑOÄ 2
Microcontroller AT89S52
XTAL
oscillator
12 TL TF
TF goes high
when FFFF 0
reload
TR TF
Caùc böôùc laäp trình cho cheá ñoä 2
1. N¹p thanh ghi gi¸ trÞ TMOD ®Ó b¸o bé ®Þnh thêi gian nµo (Timer0 hay Timer1) ®-
îc sö dông vµ chÕ ®é lµm viÖc nµo cña chóng ®îc chon.
2. N¹p l¹i c¸c thanh ghi TH víi gi¸ trÞ ®Õm ban ®Çu.
3. Khëi ®éng bé ®Þnh thêi.
4. Duy tr× hiÓn thÞ cê bé ®Þnh thêi TF sö dông lÖnh “JNB TFx, ®Ých” ®Ó xem nã sÏ ®-
îc bËt cha. Tho¸t vßng lÆp khi TF lªn cao.
5. Xo¸ cê TF.
6. Quay trë l¹i bíc 4 v× chÕ ®é 2 lµ chÕ ®é tù n¹p l¹i.
139. 13912/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
Ví duï 7.3
H·y t×m tÇn sè cña xung vu«ng ®îc t¹o ra trªn P1.0.
Lêi gi¶i:
MOV TMOD, #2H ; Chän Timer0, chÕ ®é 2 (8 bÝt tù n¹p l¹i)
AGAIN: MOV TH0, #0 ; N¹p TH0 = 00
MOV R5, #250 ; §Õm cho ®é trÔ lín
ACALL DELAY
CPL P1.0
SJMP AGAIN
DELAY: SETB TR0 ; Khëi ®éng Timer0
BACK: JNB TF1, BACK ; gi÷ nguyªn cho ®Õn khi bé ®Þnh thêi quay vÒ 0
CLR TR0 ; Dõng Timer0.
CLR TF0 ; Xo¸ cê TF0 cho vßng sau.
DJNZ R5, DELAY
RET
T = 2 (250 256 1.085s) = 1.38.88ms vµ f = 72Hz.
Microcontroller AT89S52
140. 14012/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
LAÄP TRÌNH CHO CHEÁ ÑOÄ 0
Hoaøn toaøn gioáng cheá ñoä 1 chæ khaùc ôû choã cheá ñoä 0 laø
13 bit töùc laø töø 0000 ñeán 1FFFH
*******************************************
Trong các ví dụ trên đây là thao tác lập trình
Timer bằng cách thăm dò. Tức là CPU sẽ chỉ
thực hiện lệnh
đich :JNB TFx,đich
Cho đến khi TFx=1. và CPU sẽ không làm được
việc khác.
Để khắc phục nhược điểm này ta phải sử dụng lập
trình bằng ngắt.
Microcontroller AT89S52
141. 14112/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
LẬP TRÌNH NGẮT TIMER
- Khi thanh ghi IE được cấu hình cho
phép ngắt timer thì khi timer về 0 thì cờ
TF được bật lúc đó bộ vi điều khiển bị
ngắt và nhảy tới bảng vector ngắt để
thực hiện ISR.
- Bằng cách này bộ vi điều khiển có thể
làm được việc khác cho đến khi nào nó
được thông báo bộ định thời đã quay về
0
Microcontroller AT89S52
150. 15012/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
Như vậy lập trình cho Counter cũng giống
như timer nhưng bit C/T của TCON bằng 1
Microcontroller AT89S52
TH0 TL0 TF0
TF0 goes high
when FFFF 0
overflow flag
TR0
Timer
exterrnal
input
Pin 3.4
TH1 TL1 TF1
TF1 goes high
when FFFF 0
overflow flag
TR1
Timer
exterrnal
input
Pin 3.5
Counter chế độ 1
151. 15112/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
Counter chế độ 2
Microcontroller AT89S52
TL0 TF0
overflow flag
TR0
Timer0
exterrna
l input
Pin 3.4
TF0 goes high
when FF 0
TH0
reload
TL1 TF1
overflow flag
TR1
Timer1
exterrna
l input
Pin 3.5
TF1 goes high
when FF 0
TH1
reload
154. 15412/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
Trường hợp hợp tương đương trên thanh ghi
TCON
Microcontroller AT89S52
Đèi víi Timer0
SETB TR0 = SETB TCON.4
CLR TR0 = CLR TCON.4
SETB TF = SETB TCON.5
CLR TF0 = CLR TCON.5
Đèi víi Timer1
SETB TR1 = SETB TCON.6
CLR TR1 = CLR TCON.6
SETB TF1 = SETB TCON.7
CLR TF1 = CLR TCON.7
155. 15512/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
Bit GATE=1? Trong thanh ghi TMOD
Trong phần trên ta đã giả thiết GATE=0
Khi bít GATE=0 việc khởi động và dừng
Timer/Counter bằng các lệnh SETB TRx
hoặc CLR TRx.
Khi bit GATE=1 việc khởi động và dừng
Timer/Counter là từ bên ngoài qua hai
chân INT0 (P3.2) cho bộ CT0 và chân
INTR1(P3.3) cho bộ CT1
Microcontroller AT89S52
156. 15612/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
Bộ timer/Counter 0
Microcontroller AT89S52
XTAL
oscillator
12
T0 Pin
Pin 3.4
Gate
TR0
157. 15712/21/2012 kỹ thuật vi điều khiển
Chương 7: Timer/Counter Functions
Bộ timer/Counter 1
Microcontroller AT89S52
XTAL
oscillator
12
T1 Pin
Pin 3.5
Gate
TR1
158. 15812/21/2012 kỹ thuật vi điều khiển
KỸ THUẬT VI ĐIỀU KHIỂN
Chương 8:
Serial Communication
Interface
159. 15912/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Mô hình truyền dữ liệu
Microcontroller AT89S52
communication link
DTE DCE DTEDCE
computer or
terminal
modem modem computer or
terminal
Modem “Modulator/ demodulator” (®iÒu chÕ/ gi¶i ®iÒu chÕ).
Truyền dữ liệu nối tiếp dùng để truyền xa
Truyền dừ liệu song song để truyền gần
160. 16012/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Trong truyền thông nối tiếp có hai phương
pháp truyền dự liệu:
Truyền đồng bộ: Truyền một khối dữ liệu
đồng thời.
Truyền dị bộ : Truyền từng byte một
Nh÷ng IC phôc vô nh c¸c bé thu - ph¸t dÞ bé
tæng hîp UART (Universal Asynchronous
Receiver Transmitter)
C¸c bé thu - ph¸t ®ång - dÞ bé tæng hîp UBART
Microcontroller AT89S52
161. 16112/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Các chế độ truyền nối tiếp cơ bản
Microcontroller AT89S52
Bé ph¸t Bé thu
Bé ph¸t
Bé thu
Bé thu
Bé ph¸t
Bé ph¸t
Bé thu
Bé thu
Bé ph¸t
B¸n ®¬n c«ng
Song c«ng
§¬n c«ng
Simplex link
Half-duplex link
full-duplex link
162. 16212/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Phép truyền dị bộ được dùng cho phép
truyền hướng ký tự.
Phép truyền đồng bộ dùng cho truyền theo
khối.
Trong truyền dị bộ mỗi ký tự được đặt giữa
một bít bắt đầu (start) và một bit kết thúc
(stop). Công việc này gọi là đóng gói dữ
liệu.
Start bit luôn là 0
Stop bit luôn là 1
Microcontroller AT89S52
163. 16312/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Ví dụ 8.1: đóng gói ký tự A
Microcontroller AT89S52
d7
1 1 Start
bÝtSpace
Stop
bÝt
Mark
d0
Goes out last Goes out
first
Ngày nay một gói dữ liệu thường gồm 10 bit
Ngoài ra có thể thêm 1 bit gọi là bít chẵn lẻ (parity) để đảm bảo
tính toàn vẹn của dữ liệu
164. 16412/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Tốc độ truyền dữ liệu – tốc độ baud
Các máy tính trước đây tốc độ từ 100-
9600 bps
Các máy tính ngày nay có thể tới
56kbps
Trong truyền nối tiếp dị bộ thì baud tối
đa là 100.000 bps
Microcontroller AT89S52
165. 16512/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Mô hình truyền dữ liệu
Microcontroller AT89S52
Station Station
(a) point-to-point communication link
Slave 1 Slave 2 Slave 3
Master
(b) multi-drop communication link
166. 16612/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
RS232 – Chuẩn truyền thông nối tiếp
RS232 là chuẩn cho phép tương thích giữa
các thiết bị truyền thông dữ liệu được sản
xuất bởi các hãng khác nhau.
Được phát triển bởi hiệp hội công nghiệp
điện tử Electronics Industry Association
(EIA) vào năm 1960
Các phiên bản sau: RS232A(1963);
RS232B(1965); RS232C(1969) và
RS232D(1987)
Microcontroller AT89S52
167. 16712/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Chuẩn RS232 quy định
Mức 0 : -25V => -3V
Mức 1 : 3 V => 25 V
Điều này không phù hợp với các họ vi điều
khiển hiện nay
=> Cần kết nối RS232 bất ký đến một bộ
VĐK thì ta cần một bộ biến đổi điện áp
như MAX232
Microcontroller AT89S52
171. 17112/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Microcontroller AT89S52
TxD
RxD
TxD
RxD
DTE DTE
ground
Giao thức bắt tay. Không modem
172. 17212/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Hai DTE kết nối qua đường điện thoại
Microcontroller AT89S52
Tx
Rx
RING
DCD
CTS
RTS
DSR
DTR
GND
Tx
Rx
RING
DCD
CTS
RTS
DSR
DTR
GND
Tx
Rx
RING
DCD
CTS
RTS
DSR
DTR
GND
Tx
Rx
RING
DCD
CTS
RTS
DSR
DTR
GND
phone line
Figure Connection over public phone line
Computer
(DTE)
Modem
(DCE)
Modem
(DCE)
Computer
(DTE)
174. 17412/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Sơ đồ sử dụng MAX233 không cần tụ
Microcontroller AT89S52
P3.1
TxD
P3.0
RxD
Max232
8051
Vcc
13
1414
12
17
11
15
16
10
18
1920
11
10 3
2 5
4 2
2 5
2
3
1
5
4
T1OUT T1IINT1IIN
R1II
N
R1OU
T
T2IIN
R2OU
T
T2OUT
R2II
N
Rs233 sideTTL side
6 9
7
DB - 9
175. 17512/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
LẬP TRÌNH TRUYỀN THÔNG NỐI TIẾP
Yêu cầu:
- Tốc độ baud của 8052 phải bằng tốc độ
baud của PC
- dùng chức năng Hyperterminal trong Win
XP(start=>accessories=>communications
=> Hyperterminal) để giao tiếp
- Ví dụ: C¸c tèc ®é Baud cña m¸y tÝnh PC486
vµ Pentium cho trong BIOS.
Microcontroller AT89S52
100 150 300 600 1200 2400 4800 9600 19200
176. 17612/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Tốc độ baud trong 89S52
Khi Reset:
Microcontroller AT89S52
177. 17712/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Microcontroller AT89S52
178. 17812/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Internal Baud Rate Generator (BRG)
Microcontroller AT89S52
179. 17912/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Thanh ghi điều khiển nối tiếp SCON (98h)
Microcontroller AT89S52
BIT
FE/SM0 Sè x¸c ®Þnh chÕ ®é lµm viÖc cæng nèi tiÕp
SM1 Sè x¸c ®Þnh chÕ ®é lµm viÖc cæng nèi tiÕp
SM2 Dïng cho truyÒn th«ng gi÷a c¸c bé vi xö lý (SM2 = 0)
REN BËt/xo¸ b»ng phÇn mÒm ®Ó cho phÐp/ kh«ng cho thu
TB8 Kh«ng sö dông réng r·i
RB8 Kh«ng sö dông réng r·
TI Cê ng¾t truyÒn ®Æt b»ng phÇn cøng khi b¾t ®Çu bÝt Stop ë chÕ ®é 1
RI Cê ng¾t thu Xo¸ b»ng phÇn mÒm
180. 18012/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Thanh ghi SCON được đánh địa chỉ theo bit
Trong 4 chế độ ta chỉ quan tâm đến chế độ 1
8bit dữ liệu, start, stop SM1=0, SM0=1
Microcontroller AT89S52
182. 18212/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Thanh ghi SBUF (99h) serial buffer register
Là thanh ghi 8bit chứa giữ liệu truyền qua chân
TxD và dữ liệu nhận từ chân RxD
BRL register (9Ah)
Giá trị mặc định 00h
Chứa giá trị nạp lại trong chế độ BRG
Các thanh ghi khác tim hiểu trong tài liệu.
Nội dung các vấn đề cần quan tâm chỉ cần giới
hạn trong các thanh ghi trên
Microcontroller AT89S52
183. 18312/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Các bước lập trình truyên dữ liệu
1. N¹p thanh ghi TMOD gi¸ trÞ 20H b¸o r»ng sö dông
Timer1 ë chÕ ®é 2 ®Ó thiÕt lËp chÕ ®é baud.
2. N¹p thanh ghi TH1 ®Ó thiÕt lËp chÕ ®é baud truyÒn d÷
liÖu nèi tiÕp (víi gi¶ thiÕt tÇn sè XTAL =
11.0592MHz).
3. N¹p thanh ghi SCON gi¸ trÞ 50H b¸o chÕ ®é nèi tiÕp 1
®Ó ®ãng khung 8 bÝt d÷ liÖu, 1 bÝt Start vµ 1 bÝt Stop.
4. BËt TR1 = 1®Ó khëi ®éng Timer1.
5. Xo¸ bÝt TI b»ng lÖnh “CLR TI”
6. Byte ký tù cÇn ph¶i truyÒn ®îc ghi vµo SBUF.
7. BÝt cê TI ®îc hiÓn thÞ b»ng lÖnh “xx: JNB TI, xx” ®Ó
b¸o ký tù ®· ®îc truyÒn hoµn tÊt cha.
8. §Ó truyÒn ký tù tiÕp theo quay trë vÒ bíc 5.
Microcontroller AT89S52
184. 18412/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Ví dụ: 8.1 H·y viÕt ch¬ng tr×nh cho 8051 ®Ó truyÒn nèi tiÕp mét ký tù “A”
víi tèc ®é 4800 baud liªn tôc.
Lêi gi¶i:
MOV TMOD, #20H ; Chän Timer1, chÕ ®é 2 (tù ®éng n¹p l¹i)
MOV TH1, # - 6 ; Chän tèc ®é 4800 baud
MOV SCON, #A”; TruyÒn 8 bÝt d÷ liÖu, 1 bÝt Stop cho phÐp thu
SETB TR1 ; Khëi ®éng Timer1
AGAIN: MOV SBUF, #”A” ; CÇn truyÒn ký tù “A”
HERE: JNB TI, HERE ; Chê ®Õn bÝt cuèi cïng
CLR TI ; Xo¸ bÝt TI cho ký tù kÕ tiÕp
SJMP AGAIN ; TiÕp tôc göi l¹i ch÷ A
Microcontroller AT89S52
185. 18512/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Ví dụ 8.2
H·y viÕt ch¬ng tr×nh ®Ó truyÒn ch÷ “YES” nèi tiÕp liªn tôc víi tèc ®é 9600 baud (8 bÝt d÷ liÖu, 1
bÝt Stop).
Lêi gi¶i:
MOV TMOD, #20H ; Chän bé Timer1, chÕ ®é 2
MOV TH1, # - 3 ; Chän tèc ®é 9600 baud
MOV SCON, #50H ; TruyÒn 8 bÝt d÷ liÖu, 1 bÝt Stop cho phÐp thu
SETB TR1 ; Khëi ®éng Timer1
AGAIN: MOV A, # "Y" ; TruyÒn ký tù “Y”
ACALL TRANS
MOV A, # "E" ; TruyÒn ký tù “E”
ACALL TRANS
MOV A, # "S" ; TruyÒn ký tù “S”
ACALL TRANS
SJMP AGAIN ; TiÕp tôc
; Ch¬ng tr×nh con truyÒn d÷ liÖu nèi tiÕp.
TRANS: MOV SBUF, A ; N¹p SBUF
HERE: JNB TI, HERE ; Chê cho ®Õn khi truyÒn bÝt cuèi cïng
CLR TI ; Chê s½n cho mét byte kÕ tiÕp
RET
Microcontroller AT89S52
186. 18612/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Các bước lập trình nhận dữ liệu
1. N¹p gi¸ trÞ 20H vµo thanh ghi TMOD ®Ó b¸o sö dông bé Timer1, chÕ
®é 2 (8 bÝtm, tù ®éng n¹p l¹i) ®Ó thiÕt lËp tèc ®é baud.
2. N¹p TH1 c¸c gi¸ trÞ ®Ó t¹o ra tèc ®é baud víi gi¶ thiÕt XTAL =
11.0592MHz.
3. N¹p gi¸ trÞ 50H vµo thanh ghi SCON ®Ó b¸o sö dông chÕ ®é truyÒn nèi
tiÕp 1 lµ d÷ liÖu ®îc ®ãng gãi bëi 8 bÝt d÷ liÖu, 1 bÝt Start vµ 1 bÝt
Stop.
4. BËt TR1 = 1 ®Ó khëi ®éng Timer1.
5. Xo¸ cê ng¾t RI b»ng lÖnh “CLR RI”
6. BÝt cê RI ®îc hiÓn thÞ b»ng lÖnh “xx: JNB RI, xx” ®Ó xem toµn bé ký
tù ®· ®îc nhËn cha.
7. Khi RI ®îc thiÕt lËp th× trong SBUF ®· cã 1 byte. C¸c néi dung cña nã
®îc cÊt lu vµo mét n¬i an toµn.
8. §Ó nhËn mét ký tù tiÕp theo quay trë vÒ bíc 5.
Microcontroller AT89S52
187. 18712/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Ví dụ 8.3 H·y lËp tr×nh cho 8051 ®Ó nhËn c¸c byte d÷ liÖu nèi
tiÕp vµ ®Æt chóng vµo cæng P1. §Æt tèc ®é baud lµ 4800, 8 bÝt d÷
liÖu vµ 1 bÝt Stopl.
Lêi gi¶i:
MOV TMOD, #20H ; Chän bé Timer1, chÕ ®é 2 (tù ®éng n¹p l¹i)
MOV TH1, # - 6 ; Chän tèc ®é 4800 baud
MOV SCON, #50H ; Chän khung d÷ liÖu 8 bÝt Stop, bÝt.
SETB TR1 ; Khëi ®éng bé Timer1
HERE: JNB R1, HERE ; §îi nhËn toµn bé lý tù vµo hÕt
MOV A, SBUF ; Lu cÊt ký tù vµo thanh A
MOV P1, A ; Göi ra cæng P.1
CLR RI ; S½n sµng nhËn byte kÕ tiÕp
SJMP HERE ; TiÕp tôc nh¹n d÷ liÖu
Microcontroller AT89S52
192. 19212/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Thay đổi tốc độ Baud
- Tăng tần số thạch anh
- Thay đổi bit SMOD trên thanh ghi PCON
- SMOD mặc định có giá trị 0
- Khi SMOD =1 tốc độ baud được tăng lên
gấp đôi.
Microcontroller AT89S52
SM0D GF0 GF0 PD IDL
D7 D0
194. 19412/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
LẬP TRÌNH TRUYÊN THÔNG NỐI TIẾP
BẰNG NGẮT
- Ở trên đã dùng phương pháp thăm
dò(polling) đễ giám sát các cờ TI và RI điều
đó sẽ rất lãng phí.
- Trong lập trình truyền thông ngắt ta có thể
làm việc khác khi tác vụ truyền thông vẫn
làm việc.
- Có một ngắt dành cho truyền thông nối tiếp
là bit IE.4 (ES)
Microcontroller AT89S52
195. 19512/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
Khi có ngắt thi 8052 nhảy đến địa chỉ ngắt
dành cho truyền thông nối tiếp 0023h.
Trong ISR chúng ta phải kiểm tra TI và RI
để có tác vụ phù hợp
Microcontroller AT89S52
RI
TI
0023
H
198. 19812/21/2012 kỹ thuật vi điều khiển
Chương 8: Serial Communication Interface
MOV TH0, # - 92 ; T¹o tÇn sè 5kHz
MOV IE, # 10010010B ; Cho phÐp ng¾t nèi tiÕp
SETB TR1 ; Khëi ®éng Timer1
SETB TR0 ; Khëi ®éng Timer0
BACK: MOV A, P1 ; §äc d÷ liÖu tõ cæng P1
MOV SBUF, A ; LÊy mét lÇn b¶n sao d÷ liÖu
MOV P2, A ; Ghi nã vµo cæng P2
SJMP BACK ; ë l¹i trong vßng lÆp
; ---------------------- Tr×nh phôc vô ng¾t cæng nèi tiÕp.
ORG 100H
SERIAL: JB TI, TRANS ; Nh¶y nÕu TI vµo
MOV A, SBUF ; NÕu kh«ng tiÕp tôc nhËn d÷ liÖu
MOV P0, A ; Göi d÷ liÖu nèi tiÕp ®Õn P0
CLR RI ; Xo¸ cê RI v× 8051 kh«ng lµm ®iÒu nµy
RETI ; Trë vÒ tõ ISR
TRANS: CLR TI ; Xo¸ cê TI v× 8051 kh«ng xo¸
RETI ; Trë vÒ tõ ISR.
END
Microcontroller AT89S52
199. 19912/21/2012 kỹ thuật vi điều khiển
KỸ THUẬT VI ĐIỀU KHIỂN
Chương 9:
LCD,ADC and SENSOR
INTERFACE
200. 20012/21/2012 kỹ thuật vi điều khiển
Chương 9: LCD,ADC and SENSOR INTERFACE
AT89S52 với LCD
Ưu điểm hiển thị của LCD:
- Giá thành ngày càng hạ.
- Hiển thị được đầy đủ số và ký tự.
- Có khả năng đồ họa
- LCD tích hợp mạch làm tươi, do đó CPU sẽ
không phải làm việc này giống như các đèn
led.
- Dễ dàng lập trình.
Microcontroller AT89S52
201. 20112/21/2012 kỹ thuật vi điều khiển
Chương 9: LCD,ADC and SENSOR INTERFACE
Sơ đồ ghép nối
Microcontroller AT89S52
P2.1
D0
P1.0
P1.0
P2.2
D7
R/W ERS
VSS
VEE
VCC
+5v
10K
POT
LCD
8052
202. 20212/21/2012 kỹ thuật vi điều khiển
Chương 9: LCD,ADC and SENSOR INTERFACE
Vị trí
và
chức
năng
các
chân
Microcontroller AT89S52
203. 20312/21/2012 kỹ thuật vi điều khiển
Chương 9: LCD,ADC and SENSOR INTERFACE
Microcontroller AT89S52
M· (Hex) LÖnh ®Õn thanh ghi cña LCD
1 Xo¸ mµn h×nh hiÓn thÞ
2 Trë vÒ ®Çu dßng
4 Giảm con trá (dÞch con trá sang tr¸i)
6 Tăng con trá (dÞch con trá sang ph¶i)
5 DÞch hiÓn thÞ sang ph¶i
7 DÞch hiÓn thÞ sang tr¸i
8 T¾t con trá, t¾t hiÓn thÞ
A T¾t hiÓn thÞ, bËt con trá
C BËt hiÓn thÞ, t¾t con trá
E BËt hiÓn thÞ, nhÊp nh¸y con trá
F T¾t con trá, nhÊp nh¸y con trá
10 DÞch vÞ trÝ con trá sang tr¸i
14 DÞch vÞ trÝ con trá sang ph¶i
18 DÞch toµn bé hiÓn thÞ sang tr¸i
1C DÞch toµn bé hiÓn thÞ sang ph¶i
80 Ðp con trá Vò ®Çu dßng thø nhÊt
C0 Ðp con trá Vò ®Çu dßng thø hai
38 Hai dßng vµ ma trËn 5 7
Bảng
mã
lệnh
204. 20412/21/2012 kỹ thuật vi điều khiển
Chương 9: LCD,ADC and SENSOR INTERFACE
Khi gửi dữ liệu hoặc mã lệnh đến LCD cần
phải chú ý đến:
Độ trễ thời gian để LCD xử lý.
Giám sát cờ bận ở bit D7 khi RS=0 và
R/W=1
Khi bit D7=0 ta mới gửi dữ liệu RS=0 và
R/W=0
Thể hiện trong hai ví dụ sau:
Microcontroller AT89S52
205. 20512/21/2012 kỹ thuật vi điều khiển
Chương 9: LCD,ADC and SENSOR INTERFACE
Thời gian xử lý:
Microcontroller AT89S52
Dữ liệu hiển thị
là mã ASCII
của các ký tự
đó