Bộ vi xử lý này chỉ có chứa trên một chíp để xử lý các chương trình còn các bộ phận phụ trợ khác thì nằm ở bên ngoài được nối vào bộ vi xử lý.. Đặc điểm: 4 Port I/O 8 bit 2 bộ đếm/ định
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM
Trang 2LỜI CẢM ƠN
Đầu tiên chúng em xin chân thành cảm ơn Khoa Vật Lý, trường Đại Học Sư
Phạm Đà Nẵng đã tạo điều kiện cho em thực hiện đề tài luận văn tốt nghiệp này
Tiếp đến chúng em xin chân thành cảm ơn thầy Lê Xứng đã tận tình hướng
dẫn, chỉ bảo chúng em trong suốt thời gian thực hiện đề tài
Chúng em xin cảm ơn quý Thầy Cô trong Khoa Vật Lý đã tận tình giảng
dạy, trang bị cho chúng em những kiến thức quý báu trong bốn năm học vừa qua
Xin chân thành cảm ơn các anh chị khóa trên và bạn bè đã ủng hộ, giúp đỡ
và động viên chúng em trong quãng thời gian học tập và nghiên cứu
Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép
nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Chúng em xin kính mong
nhận được sự thông cảm và tận tình chỉ bảo của quý Thầy Cô và các bạn
Sinh viên thực hiện Nguyễn Thị Kim Thoa Trịnh Hải Thanh Hoa Tháng 05/2012
Trang 3MỤC LỤC
PHẦN A: MỞ ĐẦU 4
1 Lý do chọn đề tài 4
2 Mục đích 4
3 Phạm vi và đối tượng của đề tài 4
3.1 Phạm vi 4
3.2 Đối tượng 4
4 Nhiệm vụ 4
5 Phương pháp nghiên cứu lý thuyết 5
6 Những đóng góp của luận văn 5
7 Cấu trúc luận văn 5
PHẦN B: NỘI DUNG 6
CHƯƠNG I: TỔNG QUAN LÝ THUYẾT VỀ VI ĐIỀU KHIỂN 8051 1.1 Định nghĩa vi điều khiển 6
1.2 Lịch sử phát triển của các bộ vi điều khiển 6
1.3 Giới thiệu sơ lược IC 89C51 7
1.3.1 Sơ đồ khối cấu trúc của 89C51 7
1.3.2 Đặc điểm 7
1.4 Sơ đồ và chức năng từng chân của 89C51 7
1.4.1 Sơ đồ 8
1.4.2 Chức năng từng chân của 89C51 8
1.5.Các thanh ghi có chức năng đặc biệt 10
1.5.1.Thanh ghi tổng A(Accumulator) 10
1.5.2 Thanh ghi trạng thái chương trình PSW (Program Status Word) 10
Trang 41.5.4 Con trỏ số liệu DPTR 10
1.5.5 Các thanh ghi port xuất nhập 10
1.5.6 Các thanh ghi timer 10
1.5.7 Các thanh ghi ngắt 10
CHƯƠNG II: CẤU TRÚC PHẦN CỨNG CỦA MẠCH ĐỒNG HỒ ĐIỆN TỬ 2.1 Các linh kiện sử dụng 13
2.2 Lựa chọn và tính toán linh kiện 13
2.3 Giới thiệu sơ lược về IC 7447 14
2.4.Tìm hiểu về led 7 đoạn 16
2.5 Sơ đồ nguyên lý và nguyên lý hoạt động 17
2.5.1 Khối vi điều khiển và khối nút nhấn 17
2.5.1.1 Sơ đồ nguyên lý 17
2.5.1.2 Nguyên tắc hoạt động 17
2.5.2 Khối giải mã và khối hiển thị 17
2.5.2.1 Sơ đồ nguyên lý 17
2.5.2.2.Nguyên lý hoạt động 17
2.5.3 Khối loa và khối nguồn 17
2.5.3.1 Sơ đồ nguyên lý 17
2.5.3.2.Nguyên tắc hoạt động 17
CHƯƠNG III: PHẦN MỀM ĐIỀU KHIỂN 3.1 Lưu đồ thuật toán 21
3.2 Chương trình 27
PHẦN C: KẾT LUẬN……… 35
Phụ lục 36
Tài liệu tham khảo 38
Trang 5PHẦN A: MỞ ĐẦU
1 Lý do chọn đề tài:
Ngày nay cùng với sự phát triển vượt bậc của khoa học kỹ thuật, công nghệ
điện tử cũng phát triển rộng rãi, tạo ra hàng loạt những thiết bị các đặc điểm nổi bật
như độ chính xác cao, gọn nhẹ và tiện nghi cho người sử dụng
Một trong những ứng dụng rất quan trọng trong công nghệ điện tử là tự động
hóa làm việc theo yêu cầu, thời gian định trước của con người đã góp phần nâng cao
chất lượng cuộc sống của con người Xuất phát từ những ứng dụng trên, chúng em
đã thiết kế và thi công mạch “Đồng hồ điện tử dùng vi điều khiển 8051”
2 Mục đích:
Nhằm phát huy những thành quả ứng dụng của vi điều khiển, tạo ra những
sản phẩm, thiết bị tiên tiến hơn và đạt hiệu quả cao hơn
Mặc khác, đề tài này cũng có thể làm tài liệu tham khảo cho những sinh viên
khóa sau Giúp họ hiểu rõ hơn về ứng dụng vi điều khiển
Ngoài ra, đây còn là cơ hội để tự kiểm tra lại kiến thức đã học, đồng thời
phát huy được khả năng sáng tạo của từng cá nhân
3 Phạm vi và đối tượng của đề tài:
3.1 Phạm vi:
Đề tài chỉ nghiên cứu và thi công mạch đồng hồ điện tử có chức năng hiển
thị giờ, phút, giây và hẹn giờ, chỉnh giờ dùng vi điều khiển 8051
3.2 Đối tượng:
Các tài liệu về linh kiện, IC
Các tài liệu về thi công, lắp ráp mạch
4 Nhiệm vụ:
Nghiên cứu cơ sở lý thuyết về thiết kế mạch đồng hồ điện tử dùng vi điều
khiển 8051
Trang 6Lắp ráp mạch đồng hồ điện tử hoạt động tốt và có các chức năng theo đúng
mục đích đề ra
5 Phương pháp nghiên cứu lý thuyết:
Nghiên cứu các tài liệu về thiết bị và linh kiện Điện – Điện Tử
Nghiên cứu lý luận của việc thiết kế và sử dụng thiết bị công nghiệp
6 Những đóng góp của luận văn:
Đề tài luận văn này không những góp phần củng cố kiến thức về vi điều
khiển cho sinh viên mà còn phát huy khả năng sáng tạo trong thực tế lắp ráp mạch
7 Cấu trúc luận văn:
Chương I: Tổng quan lý thuyết về vi điều khiển
Chương II: Cấu trúc phần cứng của mạch đồng hồ điện tử
Trang 7PHẦN B: NỘI DUNG CHƯƠNG I: TỔNG QUAN LÝ THUYẾT VỀ VI
ĐIỀU KHIỂN 8051
1.1 Định nghĩa vi điều khiển:
Bộ vi điều khiển viết tắt là micro- controller, là mạch tích hợp trên một chíp
có thể lập trình được, dùng để điều khiển hoạt động của một hệ thống Theo các tập
lệnh của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý
thông tin, đo thời gian và tiến hành đóng mở cơ cấu nào đó
1.2 Lịch sử phát triển của các bộ vi điều khiển:
Bộ vi điều khiển được phát triển từ bộ vi xử lý, từ những năm 70 do sự phát
triển và hoàn thiện về công nghệ vi điện tử dựa trên kỹ thuật MOS (metal- oxide-
semiconductor), mức độ tích hợp của các linh kiện bán dẫn trong chíp ngày càng
cao
Năm 1971, xuất hiện bộ vi xử lý 4 bit loại TMS1000 do công ty Texas sản
xuất Bộ vi xử lý này chỉ có chứa trên một chíp để xử lý các chương trình còn các
bộ phận phụ trợ khác thì nằm ở bên ngoài được nối vào bộ vi xử lý
Năm 1976, công ty INTEL cho ra đời bộ vi điều khiển đơn chíp đầu tiên trên
thế giới với tên gọi 8048 Các công ty khác cũng lần lượt cho ra đời bộ vi diều
khiển tương tự và hình thành họ vi điều khiển MCS-48
Đến năm 1980, công ty INTEL cho ra đời thế hệ thứ 2 của bộ vi điều khiển
đơn chíp với tên gọi 8051 Và sau đó hàng loạt các vi điều khiển khác cùng loại với
8051 ra đời, hình thành họ vi điều khiển MCS-51
Đến nay họ vi điều khiển 8 bit MCS-51 đã có đến 250 thành viên và hầu hết
đều là các công ty hàng đầu thế giới như: INTEL, AMD, SIEMENS, PHILIPS,
DALLAS, OKI…
Ngoài ra, các công ty khác cũng có các họ vi điều khiển riêng
Trang 8
1.3 Giới thiệu sơ lược IC 89C51:
1.3.1 Sơ đồ khối cấu trúc của 89C51 :
Hình 1.1 Sơ đồ khối cấu trúc 1.3.2 Đặc điểm:
4 Port I/O 8 bit
2 bộ đếm/ định thời 16 bit
Giao tiếp nối tiếp
64k byte không gian bộ nhớ chương trình mở rộng
64k byte không gian bộ nhớ dữ liệu mở rộng
Một bộ xử lý Boolean (hoạt động trên bit đơn)
210 bit được địa chỉ hóa
Bộ nhân/ chia 4
Trang 9
1.4 Sơ đồ và chức năng từng chân của 89C51:
1.4.1 Sơ đồ:
Hình 1.2 Sơ đồ chân IC 89C51 1.4.2 Chức năng từng chân của 89C51:
Port0: Từ chân 32 đến chân 39 (p0.0 - p0.7) Port 0 có 2 chức năng: Trong
các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO,
đối với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ
liệu
Port 1: Từ chân 1 đến chân 8 (P1.0 – P1.7) Port 1 là port IO cho phép giao
tiếp với thiết bị ngoài nếu cần
Port 2: Từ chân 21 đến chân 28 (P2.0 – P2.7) Port 2 là một port có tác dụng
kép dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết
bị dùng bộ nhớ mở rộng
Port 3: Từ chân 10 đến chân 17 (P3.0 – P3.7) Port 3 là port có tác dụng kép
Các chân port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến các
đặc tính đặc biệt của 8051 như ở bảng sau:
Trang 10BIT TÊN CHỨC NĂNG CHUYỂN ĐỔI
INT1\
T0 T1 WR\
RD\
Dữ liệu nhận cho port nối tiếp
Dữ liệu phát cho port nối tiếp
Ngắt bên ngoài 0
Ngắt bên ngoài 1
Ngõ vào của timer/ couter 0
Ngõ vào của timer/ couter 1
Xung ghi bộ nhớ dữ liệu ngoài
Xung đọc bộ nhớ dữ liệu ngoài
PSEN (Program store enable):
PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình mở
rộng và thường được nối đến chân OE\ của Eprom cho phép đọc các byte mã lệnh
PSEN ở mức thấp trong thời gian 8051 lấy lệnh Các mã lệnh của chương
trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong
8051 để giải mã lệnh Khi 8051 thi hành chương trình trong ROM nội PSEN ở mức
cao
ALE (Address Latch Enable):
Khi 8051truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và dữ
liệu do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ra ALE ở chân thứ 30
dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối
chúng với IC chốt
Tín hiệu ở 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
EA\ (External Access): Tín hiệu vào EA\ ở chân 31 thường được mắc lên
mức 1 hoặc mức 0 Nếu ở mức 1, 8051 thi hành chương trình từ ROM nội Nếu ở
mức 0, 8051 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 chương trình cho Eprom trong 8051
RST (Reset): Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 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
Trang 11Khi cấp điện mạch phải tự động reset
Các ngõ vào bộ dao động X1,X2:
Bộ tạo dao động được tích bên trong 8051 Khi sử dụng 8051, người ta chỉ
cần nối thêm tụ thạch anh và các tụ Tần số tụ thạch anh thường là 12Mh
Các chân nguồn: 89C51 sử dụng nguồn đơn +5V Vcc được nối vào chân 40
và Vss(GND) được nối vào chân 20
1.5.Các thanh ghi có chức năng đặc biệt:
1.5.1.Thanh ghi tổng A(Accumulator):
Thanh ghi tích lũy là thanh ghi sử dụng nhiều nhất trong IC89C51, được ký
hiệu trong câu lệnh là A Ngoài ra trong các lệnh xử lý bít, thanh ghi tích lũy được
ký hiệu là ACC
Thanh ghi tích lũy có thể truy xuất trực tiếp thông qua địa chỉ E0h hay truy
xuất từng bít thông qua địa chỉ E0h – E7h
1.5.2 Thanh ghi trạng thái chương trình PSW (Program Status
Word):
1.5.3 Con trỏ ngăn xếp stack pointer( SP):
Con trỏ ngăn xếp SP là một thanh ghi 8 bit ở địa chỉ 18 H Nó chứa địa chỉ
của byte dữ liệu hiện hành trên đỉnh của ngăn xếp
Trang 12Các lệnh trên ngăn xếp bao gồm các lệnh cất dữ liệu vào ngăn xếp và lấy dữ
liệu ra khỏi ngăn xếp Lênh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi
dữ liệu và lệnh lấy dữ liệu ra khỏi ngăn xếp sẽ làm giảm SP Ngăn xếp của 8051
được giữ trong Ram nội và giới hạn các địa chỉ có thể truy xuất bằng địa chỉ gián
tiếp, chúng là 128 byte đầu của 8051
Để khởi động SP với ngăn xếp bắt đầu tại địa chỉ 60H, các lệnh sau đây được
dùng:
MOV SP,#5FH
Khi Reset 8051, SP sẽ mang giá trị mặc định là 07H và dữ liệu đầu tiên sẽ
được cất vào ô nhớ ngăn xếp có địa chỉ là 08H Ngăn xếp được truy xuất trực tiếp
bằng các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu hoặc truy xuất
ngầm bằng lệnh gọi chương trình con ACALL, LCALL và các lệnh trở về (RET,
RETI) để lưu trữ giá trị của bộ đếm chương trình khi bắt đầu thực hiện chương trình
con và lấy lại khi kết thúc chương trình con
1.5.4 Con trỏ số liệu DPTR:
Con trỏ dữ liệu DPTR được dùng để truy xuất bộ nhớ ngoài là một thanh ghi
16 bit ở địa chỉ 82H (DPL: byte thấp) và 83H (DPH: byte cao) 3 lệnh sau sẽ ghi
55H vào ram ngoài ở địa chỉ 1000H:
MOV A,#55H
MOV DPTR,#1000H
MOVX @DPTR,A
1.5.5 Các thanh ghi port xuất nhập :
Các port của 8051 bao gồm port 0 ở địa chỉ 80H, port 1 ở địa chỉ 90H, port 2
ở địa cỉ 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
1.5.6 Các thanh ghi timer:
8051 có chứa 2 bộ định thời/ đếm 16 bit được dùng cho việc định thời hoặc
đếm sự kiện Timer 0 ở địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: byte cao)
Timer 1 ở địa chỉ 8BH (TL1: byte thấp) và 8DH (TH1: byte cao) Việc khởi động
Trang 13timer được Set bởi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiển
timer (TCON) ở địa chỉ 88H, chỉ có TCON được địa chỉ hóa từng bit
1.5.7 Các thanh ghi ngắt:
Có 2 thanh ghi liên quan đến ngắt là IE (interrupt enable) và IP (interrupt
priority)
Thanh ghi cho phép ngắt IE được thể hiện trong bảng sau:
ES ET1 EX1 ET0 EX0
Cho phép/ cấm ngắt toàn cục
Cho phép/ cấm ngắt do cổng nối tiếp Cho phép/ cấm ngắt do timer 1 Cho phép/ cấm ngắt ngoài 1 Cho phép/ cấm ngắt do timer 0 Cho phép/ cấm ngắt ngoài 0
Thanh ghi ngắt ưu tiên IP thể hiện trong bảng sau:
PS PT1 PX1 PT0 PX0
Cho phép/ cấm ngắt do cổng nối tiếp Cho phép/ cấm ngắt do timer 1 Cho phép/ cấm ngắt ngoài 1 Cho phép/ cấm ngắt do timer 0 Cho phép/ cấm ngắt ngoài 0
Trang 14CHƯƠNG II: CẤU TRÚC PHẦN CỨNG CỦA
MẠCH ĐỒNG HỒ ĐIỆN TỬ
2.1 Các linh kiện sử dụng:
- IC 89C51 - Led điểm siêu sáng
- IC giải mã 7447 - Đế cắm IC
- Led 7 đoạn - Lược đực, lược cái
- Tụ điện - Bus 2 dây
- Chọn IC giải mã led 7 đoạn 7447
- Vì dùng IC 7447 để giải mã led 7 đoạn nên ta dùng led 7 đoạn Anode
- Tính trở cho led 7 đoạn:
10mA Do vậy điện trở cần dùng cho led được tính theo công thức:
Rled=(Vcc-Vled)/Iled=(5V-2V)/10mA=300Ω
Trên thực tế ta chọn điện trở của mỗi led của led 7 đoạn là 330Ω
- Tính điện trở báo hiệu cho led nguồn và led nút nhấn:
Tương tự cách tính trên ta cũng chọn được R=330Ω
Trang 152.3 Giới thiệu sơ lược về IC 7447:
Một trong những IC phổ biến trong điện tử số Có rất nhiều kí hiệu khác nhau
tùy thuộc vào hãng và khả năng đáp ứng như: 74HC47,74HCT47, 74LS47
Ứng dụng: Đây là IC giải mã dành riêng cho LED 7 đoạn Anode chung
Hình 2.1 Sơ đồ nguyên lý
Sơ đồ nguyên lý như sơ đồ trên, trong đó A,B,C,D (nối với vi xử lý, mạch số
counter…), BI/RBO,RBI,LT(chân điều khiển của 7447, tuỳ thuộc vào nhu cầu sẽ
nối khác nhau), chân QA, QB, QC, QD, QE, QF, QG nối lần lượt với chân
a,b,c,d,e,f,g của led 7 đoạn anode chung
Mô tả cách thức hoạt động như sau:
Trang 16Port A, B, C, D: đầu vào của 7447, nhận các giá trị theo nhị phân (BCD) từ 0
đến 15, tương ứng với mỗi giá trị nhận được sẽ giải mã ra đầu ra Q tương ứng
Port QA-QG: nối trực tiếp led 7 đoạn với QA=a, QB=b, QC=c, QD=d,
QE=e, QF=f, QG=g, giá trị hiện trên led 7 đoạn phụ thuộc vào giá trị đầu vào port
A, B, C, D theo bảng sau:
BI/RBO,RBI,LT : Chân điều khiển của 7447, để hiểu rõ bạn cần đọc và tìm
hiểu mức bảng logic sau (Để kích hoạt IC 7447 hoạt động chỉ cần nối
BI/RBO=LT=1 ):
Trang 172.4.Tìm hiểu về led 7 đoạ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 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 cực còn lại trên mỗi led đơn được đưa thành 8 chân riêng, cũng được đưa ra ngoài
để kết nối với mạch điện Nếu led 7 đoạn có Anode(cực +) chung, đầu chung này
được nối với +Vcc, các chân còn lại dùng để điều khiển trạng thái sáng tắt của các
led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0 Nếu led 7 đoạn có
Cathode(cực -) chung, đầu chung này được nối xuống Ground (hay Mass), các chân
còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín
hiệu đặt vào các chân này ở mức 1
Hình 2.2 Led 7 đoạn anode chung và cathode chung
Hình 2.3 Sơ đồ vị trí các led
Trang 18Chân nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b để điều khiển
led b Tương tự với các chân và các led còn lại
2.5 Sơ đồ nguyên lý và nguyên lý hoạt động:
2.5.1 Khối vi điều khiển và khối nút nhấn:
2.5.1.1 Sơ đồ nguyên lý:
Hình 2.4 Sơ đồ nguyên lý khối vi điều khiển và khối nút nhấn
Trang 192.5.1.2 Nguyên tắc hoạt động:
Khối vi điều khiển điều khiển hoạt động của toàn mạch các port 0,1,2 đưa tín
hiệu điều khiển vào các IC 7447
Port 0 điều khiển 2 IC 7447 của 2 led 7 đoạn hiển thị phút.(chân 32 đến 39)
Port 1 điều khiển 2 IC 7447 của 2 led 7 đoạn hiển thị giờ.(chân 21 đến 28)
Port 2 điều khiển 2 IC 7447 của 2 led 7 đoạn hiển thị giây.(chân 1 đến 8)
Điện trở thanh có nhiệm vụ là điện trở kéo cho port 0
Chân EA của 89C51 được nối với Vcc
Chân số 9 của 89C51 được nối với khối Reset
Chân 18,19 được nối với thạch anh,tại đây tạo dao động cho IC hoạt động
Chân số 10 được nối ra loa để dùng cho phần hẹn giờ
Khối nút nhấn phục vụ cho chức năng ngắt ngoài INT0 (phần chỉnh giờ),
INT1 (phần hẹn giờ)
K1 được nối vào p3.2(chân 12) làm nhiệm vụ ngắt ngoài 0 Ngắt ngoài 0 làm
nhiệm vụ điều chỉnh lại giờ phút
K2 được nối vào p3.3( chân 13) làm nhiệm vụ ngắt ngoài 1 Ngắt ngoài 1 làm
nhiệm vụ điều chỉnh hẹn giờ,chỉnh hẹn phút
K3 được nối vào p3.4 (chân 14) làm nhiệm vụ tăng chỉ số mà ta chỉ đến
Các led 3, 4, 5 (chân 15,16,17) làm nhiệm vụ báo hiệu cho các nút nhấn, khi
nút nhấn ở mức 0 thì đèn tương ứng sẽ sáng