Báo cáo môn: THIẾT KẾ MẠCH SỬ DỤNG MÁY TÍNH Đề tài: Mạch khóa số điện tử sử dụng vi điều khiển 8051 Báo cáo môn: THIẾT KẾ MẠCH SỬ DỤNG MÁY TÍNH Đề tài: Mạch khóa số điện tử sử dụng vi điều khiển 8051 Báo cáo môn: THIẾT KẾ MẠCH SỬ DỤNG MÁY TÍNH Đề tài: Mạch khóa số điện tử sử dụng vi điều khiển 8051
TỔNG QUAN VỀ HỆ THỐNG KHÓA SỐ ĐIỆN TỬ
Sơ đồ khối và chức năng các khối
Khối xử lý trung tâm
Chức năng của hệ thống là tiếp nhận tín hiệu từ bàn phím, so sánh mã và hiển thị thông tin trên LCD để thông báo cho người dùng Sau đó, hệ thống sẽ gửi các tín hiệu điều khiển đến khối mạch điều khiển động cơ.
Bàn phím được cấu tạo từ các nút, mỗi nút hoạt động như một bộ phận cơ khí để đóng mở Các mã từ bàn phím có thể được tạo ra thông qua hai phương pháp: trực tiếp hoặc bằng cách quét hàng và quét cột.
Bàn phím gồm 16 phím được xắp xếp theo kiểu 4x4( với 4 cột và 4 dòng)
Thực hiện chức năng nhập các dữ liệu đưa đến vi điều khiển và bao gồm thao tác nhập mật khẩu, thay đổi mật khẩu, mở cửa, khóa cửa
Dùng LCD 16x2 có chức năng chính để giao tiếp người dùng với vi điều khiển
KHỐI XỬ LÝ TRUNG TÂM
KHỐI NGUỒN DC KHỐI HIỂN THỊ LCD
BÀN PHÍM MẠCH ĐIỀU KHIỂN ĐỘNG CƠ KHÓA VÀ
- Hiển thị rõ ràng có kèm theo chỉ dẫn.
- Thay đổi nội dung linh hoạt Xử lý lập trình đơn giản hơn LED7 thanh và ma trận điểm.
Nhược điểm: Giá thành đắt
Chức năng: cung cấp nguồn hoạt động cho hệ thống vi điều khiển.
Khối mạch điều khiển động cơ đóng ,mở cửa
Chức năng của hệ thống là đóng và mở cửa dựa trên tín hiệu từ bộ xử lý trung tâm Mạch điều khiển sử dụng mạch cầu H, và động cơ được sử dụng là động cơ DC.
Nguyên lý hoạt động
Nhập mật mã để truy cập khối giao tiếp và hiển thị thông tin cho người dùng Nếu mật mã đúng, khối điều khiển sẽ gửi tín hiệu tới thiết bị chấp hành để thực hiện việc đóng/ngắt hoặc điều khiển mở/đóng Ngược lại, hệ thống sẽ thông báo khi mật khẩu không chính xác.
Ban đầu: o Trên màn hình LCD sẽ hiển thị “ KHOA SO DIEN TU DT3 HVKTMM”,“NHAP MAT KHAU”
Người dùng nhập mật khẩu qua bàn phím, màn hình LCD sẽ hiển thị thông báo Nếu mật khẩu đúng, LCD sẽ hiện thông điệp “CHINH XAC, MO CUA SAU 5S”, còn nếu sai, sẽ hiển thị “NHAP SAI MAT KHAU, K MO DUOC CUA”.
CƠ SỞ LÝ THUYẾT
Tổng quan về vi điều khiển 8051
Hình 2: Sơ đồ khối của bộ vi điều khiển
Kiến trúc của bộ vi xử lý điều khiển 8051
IC vi điều khiển 8051/8031 thuộc họ MCS51 có các đặt điểm sau :
- 4 kbyte ROM (được lập trình bởi nhà sản xuất chỉ có ở 8051)
- Hai bộ định thời 16 bits
- 64KB không gian bộ nhớ chương trình ngoài
- 64 KB không gian bộ nhớ dữ liệu ngoài
- Bộ xử lí luận lí (thao tác trên các bit đơn)
- 210 bit được địa chỉ hóa
Hình 3: Sơ đồ cấu tạo 89C51
Phần chính của vi điều khiển 8051 là bộ xử lí trung tâm (CPU: central processing unit ) bao gồm :
- Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia
- Đơn vị logic học (ALU : Arithmetic Logical Unit )
- Từ trạng thái chương trình (PSW : Prorgam Status Word)
- Ngoài ra còn có bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển thời gian và logic EA\ RST\ PSEN\ ALE\ P0\ P1\ P2\ P3
Bộ nhớ dữ liệu (RAM) của vi điều khiển 8051 hoạt động độc lập với bộ nhớ chương trình, với dung lượng tích hợp tối thiểu là 128 byte Ngoài ra, bộ nhớ dữ liệu có thể được mở rộng bằng bộ nhớ ngoài lên tới 64 kByte, cho phép tăng cường khả năng lưu trữ và xử lý dữ liệu.
Hình 4 Sơ đồ chân của 8051
Vi điều khiển 8051 có 32 trong 40 chân hoạt động như các cổng I/O, trong đó 24 chân đảm nhiệm chức năng kép Những chân này không chỉ là cổng I/O mà còn có thể sử dụng làm đường điều khiển cho Bus địa chỉ hoặc Bus dữ liệu, hoặc hoạt động độc lập để giao tiếp với các thiết bị đơn bit như công tắc, LED và transistor.
- Port 0 (P0.0 – P0.7) có số chân từ 32 – 39.
- Port 0 có hai chức năng:
• Port xuất nhập dữ liệu (P0.0 - P0.7) −> không sử dụng bộ nhớ ngoài.
• Bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7) −> có sử dụng bộ nhớ ngoài.
Lưu ý: Khi Port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử dụng các điện trở kéo lên bên ngoài.
Khi ở chế độ mặc định sau khi reset, các chân Port 0 (P0.0 - P0.7) sẽ được cấu hình lại bằng cách ghi mức logic cao (mức 1) vào tất cả các bit của port trước khi bắt đầu nhập dữ liệu.
- Khi lập trình cho ROM trong chip thì Port 0 đóng vai trò là ngõ vào của dữ liệu (D0 – D7).
❖ Port 1: là một port I/O chuyên dụng trên các chân 1-8 của MC8051.
Chúng được sử dụng với một múc đích duy nhất là giao tiếp với các thiết bị ngoài khi cần thiết.
- Port 2 (P2.0 – P2.7) có số chân từ 21 – 28.
- Port 2 có hai chức năng:
• Port xuất nhập dữ liệu (P2.0 – P2.7) −>không sử dụng bộ nhớ ngoài.
• Bus địa chỉ byte cao (A8 – A15) ,Có sử dụng bộ nhớ ngoài
Ở chế độ mặc định, các chân Port 2 (P2.0 – P2.7) được cấu hình là port xuất dữ liệu Để chuyển đổi các chân này thành port nhập dữ liệu, cần lập trình lại bằng cách ghi mức logic cao (mức 1) vào tất cả các bit của port trước khi bắt đầu nhập dữ liệu.
- Khi lập trình cho ROM trong chip thì Port 2 đóng vai trò là ngõ vào của địa chỉ byte cao (A8 – A11) và các tín hiệu điều khiển.
- Port 3 (P3.0 – P3.7) có số chân từ 10 – 17.
- Port 3 có hai chức năng:
• Port xuất nhập dữ liệu (P3.0 – P3.7) −> không sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt.Các chức năng đặc biệt của Port 3 được ghi trong bảng sau:
P3.0 RXD Dữ liệu nhận cho Port nối tiếp
P3.1 TXD Dữ liệu truyền cho Port nối tiếp
P3.4 TO Ngõ vào của Timer/counter0
P3.5 T1 Ngõ vào của Timer/counter1
P3.6 /WR Xung ghi bộ nhớ dữ liệu ngoài.
P3.7 /RD Xung đọc bộ nhớ dữ liệu ngoài.
❖ Chân (Program Store Enable ) : 8051 có 4 tín hiệu điều khiển.
PSEN là tín hiệu xuất hiện trên chân 29, đóng vai trò là tín hiệu điều khiển cho phép truy cập vào bộ nhớ chương trình mở rộng Tín hiệu này thường được kết nối với chân OE (Output Enable) của EPROM, giúp cho việc đọc các byte mã lệnh của chương trình trở nên khả thi.
PSEN duy trì mức thấp trong toàn bộ quá trình thực hiện lệnh và sẽ ở mức thấp trong thời gian lấy lệnh Các mã nhị phân của chương trình được đọc từ đây.
EPROM qua bus và được chốt vào thanh ghi lệnh của 8051 để giải mã lệnh.
Khi thi hành chương trình trong ROM nội PSEN sẽ ở mức cao.
Chân ALE (Address Latch Enable) là tín hiệu dùng để chốt địa chỉ vào một thanh ghi bên ngoài trong nửa đầu chu kỳ bộ nhớ Trong nửa sau của chu kỳ, các đường Port 0 sẽ được sử dụng để xuất hoặc nhập dữ liệu Tốc độ xung tín hiệu ALE bằng 1/6 lần tần số dao động trên chip; nếu tần số trên 8051 là 12MHz, thì ALE sẽ có tần số 2MHz Chân ALE cũng có thể được sử dụng như ngõ vào cho xung lập trình cho EPROM trong 8051.
❖ Chân (External Access) : Tín hiệu vào EA trên chân 31 thường được nối lên mức cao (+5V) hoặc mức thấp (GND)
- RST (Reset): thiết lập lại, chân số 9.
● Là tín hiệu cho phép đặt lại trạng thái ban đầu chp hệ thống.
● Là tín hiệu nhập, tích cực mức cao RST = 0 => 8051 hoạt động bình thường RST = 1 => 8051 được thiết lập lại trạng thái ban đầu.
(MHz): tần số thạch anh.
- XTAL (Crystal): tinh thể thạch anh, chân số 18-19.
● Dùng để nối với thạch anh hoặc mạch dao động tạo xung clock bên ngoài, cung cấp tín hiệu 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.
Lưu ý: MHz (MHz): tần số danh định.
Tổng quan về LCD
Màn hình tinh thể lỏng (LCD) hoạt động dựa trên cơ sở vật lý của các tinh thể lỏng (Liquid Crystals) Các tinh thể này không giống như tinh thể rắn thông thường, mà chúng có cấu trúc động cho phép điều chỉnh trạng thái Khi bị tác động bởi điện trường, các tinh thể lỏng có khả năng thay đổi từ trạng thái trong suốt sang mờ đục, từ đó kiểm soát được ánh sáng đi qua màn hình.
LCD gồm 2 bề mặt dạng rãnh, giữa 2 bề mặt này là 1 lớp Thạch Anh lỏng
Để tạo ra một điểm tối trên màn hình LCD, ánh sáng từ bên trong sẽ đi qua lớp lọc đơn cực đầu tiên, tiếp theo là lớp Liquid Crystal không phân cực, và cuối cùng là lớp lọc đơn cực thứ hai, khiến ánh sáng bị chặn lại hoàn toàn Ngược lại, để tạo ra một điểm sáng, ánh sáng đi qua lớp Liquid Crystal sẽ bị xoắn 90 độ, cho phép nó đi qua lớp lọc đơn cực thứ hai, tạo ra điểm sáng trên màn hình LCD.
1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển
2 Vdd Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với Vcc=5V của mạch điều khiển
3 Vee Chân này dùng để điều chỉnh độ tương phản của LCD
Chân chọn thanh ghi (Register select).
Logic "0": Bus DB0-DB7 sẽ kết nối với thanh ghi lệnh IR của LCD khi ở chế độ ghi, hoặc sẽ liên kết với bộ đếm địa chỉ của LCD trong chế độ đọc.
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu
Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.
Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
Trong chế độ ghi, dữ liệu trên bus sẽ được LCD chuyển vào thanh ghi nội bộ khi phát hiện xung chuyển từ cao xuống thấp của tín hiệu chân E.
Khi ở chế độ đọc, dữ liệu sẽ được LCD xuất ra từ DB0 đến DB7 khi phát hiện cạnh lên (chuyển từ mức thấp sang cao) tại chân E, và LCD sẽ giữ dữ liệu trên bus cho đến khi chân E trở về mức thấp.
Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU Có 2 chế độ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7.
Chân VDD, VSS và VEE là các chân quan trọng trong mạch điện của LCD, trong đó VDD cung cấp nguồn dương 5V, VSS là chân đất, và VEE được sử dụng để điều chỉnh độ tương phản của màn hình LCD.
Chân chọn thanh ghi RS (Register Select) trong LCD có vai trò quan trọng trong việc xác định loại thanh ghi được sử dụng Khi RS = 0, thanh ghi lệnh được chọn, cho phép người dùng thực hiện các lệnh như xoá màn hình hoặc đưa con trỏ về đầu dòng Ngược lại, khi RS = 1, thanh ghi dữ liệu được chọn, cho phép người dùng gửi dữ liệu cần hiển thị trên màn hình LCD.
Chân đọc/ ghi (R/W): Đầu vào đọc/ ghi cho phép người dùng ghi thông tin lên LCD khi R/W = 0 hoặc đọc thông tin từ nó khi R/W = 1
Chân cho phép E (Enable) của LCD đóng vai trò quan trọng trong việc chốt dữ liệu Khi dữ liệu được gửi đến chân dữ liệu, cần phải áp dụng một xung mức cao xuống thấp tại chân E để LCD ghi nhận dữ liệu Đặc biệt, xung này cần có độ rộng tối thiểu là 450ns để đảm bảo hoạt động chính xác.
Chân D0 - D7: Đây là 8 chân dữ liệu 8 bít, được dùng để gửi thông tin lên
Để hiển thị chữ cái và số trên LCD, chúng ta gửi mã ASCII tương ứng từ A đến Z, a đến f và các số từ 0 đến 9 khi bật chân RS = 1 Ngoài ra, có các mã lệnh cho phép xóa màn hình, đưa con trỏ về đầu dòng hoặc làm cho con trỏ nhấp nháy.
Chúng ta sử dụng RS = 0 để kiểm tra cờ bận, nhằm xác định xem LCD đã sẵn sàng nhận thông tin hay chưa Cờ bận được biểu thị bằng bít D7 và có thể được đọc khi R/W = 1 và RS = 0.
Khi R/W = 1 và RS = 0 với D7 = 1, LCD sẽ bận do thực hiện các công việc nội bộ và không thể nhận thông tin mới Ngược lại, khi D7 = 0, LCD sẽ sẵn sàng tiếp nhận thông tin mới.
Lưu ý :Chúng ta nên kiểm tra cờ bận trước khi ghi bất kỳ dữ liệu nào lên LCD.
Bảng mã lệnh của LCD
Lệnh Mã lệnh Mô tả Thời gian thi hành
0 0 0 0 0 0 0 0 0 1 Xóa màn hình đưa con trỏ về vị trí đầu
1.64ms Đưa con trỏ về vị trí đầu
0 0 0 0 0 0 0 0 1 x Đưa con trỏ về vị trí đầu
0 0 0 0 0 0 0 1 I/D S Thiết lập hướng dịch chuyển con trỏ(I/D), dịch hiển thị(S)
0 0 0 0 0 0 1 D C B Bật tắt hiển thị, con trỏ; bật tắt chế độ nhấp nháy con trỏ
Dịch con trỏ hiển thị
0 0 0 0 0 1 S/C R/L * * Thiết lập chiều dịch chuyển của con trỏ và hiển thị
0 0 0 0 1 DL N F * * Thiết lập độ dài của dữ liệu, số dòng và font chữ
0 0 0 1 CGRAM address Thiết lập địa chỉ
0 0 1 DDRAM address Thiết lập địa chỉ
DDRAM 40us Đọc cờ báo bận và địa chỉ
0 1 BF CGRAM/ DDRAM address Đọc cờ báo bận và địa chỉ của CGRAM hoặc DDRAM( tùy vào lệnh trước đó)
1 0 Write data Ghi dữ liệu vào
1 1 Read data Đọc dữ liệu từ
Mã (Hex) Lệnh đến thanh ghi của LCD
1 Xóa màn hình hiển thị
4 Giảm con trỏ (dịch con trỏ sang trái)
6 Tăng con trỏ (dịch con trỏ sang phải)
7 Dịch hiển thị sang trái
5 Dịch hiển thị sang phả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ộ vị trí hiển thị sang trái 1C Dịch toàn bộ vị trí 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 5x7
Tổng quan về bàn phím
Giới thiệu về bàn phím
Bàn phím là 1 ma trận phím Một phím được nhấn và thả được xác định thông qua hàng và cột trong ma trận phím.
Nguyên lý quét ma trận phím
Thuật toán quét phím hoạt động bằng cách tìm kiếm theo hàng và cột một cách lần lượt Khi tìm cột, các cột được thiết lập ở mức cao và hàng ở mức thấp Sau đó, kiểm tra xem có cột nào ở mức thấp, tức là có phím nào được nhấn nối với hàng hay không Khi xác định được cột, hàng sẽ được đặt ở mức cao, cột tìm được ở mức thấp, từ đó xác định hàng tương ứng với phím đã nhấn.
Trong báo cáo chúng em thiết kế với phím 4 cột và 4 hàng.
Có phím 0 đến 9 là phím nhập mã.
THIẾT KẾ MẠCH VÀ THI CÔNG
Lưu đồ thuật toán
Lưu đồ chương trình mở cửa
Mạch mô phỏng
P0B7AD7 32 P0B6AD6 33 P0B5AD5 34 P0B4AD4 35 P0B3AD3 36 P0B2AD2 37 P0B1AD1 38 P0B0AD0 39 VCC 40
Khối xử lý trung tâm 8051 có chức năng nhận diện tín hiệu từ bàn phím, sau đó xử lý và phát tín hiệu điều khiển phù hợp để điều hành hệ thống theo chương trình đã được lập trình sẵn.
Địa chỉ chức năng kết nối của hệ thống xử lý trung tâm như sau:
P34 - Tín hiệu đóng,mở cửa
Bộ dao động thạch anh cung cấp xung nhịp với tần số 12MHz cho vi điều khiển (VĐK) hoạt động Hai chân của bộ dao động được kết nối với XTAL1 và XTAL2 của VĐK.
Bộ RESET giúp đưa vi điều khiển về trạng thái ban đầu Khi nút Reset được nhấn, điện áp +5V từ nguồn sẽ được kết nối vào chân Reset của vi điều khiển, dẫn đến việc điện áp tại chân vi điều khiển giảm đột ngột về mức thấp.
0, VĐK nhận biết được sự thay đổi này và khởi động lại trạng thái ban đầu cho hệ thống.
LCD được sử dụng là 16x2 với 2 dòng và hiển thị 4x4
P3.0- RS P3.1-RW P34- Tín hiệu đóng, mở của P2 nối với D0-D7 của LCD
Người dùng nhập mã bằng bàn phím, một thiết bị đầu vào kết nối với vi điều khiển Bàn phím cung cấp tín hiệu cho bộ xử lý trung tâm, nơi tín hiệu được phân tích và so sánh để tạo ra tín hiệu điều khiển tương ứng.
Bàn phím được dùng bằng phương pháp quét phím theo hàng và cột.
Dùng bàn phím cơ với 4 cột 4 hàng
Xắp xếp các hàng cột như bảng:
Hàng 4 C 0 = / Được ghép nối với vi điều khiển tại Port P1
Mạch 3D
Code
/********Khai bao chan giao tiep LCD************/
// khai bao chan giao tiep phim
#define tat 1 void delay_ms(unsigned int t); void mocua(); void dongcua(); void mocua()
{ int sv; for(sv=0;sv