Ngày nay với sự xuất hiện của các chip vi điều khiển có khả năng lập trình điều khiển rất linh hoạt, được sử dụng rộng rãi trong các lĩnh vực tự động hoá và tạo nên một bước phát triển n
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM
Trang 2LỜI CẢM ƠN
Để có thể hoàn thành tốt khóa luận này, em đã nhận được rất nhiều sự giúp đỡ
nhiệt tình của quý thầy cô Đầu tiên, em xin chân thành gửi lời cảm ơn đến thầy giáo
Lê Xứng – người đã hướng dẫn tận tình và giúp đỡ em rất nhiều trong quá trình thực
hiện bài khóa luận của mình Em xin chân thành cảm ơn các thầy cô trong khoa Vật
Lý đã trang bị cho em những kiến thức sâu sắc để em hoàn thành tốt đề tài này
Ngoài ra, trong quá trình thực hiện khóa luận em còn nhận được rất nhiều sự
động viên và giúp đỡ từ phía gia đình, bạn bè và tập thể các bạn trong lớp Do đó kết
quả của đề tài này là lời cảm ơn sâu sắc nhất của em gửi tới mọi người và là nguồn
động lực để em có thể tự tin vào các kiến thức mình đã thu được sau khi tốt nghiệp
Mặc dù đã nổ lực cố gắng nhưng đề tài của em vẫn không tránh khỏi những
thiếu sót, kính mong các thầy cô đóng góp ý kiến, bổ sung cho khóa luận được thành
công hơn nữa
Đà Nẵng, tháng 05 năm 2013
Sinh viên thực hiện
Phạm Thị Chi
Trang 3LỜI MỞ ĐẦU
Với sự phát triển ngày càng mạnh mẽ và rộng lớn của nền khoa học kỹ thuật
Các công nghệ mới thuộc các lĩnh vực khác nhau cũng nhờ đó đã ra đời để đáp ứng
những nhu cầu của xã hội, và một trong số đó phải kể đến là Kỹ Thuật Vi Điều
Khiển Ngày nay với sự xuất hiện của các chip vi điều khiển có khả năng lập trình
điều khiển rất linh hoạt, được sử dụng rộng rãi trong các lĩnh vực tự động hoá và tạo
nên một bước phát triển nhảy vọt trong lĩnh vực này Từ những kiến thức đã học em
đã nghiên cứu và chọn đề tài “Bật tắt đèn tự động sử dụng vi điều khiển 8051’’ với
nhiều ứng dụng trong thực tế, đặc biệt trong đời sống sinh hoạt hằng ngày
Mục đích của mạch “Bật tắt đèn tự động’’ là hệ thống điều khiển đèn bật/tắt
theo thời gian, hệ thống này giống như một thiết bị hẹn giờ để bật/tắt đèn tự động
giúp cho người dùng mạch này sử dụng trong đời sống sinh hoạt hằng ngày và như
một thiết bị điện nhằm đáp ứng nhu cầu của con người là những hoạt động tất yếu và
thường xuyên
Mạch “Bật tắt đèn tự động’’ được thiết kế từ việc áp dụng những kiến thức đã
học cùng với sự hướng dẫn của giáo viên hướng dẫn nghiên cứu và phân tích các đặc
tính chức năng của các linh kiện điện tử, nguyên lý làm việc của các IC và cách mắc
các thiết bị điện tử để thiết kế mạch
Do có sự hạn chế về mặt thời gian cũng như kiến thức và chưa có kinh nghiệm
nghiên cứu trong thực tế nên em còn gặp nhiều khó khăn trong quá trình tính toán
thiết kế và thi công mạch Vì vậy trong quá trình thực hiện đề tài này không tránh
khỏi những thiếu xót Rất mong được sự thông cảm và đóng góp ý kiến của quý thầy
cô và các bạn Em xin chân thành cảm ơn
Trang 4MỤC LỤC
LỜI CẢM ƠN
LỜI MỞ ĐẦU
GIỚI THIỆU ĐỀ TÀI 1
1 Lý do chọn đề tài: 6
2 Đặt vấn đề: 6
3 Mục tiêu đề tài: 6
4 Giới hạn đề tài: 7
PHẦN 1: CƠ SỞ LÝ THUYẾT 8
CHƯƠNG 1: GIỚI THIỆU VI ĐIỀU KHIỂN AT89C51 8
1.1 GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MCS-51 (AT89C51): 8
1.2 KHẢO SÁT SƠ ĐỒ CHÂN AT89C51, CHỨC NĂNG TỪNG CHÂN: 10
1.2.1 Sơ đồ chân AT89C51: 10
1.2.2 Chức năng các chân của AT89C51: 10
1.2.2.1 Các Port: 10
1.2.2.2 Các ngõ tín hiệu điều khiển: 11
1.3 CẤU TRÚC BÊN TRONG VI ĐIỀU KHIỂN: 13
1.3.1 Tổ chức bộ nhớ: 13
1.3.1.1 Sơ đồ cấu trúc bên trong của AT89C51: 13
1.3.1.2 Tổ chức bộ nhớ của AT89C51: 14
1.3.2 Các thanh ghi có chức năng đặc biệt: 15
1.3.3 Hoạt động Reset: 18
1.3.4 Cổng nối tiếp: 19
1.3.5 Các lệnh trong AT89C51: 19
1.3.6 Hoạt động ngắt của 89C51: 20
CHƯƠNG 2: CÁC LINH KIỆN TRONG MẠCH 22
2.1 LED 7 ĐOẠN: 22
Trang 52.3 KHỐI NGUỒN: 25
PHẦN 2: THIẾT KẾ VÀ THI CÔNG 26
CHƯƠNG 3: THIẾT KẾ 26
3.1 SƠ ĐỒ KHỐI: 26
3.2 MẠCH NGUYÊN LÝ: 26
3.2.1 Sơ đồ nguyên lý của mạch: 26
3.2.2 Nguyên lý hoạt động chung: 27
3.2.3 Chi tiết từng khối: 27
3.2.3.1 Khối nguồn và tính toán các giá trị linh kiện trong mạch: 27
3.2.3.2 Khối xử lý: 27
3.2.3.3 Khối phím nhấn và khối hiển thị 28
CHƯƠNG 4: THI CÔNG 30
4.1 LƯU ĐỒ THUẬT TOÁN: 30
4.1.1 Thuật toán chương trình chính: 30
4.1.2 Thuật toán các chương trình con: 31
4.1.2.1 Thuật toán chương trình con MAIN 0: 31
4.1.2.2 Thuật toán chương trình con MAIN 1: 32
4.1.2.3 Thuật toán chương trình con MAIN 2: 34
4.1.2.4 Thuật toán chương trình con trễ 1ms ( DELAYMS ): 37
4.1.2.5 Thuật toán chương trình con trễ 1s ( DELAYS ): 38
4.2 CHƯƠNG TRÌNH: 39
PHẦN 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 43
1 KẾT LUẬN: 43
2 HƯỚNG PHÁT TRIỂN ĐỀ TÀI: 43
TÀI LIỆU THAM KHẢO 45
Trang 6GIỚI THIỆU ĐỀ TÀI
1 Lý do chọn đề tài:
Trong nền kinh tế phát triển và công nghiệp ngày càng hiện đại kéo theo sự
phát triển đầy mới mẻ của ngành khoa học kĩ thuật, đặc biệt là lĩnh vực kĩ thuật-điện
tử Bằng cách sử dụng vi điều khiển, điển hình là vi điều khiển 8051 đã cho ra đời
nhiều loại sản phẩm có ứng dụng rất thiết thực trong nhiều lĩnh vực Trong đời sống
sinh hoạt hằng ngày, việc bật tắt các thiết bị điện nhằm đáp ứng nhu cầu của con
người là những hoạt động tất yếu và thường xuyên Vi điều khiển có thể giúp chúng
ta tiết kiệm được thời gian, công sức vào những hoạt động này bằng cách tự động bật
tắt các thiết bị, mặt khác còn đem lại sự chính xác và hiệu quả
Sau khi có được những kiến thức về vi điều khiển 8051 cùng với sự hướng
dẫn của thầy giáo Lê Xứng, nhóm chúng em đã chọn đề tài nghiên cứu là “Bật tắt đèn
tự động sử dụng vi điều khiển 8051”
2 Đặt vấn đề:
Trong thực tế cuộc sống có rất nhiều thiết bị điện muốn hoạt động hoặc
ngừng hoạt động, không có cách nào khác là phải nhấn công tắc điện để cung cấp
nguồn điện hoặc ngắt nguồn điện cho thiết bị Điều này nhiều lúc rất thụ động và bất
tiện cho người sử dụng, từ những nhược điểm đó em đã có ý tưởng thiết kế một thiết
bị có khả năng đóng, ngắt nguồn điện một cách chủ động hơn Thiết bị này chính là
một hệ thống có khả năng hẹn giờ, định thời gian đóng ngắt nguồn điện cho thiết bị
một cách tự động tùy theo ý muốn của người sử dụng Đây chính là nội dung của đề
tài nghiên cứu: “ Bật tắt đèn tự động dung vi điều khiển 8051” em sẽ trình bày dưới
đây
Để làm được mạch này cần có 2 bộ phận chính:
Bộ xử lý dùng IC AT89C51
Bộ hiển thị gồm có 2 led 7 đoạn và 1 led đơn
Ngoài ra còn dùng các phím nhấn để thay đổi thời gian hẹn giờ
Trang 7đèn sẽ sáng, tắt bằng cách nhấn vào phím nhấn và thời gian sẽ hiển thị trên led 7
đoạn, khi muốn thay đổi thời gian hẹn giờ bạn chỉ cần nhấn các phím nhấn tương
ứng Thời gian đếm lên thì đèn sáng, ngược lại đếm lùi thời gian thì đèn tắt (đèn sử
dụng trong mạch là led đơn)
Mục đích của đề tài là:
Mạch điện không quá phức tạp và dễ sử dụng
Thời gian hiển thị rõ ràng
Led đơn hoạt động sáng, tắt phải chính xác
4 Giới hạn đề tài:
Do chi phí và thời gian có hạn nên sản phẩm chỉ dừng lại ở mức đáp ứng yêu
cầu của một luận văn tốt nghiệp Do đó có những giới hạn sau:
Cài đặt trước thời gian hẹn giờ, gồm 6 phím nhấn tương ứng với 6 khoảng
thời gian khác nhau
Khoảng thời gian cài đặt ngắn ( từ 0 đến 30 giây)
Mạch chưa được giao tiếp với máy tính để diều khiển linh hoạt hơn
Trang 8PHẦN 1: CƠ SỞ LÝ THUYẾT CHƯƠNG 1: GIỚI THIỆU VI ĐIỀU KHIỂN AT89C51 1.1 GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MCS-51 (AT89C51):
MCS-51 là họ IC (integrated circuit) vì điều khiển (Microcontroller) do hãng
Intel sản xuất Các IC tiêu biểu cho họ MSC-51 là: 8051, 8031, 89C51, 892051,
8751, Việc xử lý trên Byte và các toán số học ở cấu trúc dữ liệu được thực hiện
bằng nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội Tập lệnh cung cấp một
bảng tiện dụng của những lệnh số học 8 Bit gồm cả lệnh cộng, trừ, nhân và lệnh chia
Nó cung cấp những hỗ trợ mở rộng trên Chip dùng cho những biến một Bit như là
kiểu dữ liệu riêng biệt cho phép quản lý và kiểm tr a Bit trực tiếp trong điều khiển
AT89C51 là một vi điều khiển 8 Bit, chế tạo theo công nghệ CMOS chất
lượng cao, với 4 KB EEPROM (Flash Programmable and erasable read only
memory) Thiết bị này được chế tạo bằng cách sử dụng bộ nhớ không bốc hơi mật độ
cao của ATMEL và tương thích với chuẩn công nghiệp MCS – 51 về tập lệnh và các
chân ra ATMEL AT89C51 là một vi điều khiển mạnh (có công suất lớn) mà nó cung
cấp một sự linh động cao và giải pháp về giá cả đối với nhiều ứng dụng vì điều khiển
Các đặc điểm của 89C51 được tóm tắt như sau:
* 4 KB bộ nhớ có thể lập trình lại nhanh
* Tần số hoạt động từ: 0Hz đến 24 MHz
* 2 bộ Timer/counter 16 Bit
* 128 Byte RAM nội
* 4 Port xuất/ nhập I/O 8 bit
* Giao tiếp nối tiếp
* 64 KB vùng nhớ mã ngoài
* 64 KB vùng nhớ dữ liệu ngoài
* Xử lý Boolean (hoạt động trên bit đơn)
* 210 vị trí nhớ có thể định vị bit
Trang 9Hình1.1: Vi điều khiển AT89C51
Trang 10
1.2 KHẢO SÁT SƠ ĐỒ CHÂN AT89C51, CHỨC NĂNG TỪNG CHÂN:
1.2.1 Sơ đồ chân AT89C51:
Hình 1.2.: Sơ đồ chân của vi điều khiển AT89C51
1.2.2 Chức năng các chân của AT89C51:
Vi điều khiển 89C51 có tất cả 40 chân, trong đó có 32 chân có công dụng
xuất/nhập tuy nhiên 24 trong số 32 chân có tác dụng kép (có nghĩa 1 chân có 2 chức
năng), mỗi đường có thể hoạt động như đường xuất nhập hoặc như đường điều khiển
hoặc hoạt động như một đường địa chỉ/ dữ liệu của bus địa chỉ/ dữ liệu đa hợp
1.2.2.1 Các Port:
Port 0(P0.0-P0.7): là port có các chân từ 32 – 39 của 89C51
Có 2 chức năng:
Trang 11 Port 1(P1.0-P1.7): có số chân từ 1 – 8 Có chức năng xuất nhập dữ liệu nên
sử dụng hoặc không sử dụng bộ nhớ ngoài
Port 2(P2.0-P2.7): có số chân từ 21 – 28
Có 2 chức năng: Port xuất nhập dữ liệu không sử dụng bộ nhớ ngoài và bus
địa chỉ cao (A8-A15) có sử dụng bộ nhớ ngoài
Port 3(P3.0-P3.7): có số chân từ 10-17 Các chân của port này có nhiều
chức năng, khi không hoạt động xuất/nhậ các chân của port 3 có nhiều chức năng
riêng
Các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của 89C51 như ở
bảng sau:
Bit Tên Địa chỉ bit Chức năng
Bảng 1.1: Chức năng các chân của Port 3
1.2.2.2 Các ngõ tín hiệu điều khiển:
Ngõ tín hiệu PSEN (Program store enable):
- Cho phép đọc bộ nhớ chương trình là tín hiệu ngõ ra ở chân 29
- Là tín hiệu cho phép truy xuất (đọc) chương trình ROM ngoài
- Là mức xuất tích cực ở mức thấp PSEN=0 thì trong thời gian CPU tìm và nạp
lệnh từ ROM ngoài, PSEN=1 thì CPU sử dụng ROM trong
Ngõ tín hiệu điều khiển ALE (Address Latch Enable):
- Khi 89C51 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và
bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ra ALE ở chân thứ
Trang 1230 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết
nối chúng với IC chốt
- Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai
trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động
Ngõ tín hiệu EA\ (External Acces):
- Tín hiệu vào /EA ở chân 31 thường được mắc lên nguồn Nếu ở mức 1, vi
điều khiển 89C51 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp 8
Kbyte Nếu ở mức 0, vi điều khiển 89C51 sẽ thi hành chương trình từ bộ nhớ mở
rộng
- Chân /EA được lấy làm chân cấp nguồn 21V khi lập trình cho EPROM trong
vi điều khiển 89C51
Ngõ tín hiệu RST (Reset): Ngõ vào RST ở chân 9 là ngõ vào Reset của
89C51 Khi ngõ vào tín hiệu này đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi
bên trong được nạp những giá trị thích hợp để khởi động hệ thống Khi cấp điện mạch
tự động Reset
- Là tín hiệu cho phép thiết lập trạng thái ban đầu cho hệ thống
- Là tín hiệu nhập tích cực mức cao
- RST=0 chip 89C51 hoạt động bình thường, RST=1 chip 89C51 được thiết lập
lại trạng thái ban đầu
Các ngõ vào bộ giao động X1, X2: Ở chân số 18,19, bộ dao động được tích
hợp bên trong 89C51, khi sử dụng 89C51 người thiết kế chỉ cần kết nối thêm thạch
anh và các tụ như hình vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho 89C51 là
12 Mhz
- Dùng để nối thạch anh với mạch dao động tạo xung clock bên ngoài cung cấp
xung clock cho chip hoạt động
- XTAL1: ngõ vào mạch tạo xung clock trong chip
- XTAL2: ngõ ra mạch tạo xung clock trong chip
Trang 13Hình 1.3: Mạch tạo dao động bằng thạch anh
- VCC=+5V± 10%
- GND=0V
1.3 CẤU TRÚC BÊN TRONG VI ĐIỀU KHIỂN:
1.3.1 Tổ chức bộ nhớ:
1.3.1.1 Sơ đồ cấu trúc bên trong của AT89C51:
Hình 1.4: Sơ đồ cấu trúc bên trong của AT89C51
Trang 14- CPU: Đơn vị điều khiển trung tâm
- Ram 128 byte
- TIMER 2,1,0 : Bộ định thời 2,1,0
- CPU: Đơn vị điều khiển trung tâm
- PORT: Các port xuất/nhập
- Address/data :Địa chỉ/dữ liệu
1.3.1.2 Tổ chức bộ nhớ của AT89C51:
Bộ nhớ trong 89C51 bao gồm ROM và RAM RAM trong 89C51 bao gồm
nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hoá từng bit, các bank
thanh ghi và các thanh ghi đặc biệt
89C51 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho
chương trình và dữ liệu Chương trình và dữ liệu có thể chứa bên trong 89C51 nhưng
89C51 vẫn có thể kết nối với 64 KB bộ nhớ chương trình và 64 KB dữ liệu
Các đặc tính cần chú ý là: Các thanh ghi và các port xuất nhập đã được định
vị(xác định) trong bộ nhớ và có thể truy xuất trực tiếp giống như cơ sở địa chỉ bộ
nhớ khác Ngăn xếp bên trong Ram nội nhỏ hơn so với Ram ngoại
RAM bên trong 89C51 được phân chia như sau:
- Các bank thanh ghi có địa chỉ từ 00H đến 1FH
- RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH
- RAM đa dụng từ 30H đến 7FH
- Các thanh ghi chức năng đặc biệt từ 80H đến FFH
Trang 15Bảng 1.2: Tóm Tắt Các Vị Trí Nhớ Của AT89C51
1.3.2 Các thanh ghi có chức năng đặc biệt:
Các thanh ghi nội của 89C51 được cấu hình thành một phần của RAM trên
chip, do vậy mỗi một thanh ghi cũng có một địa chỉ Điều này hợp lý vì chip này có
rất nhiều thanh ghi Cũng như các thanh ghi từ R0 đến R7, ta có 21 thanh ghi có chức
năng đặc biệt SFR chiếm phần trên của RAM nội từ địa chỉ 80H đến FFH
Thanh ghi trạng thái chương trình (PSW: Program Status Word):
Trang 16Từ trạng thái chương trình ở địa chỉ D0H được tóm tắt như sau:
BIT SYMBOL ADDRESS DESCRIPTION
- Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi A cho các phép toán
nhân chia Lệnh MUL AB sẽ nhân 2 số 8 bit trong hai thanh ghi A và B, và kết quả
16 bit chứa trong B (byte cao) và A (byte thấp) Lệnh DIV AB là lấy A chia B, kết
quả nguyên đặt vào A, số dư đặt vào B
- Thanh ghi B có thể được dùng như một thanh ghi đệm trung gian đa mục
đích
Con trỏ SP (Stack Pointer):
- Con trỏ ngăn xếp là một thanh ghi 8 bit ở địa 81H nó chứa địa chỉ của byte
Trang 17trong RAM nội và giới hạn các địa chỉ có thể truy xuất bằng địa chỉ gián tiếp, chúng
là 128 byte đầu của 89C51
Con trỏ DPTR (Data Pointer):
- Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài là một thanh ghi
16 bit ở địa chỉ 82H (DPL: byte thấp) và 83H (DPL: byte cao)
Các thanh ghi Port (Port Register):
Các Port của 89C51 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa chỉ 90H, Port 2
ở địa chỉ A0H, và Port 3 ở địa chỉ B0H Tất cả các Port này đều có thể truy xuất từng
bit nên rất thuận tiện trong khả năng giao tiếp
Các thanh ghi Timer (Timer Register):
- 89C51 có chứa hai bộ định thời/bộ đếm 16 bit Timer 0 (TL0: byte thấp và
TH0: byte cao) Timer 1 (TL1: byte thấp và TH1: byte cao) Việc khởi động timer do
thanh ghi TMOD ở địa chỉ 89H và thanh ghi TCON ở địa chỉ 88H
Các thanh ghi Port nối tiếp (Serial Port Register):
- 89C51 chứa một Port nối tiếp cho việc trao đổi thông tin với các thiết bị nối
tiếp như máy tính, modem hoặc giao tiếp nối tiếp với các IC khác Một thanh ghi đệm
dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ dữ cả hai dữ liệu truyền và dữ liệu nhập Khi
truyền dữ liệu ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF Các mode vận khác
nhau được lập trình qua thanh ghi điều khiển Port nối tiếp (SCON) được địa chỉ hoá
từng bit ở địa chỉ 98H
Các thanh ghi ngắt (Interrupt Register):
- 89C51 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên Các ngắt bị cấm sau khi bị
Reset hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt (IE) ở địa
chỉ A8H Cả hai được địa chỉ hoá từng bit
Thanh ghi điều khiển nguồn PCON (Power Control Register):
- Thanh ghi PCON không có bit định vị Nó ở địa chỉ 87H chứa nhiều bit điều
khiển Thanh ghi PCON được tóm tắt như sau:
+ Bit 7 (SMOD): Bit có tốc độ Baud tăng gấp đôi khi set
+ Bit 6, 5, 4: Không có địa chỉ
Trang 18+ Bit 2 (GF0): Bit cờ đa năng 2
+ Bit 1 (PD): Set để khởi động mode Power Down và thoát khi reset
+ Bit 0 (IDL): Set để khởi động mode Idle và thoát khi ngắt hoặc reset
1.3.3 Hoạt động Reset:
89C51 có 2 cách thực hiện Reset: Reset tự động hoặc Reset bằng tay
Reset tự động:
- Mạch Autoreset thường được dùng để xác định trạng thái đầu tiên của mạch
ngay khi vừa cấp nguồn để mạch luôn luôn hoạt động đúng như yêu cầu thiết kế
- Khi chưa cấp nguồn điện áp trên tụ bằng 0, nên khi vừa cấp điện tụ nạp từ 0V-VCC,
do đó khi cấp điện thì điện áp đưa vào chân Reset là VCC nên mạch tự động hệ thống
Reset bằng tay: Thường trong hệ thống rất cần động tác Reset khi mạch
đang hoạt động, do đó chỉ có mạch Reset khi vừa bật máy là chưa đủ Việc thiết kế
mạch Reset bằng tay rất đơn giản chỉ việc thêm vào mạch Reset tự động một SW và
điện trở như hình Nguyên lý mạch giống như mạch Reset tự động
Trạng thái của tất cả các thanh ghi trong 89C51 sau khi reset hệ thống được
00H 00H
Trang 191.3.4 Cổng nối tiếp:
89C51 có một cổng nối tiếp với 4 mode hoạt động Chức năng chủ yếu là
thực hiện chuyển đổi song song sang nối tiếp với dữ liệu phát và chuyển đổi nối tiếp
sang song song với dữ liệu thu
Port nối tiếp cho hoạt động song công (full duplex: thu và phát đồng thời) và
đệm thu (receiver buffering) cho phép một ký tự sẽ được thu và được giữ trong khi ký
tự thứ hai được nhận Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ hai được thu
đầy đủ thì dữ liệu sẽ không bị mất
Hai thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất đến Port nối
tiếp là: SBUF, SCON Bộ đệm Port nối tiếp (SBUF) ở địa chỉ 99H nhận dữ liệu để
thu hoặc phát Thanh ghi điều khiển Port nối tiếp (SCON) ở địa chỉ 98H là thanh ghi
có địa chỉ bit chứa các bit trạng thái và các bit điều khiển Các bit điều khiển đặt chế
độ hoạt động cho Port nối tiếp, và các bit trạng thái báo cáo kết thúc việc phát hoặc
thu ký tự Các bit trạng thái có thể được kiểm tra bằng phần mềm hoặc có thể lập
trình để tạo ngắt
1.3.5 Các lệnh trong AT89C51:
- Các lệnh số học: ADD, ADDC, SUBB, INC, DEC, MUL, DIV, DA
- Các lệnh logic: ANL, ORL, XRL, CLR, CPR, RL, RLC, RR, RRC, SWAP
- Các lệnh chuyển dữ liệu: MOV, MOVC, MOVX, PUSH, POP, XCH, XCHD
- Các lệnh thao tác trên bit: CLR, SETB, CPL, ANL, ORL, MOV, JC, JNC, JB,
JNB, JBC
- Các lệnh rẽ nhánh: ACALL, LCALL, RET, RETI, AJMP, LJMP, SJMP, JMP,
JZ, JNZ, JC, CJNE, DJNZ, NOP
Một số ghi chú khi thao tác các lệnh:
- Rn: định địa chỉ thanh ghi sử dụng R0 – R7
- Direct: địa chỉ 8 bit trong RAM nội (từ 00H - FFH)
- @Ri: định địa chỉ gián tiếp sử dụng thanh ghi R0 hoặc R1
- Sourse: toán hạng nguồn, có thể là Rn hoặc @Ri
- D est: toán hạng đích, có thwr là Rn hoặc direct hoặc @Ri
Trang 20- # data16: hằng số 16 bit
- Bit: địa chỉ trực tiếp (8 bit) của một bit
- Rel: offset 8 bit có dấu
- Addr11: địa chỉ 11 bit trong trang hiện thành
- Addr16: địa chỉ 16 bit
1.3.6 Hoạt động ngắt của 89C51:
Ngắt (Interrupt): là sự xảy ra một điều kiện,một sự kiện làm cho gây ra treo
chương trình hiện hành bị tạm ngưng trong khi điều kiện phục vụ bởi một chương trình
khác Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng của bộ
vi điều khiển Các ngắt cho phép hệ thống đáp ứng một cách không đồng bộ với một sự
kiện và xử lý sự kiện trong một chương trình khác đang được thực hiện
Tổ chức ngắt của 89C51:
- Có 5 nguyên nhân tạo ra ngắt ở 89C51 với 2 mức ưu tiên: hai nguyên nhân
ngắt do bên ngoài , hai ngắt do bộ định thời từ và một ngắt do Port nối tiếp Khi thiết
lập trạng thái ban đầu cho hệ thống, tất cả các ngắt đều bị cấm và sau đó chúng được
cho phép bằng phần mềm
- Khi xảy ra hai hay nhiều ngắt đồng thời hoặc xảy ra một ngắt trong khi một
ngắt đang được phục vụ, ta có hai sơ đồ xử lý các ngắt : sơ đồ chuỗi vòng và sơ đồ
hai mức ưu tiên Sơ đồ chuỗi vòng là sơ đồ cố định còn sơ đồ ưu tiên ngắt được lập
trình bởi người sử dụng
Thanh ghi cho phép ngắt:
BIT SYMBOL BIT ADDRESS DESCRIPTION(1: ENABLE, 0:
DISABLE)
Trang 21 Thanh ghi ngắt ưu tiên:
BIT SYMBOL BIT ADDRESS
DESCRIPTION (1: ENABLE, 0: DISABLE)
Bảng 1.6: Thanh ghi ngắt ưu tiên
Các cờ ngắt:
Ngắt Cờ Thanh ghi SFR và vị trí bit
Bảng 1.8: Các vector ngắt
Trang 22CHƯƠNG 2: CÁC LINH KIỆN TRONG MẠCH
2.1 LED 7 ĐOẠN:
Hình 2.1: Led 7 đoạn
2.1.1 Các khái niệm cơ bản:
Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình và có
thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của led 7
đoạn
Hình 2.2: Cấu trúc và chân ra của 1 dạng led 7 đoạn
8 Led đơn trên Led 7 đoạn có Anode (cực +) hoặc Cathode (cực -) được nối
chung với nhau vào một điểm, được đưa chân ra ngoài để kết nối với mạch điện 8