B VI I U KHI N 8051
8051 là vi đi u khi n đ u tiên c a h vi đi u khi n MCS51 đ c Intel s n xu t vào n m
1980 H vi đi u khi n 8051 là h 8 bit có kh n ng đnh đa ch 64K b nh ch ng trình và 64K b nh d li u
So sánh các vi đ i u khi n trong h 8051
GI I THI U V VI X LÝ 8051
8051 là IC vi đi u khi n (Microcontroller) do hãng Atmel s n xu t IC này có đ c đi m nh sau:
• 4 Port nh p/xu t 8 bit (I/O port)
• M ch giao ti p truy n d li u n i ti p (serial port)
• 64 KB b nh bên ngoài dung đ l u ch ng trình đi u khi n
• 64 KB b nh bên ngoài dung đ l u d li u
• 210 bit có th truy xu t t ng bit
• Có các l nh x lý bit
SVTH : Nguy n H i Ph ng MSSV : 20662075
SVTH : Nguy n H i Ph ng MSSV : 20662075
C u trúc bên trong c a vi đi u khi n
SVTH : Nguy n H i Ph ng MSSV : 20662075
Port 0 (P0.0 - P0.7) từ chân 32 đến chân 39 có chức năng kép: khi không sử dụng bộ nhớ ngoài, nó hoạt động như các chân I/O, còn khi có bộ nhớ ngoài, nó kết nối với bus đa chức năng và bus dữ liệu Port 1 (P1.0 - P1.7) từ chân 1 đến chân 8 chỉ có chức năng điều khiển xuất tín hiệu I/O Port 2 (P2.0 - P2.7) từ chân 21 đến chân 28 cũng chỉ hoạt động như các chân I/O khi không dùng bộ nhớ ngoài; nếu có bộ nhớ ngoài, nó sẽ kết nối với byte cao của bus đa chức năng (A8 - A15) Cuối cùng, Port 3 (P3.0 - P3.7) từ chân 10 đến chân 17 có hai chức năng: các chân này vừa hoạt động như các chân I/O vừa có những chức năng riêng biệt tùy thuộc vào từng chân.
SVTH : Nguy n H i Ph ng MSSV : 20662075
B ng sau mô t các ch c n ng riêng l c a t ng chân:
Bit Tên a ch bit Ch c n ng chuy n đ i
P3.0 RXD B0H D li u nh n cho port n i ti p
P3.1 TXD B1H D li u phát cho port n i ti p
P3.6 /WR B6H Xung ghi b nh d li u ngoài
P3.7 /RD B7H Xung đ c b nh d li u ngoài e.PSEN (Program store enable):
PSEN là tín hiệu ngõ ra chân 29, đóng vai trò là tín hiệu điều khiển giúp kích hoạt chương trình mở rộng và kết nối đến chân OE (Output Enable) của EPROM, cho phép truy cập các byte mã lệnh.
/PSEN là tín hiệu quan trọng trong vi điều khiển 89C51, cho phép đọc mã lệnh từ EPROM qua bus dữ liệu và lưu trữ vào thanh ghi lệnh bên trong Khi 89C51 thực hiện chương trình từ EPROM, tín hiệu /PSEN sẽ ở mức logic 1 f.ALE (Address Latch Enable) cũng đóng vai trò quan trọng trong quá trình này.
ALE là tín hiệu ra trên chân 30, cho phép chọn đa địa chỉ phân kênh cho bus dữ liệu (D0 ÷ D7) và byte thấp của bus địa chỉ (A0 ÷ A7) trên port 0 Trong nửa đầu của chu kỳ bình, xung ALE cho phép chọn địa chỉ vào một thanh ghi bên ngoài, trong khi trong nửa sau của chu kỳ bình, các dòng port 0 sẽ là các dòng nhập xuất dữ liệu.
Các xung tín hiệu ALE có tần số đồng bộ 1/6 lần tần số của mạch dao động trên chip, và có thể được sử dụng làm nguồn xung nhịp cho các thành phần khác của hệ thống.
Tín hi u vào /EA chân 31 nó th ng đ c m c lên m c 1(5V) ho c m c 0(GND)
N u m c 1 thì vi đi u khi n thi hành ch ng trình t b nh n i(ROM) trong kho ng đa ch th p(4K)
N u m c 0 thì vi đi u khi n thi hành ch ng trình t b nh ch ng trình ngoài h.RST (Reset):
RST là ngõ vào trên chân 9, được sử dụng để reset hệ thống Khi nhận tín hiệu từ nút reset, mạch sẽ thực hiện quá trình reset theo điều kiện đã định Để đảm bảo tín hiệu reset được nhận, nó cần phải duy trì ở mức cao ít nhất 2 chu kỳ máy.
SVTH : Nguy n H i Ph ng MSSV : 20662075
XTAL1 và XTAL2 là ngõ vào và ngõ ra c a m ch t o dao đ ng trên chip chân 18 và
19 Chúng th ng đ c n i v i m t th ch anh ngoài và các t nh hình đ t o xung clock
T n s th ch anh thông th ng là 12MHz
Chu k máy (T M ) = 1/ t n s máy (f M ) = 1/ (f OSC /12) = 12/f OSC
N u t n s th ch anh là 12MHz thỡ chu k mỏy b ng 1às
S đ m ch t o dao đ ng tên chip j.Vcc và Vss:
Là các chân ngu n trên chân 40 và 20 Vcc = +5V, Vss n i đ t.
T CH C B NH
8051 là vi điều khiển dựa trên kiến trúc Harvard, sở hữu các vùng bộ nhớ riêng biệt cho chương trình (ROM) và dữ liệu (RAM) Chương trình và dữ liệu được lưu trữ bên trong 8051, nhưng nó cũng có khả năng mở rộng bộ nhớ thông qua các thành phần bên ngoài, với dung lượng tối đa lên đến 64KB.
KB b nh ch ng trình và 64 KB b nh d li u(t ng ng v i 16 bit đa ch )
Bên trong vi điều khiển 8051, có sự kết hợp giữa ROM và RAM trên chip RAM trên chip bao gồm nhiều thành phần quan trọng: bộ nhớ lưu trữ đa dụng, bộ nhớ lưu trữ đa chức năng với kích thước bit khác nhau, các bank thanh ghi và các thanh ghi chức năng đặc biệt.
- Có 256 byte RAM n i (đa ch 00H ÷ FFH)
- 128 byte RAM n i đ a ch 00H ÷ 7FH: là các bank thanh ghi vùng RAM đnh v bit và vùng RAM đa d ng
- 128 byte RAM n i đ a ch 80H ÷ FFH : là các thanh ghi ch c n ng đ c bi t
SVTH : Nguy n H i Ph ng MSSV : 20662075
SVTH : Nguy n H i Ph ng MSSV : 20662075
SVTH : Nguy n H i Ph ng MSSV : 20662075
1.RAM đa d ng: a ch t 30 ÷ 7FH g m 80 bytes
M i đa ch trong vùng RAM đa d ng đ u có th đ c truy xu t t do dùng cách đnh đa ch tr c ti p ho c gián ti p
2.RAM đa ch hóa t ng bit: a ch t 20H ÷ 2FH
8051 có khả năng đa ch hóa 210 bit, với 128 bit được định đa ch từ 00H đến 7FH trong các đa ch byte từ 20H đến 2FH, và phần còn lại nằm trong các thanh ghi chức năng riêng biệt Ý nghĩa của việc truy xuất từng bit riêng rẽ bằng phần mềm là một đặc tính tiềm năng của vi điều khiển nói chung Các bit có thể thực hiện các phép toán như đặt, xóa, AND, OR… với một lệnh đơn giản Các vi xử lý đòi hỏi một chuỗi lệnh được ghi đè để hoạt động hiệu quả Hơn nữa, các cổng I/O cũng được đa ch hóa thành từng bit, tạo điều kiện thuận lợi cho việc xuất nhập tín hiệu theo từng bit.
3.Các bank thanh ghi: a ch t 00H ÷ 1FH
Tìm hiểu về ngân hàng thanh ghi tích cực cho thấy rằng việc cài đặt các bit chọn ngân hàng trong thanh ghi PSW là rất quan trọng Theo mặc định, sau khi hệ thống được reset, các thanh ghi này được thiết lập ở các địa chỉ từ 00H đến 07H, tương ứng với Ngân hàng 0.
Việc sử dụng các thanh ghi từ R0 đến R7 giúp tăng tốc độ xử lý và hiệu quả cho các lệnh so với việc sử dụng đa ch hướng trực tiếp Các giá trị dữ liệu thường xuyên được sử dụng nên được lưu trữ trong những thanh ghi này Ý tưởng về "các bank thanh ghi" cho phép chuyển hướng chương trình một cách nhanh chóng và hiệu quả, nhờ vào việc mỗi phần mềm có thể có một bank thanh ghi riêng biệt không phụ thuộc vào các phần khác.
CÁC THANH GHI CH C N NG C BI T (SFRs – SPECIAL FUNCTION REGISTERS)
- Còn kí hi u là ACC (t ng ng v i đa ch E0H ), đ c đnh đa ch t ng bit
- Th ng là toán h ng đích trong các l nh s h c và logic, k t qu c a l nh ch a trong thanh ghi A
SVTH : Nguy n H i Ph ng MSSV : 20662075
2.T tr ng thái ch ng trình PSW (Program Status Word)
T tr ng thái ch ng trình (PSW: Program Status Word) đa ch D0H ch a các bit tr ng thái nh b ng tóm t t sau:
CY AC F0 RS1 RS0 OV - P
Bit Ký hi u a ch Ý ngh a
C 0 Bit 1 ch n bank thanh ghi Bit ch n bank thanh ghi
00nk 0; đa ch 00H-07H 01nk 1: đa ch 08H-0FH 10nk 2:đa ch 10H-17H 11nk 3:đa ch 18H-1FH
- C nh (CY) có công d ng kép Thông th ng nó đ c dùng cho các l nh toán h c: nó s đ c set n u có m t s nh sinh ra b i phép c ng ho c có m t s m n phép tr
C nh c ng có th xem nh m t thanh ghi 1 bit cho các l nh lu n lý thi hành trên bit
C nh ph (AC) là một thành phần quan trọng trong việc xử lý số BCD, được thiết lập để đạt được kết quả trong khoảng từ 0AH đến 0FH Khi các giá trị đầu vào là số BCD, cần phải có DA A (điều chỉnh thập phân trong thanh ghi tích lũy) để đảm bảo kết quả cuối cùng chính xác.
9 vào đúng bi u di n BCD
- C 0: C 0 (F0) là m t bit c đa d ng dành cho các ng d ng c a ng i dùng
Các bit chọn bank thanh ghi (RS0 và RS1) xác định bank thanh ghi đang được sử dụng Những bit này sẽ bị xóa khi hệ thống được reset và có thể được thay đổi bởi phần mềm khi cần thiết.
SVTH : Nguy n H i Ph ng MSSV : 20662075
Ví d , ba l nh sau cho phép bank thanh ghi 3 và di chuy n n i dung c a thanh ghi R7 (đa ch byte 1FH) đ n thanh ghi tích l y:
SETB RS1 SETB RS0 MOV A,R7 Khi ch ng trình đ c h p d ch các đa ch bit đúng đ c thay th cho các ký hi u
“RS1” và “RS0” V y l nh SETB RS1 s gi ng nh l nh SETB 0D4H
C tràn (OV) xảy ra khi một phép toán dẫn đến giá trị vượt quá giới hạn của kiểu dữ liệu Khi các số được cộng với nhau, bit OV có thể được kiểm tra để xác định xem kết quả có nằm trong khoảng giá trị cho phép hay không Nếu các số không đủ điều kiện để cộng, bit OV có thể không được đặt Kết quả của phép cộng trong trường hợp này sẽ làm cho bit OV được đặt lên 1 khi giá trị đạt đến +127 hoặc -128.
Kiểm tra bit P là quá trình xác định bit P được đặt lên 1 hay xóa về 0 một cách tự động mỗi chu kỳ của máy Bit 1 có trong thanh ghi A và bit P luôn luôn chọn Ví dụ, nếu thanh ghi A chứa 10101101B, thì P sẽ là 1, nghĩa là bit 1 là chọn Bit P thường được sử dụng chung với các chương trình cần thiết, và được thêm vào trước khi truyền để kiểm tra sau khi nhận.
Thanh ghi B đóng vai trò quan trọng trong các phép toán nhân và chia cùng với thanh ghi tích lũy A Lệnh MUL AB thực hiện phép nhân các giá trị không vượt quá 8 bit trong A và B, trả về kết quả 16 bit, với byte thấp trong A và byte cao trong B Lệnh DIV AB chia A cho B, với kết quả nguyên trong A và phần dư trong B Thanh ghi B cũng có thể được xem như một thanh ghi đa năng, được tối ưu hóa cho các thao tác với các đa ch bit từ F0H đến F7H.
4 Con tr ng n x p (SP – Stack Pointer):
Thanh ghi ngăn xếp (SP) là một thanh ghi 8 bit với địa chỉ 81H, chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh ngăn xếp Các lệnh trên ngăn xếp bao gồm thao tác đưa dữ liệu vào và lấy dữ liệu ra khỏi ngăn xếp Lệnh đưa dữ liệu vào ngăn xếp sẽ làm tăng giá trị của nó.
SP tr c khi ghi d li u, và l nh l y d li u ra kh i ng n x p s đ c d li u và làm gi m SP kh i đ ng l i SP v i ng n x p b t đ u t i 60H, các l nh sau đây đ c dùng:
Trên 8051 ng n x p b gi i h n 32 byte vì đa ch cao nh t c a RAM trên chip là 7FH
S d cùng giá tr 5FH vì SP s t ng lên 60H tr c khi c t byte d l u đ u tiên
Người thi thiết kế có thể chọn không phải khi đồng lãi còn trống, mà giá trị được xác định khi reset hệ thống là 07H Kết quả đầu tiên được trả về là dữ liệu có địa chỉ 08H Nếu phần mềm đang sử dụng không khởi động lại SP, bank thanh ghi 1 (có thể là 2 và 3) sẽ không thể sử dụng vì vùng RAM này đã được dùng làm ngăn xếp.
Ngôn ngữ lập trình hỗ trợ truy xuất trực tiếp bằng các lệnh PUSH và POP, cho phép lưu trữ và lấy lại dữ liệu một cách hiệu quả Ngoài ra, việc sử dụng các lệnh gọi chương trình con như ACALL và LACALL giúp tối ưu hóa quy trình xử lý Các lệnh trả về như RET và RETI cũng đóng vai trò quan trọng trong việc quản lý luồng chương trình, đảm bảo rằng dữ liệu được xử lý một cách chính xác và hiệu quả.
SVTH : Nguy n H i Ph ng MSSV : 20662075
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)
6 Các thanh ghi port xu t nh p:
Các cổng của 8051 bao gồm Port 0 (80H), Port 1 (90H), Port 2 (A0H) và Port 3 (B0H) Tất cả các cổng đều được đa chức năng và hỗ trợ giao tiếp linh hoạt.
7 Các thanh ghi m ch đ nh thì (timer):
8051 có 2 bộ đếm thời gian 16 bit được sử dụng để đếm thời gian sự kiện Timer 0 được cấu hình với địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: byte cao), trong khi Timer 1 sử dụng địa chỉ 8BH (TL1: byte thấp) và 8DH (TH1: byte cao) Việc vận hành các bộ đếm thời gian được thiết lập thông qua thanh ghi Timer Mode (TMOD) tại địa chỉ 89H và thanh ghi điều khiển timer (TCON) tại địa chỉ 88H.
Ch có TCON đ c đa ch hóa t ng bit
8 Các thanh ghi port n i ti p:
8051 là một vi điều khiển có cổng giao tiếp nối tiếp trên chip, cho phép trao đổi thông tin với các thiết bị như máy tính, modem và các IC khác Cổng này hỗ trợ giao tiếp nối tiếp thông qua các bộ chuyển đổi A/D và các thanh ghi dịch, giúp việc truyền tải dữ liệu trở nên hiệu quả hơn Một trong những thành phần quan trọng là thanh ghi, đảm bảo việc lưu trữ và xử lý dữ liệu nối tiếp một cách chính xác.
SBUF (địa chỉ 99H) là một thanh ghi dùng để truyền và nhận dữ liệu Khi truyền dữ liệu, thông tin sẽ được ghi vào SBUF, còn khi nhận dữ liệu, nó sẽ được lấy từ SBUF Các chế độ vận hành khác nhau được lập trình thông qua thanh ghi điều khiển port nối tiếp (SCON) tại địa chỉ 98H, với khả năng đa chạm tĩnh.
8051 có cấu trúc 5 ngữ nghĩa và 2 mạch điều khiển chính Sau khi reset, các ngữ bậc sẽ hoạt động và cho phép ghi vào thanh ghi cho phép ngữ (IE) tại địa chỉ 8AH Cả hai thanh ghi đều được đa ch hợp thành từng bit.
10.Thanh ghi đi u khi n ngu n PCON (Power Control):
SMOD - - - GF1 GF0 PD IDL
Bit g p đôi t c đ baud, n u đ c set thì t c đ baud s t ng g p đôi trong các mode 1, 2 và 3 c a port n i ti p
Không đnh ngh a Không đnh ngh a Không đnh ngh a Bit c đa d ng 1 Bit c đa d ng 0
Gi m công su t, đ c set đ kích ho t mode gi m công su t, ch thoát khi reset
Mode ch , set đ kích ho t mode ch , ch thoát khi có ng t ho c reset h th ng
SVTH : Nguy n H i Ph ng MSSV : 20662075
Chế độ ngừng (PD = 1) yêu cầu áp cung cấp 2V cho mạch dao động trên chip, nhằm duy trì hoạt động của mạch Nội dung các RAM trên chip được giữ nguyên, đồng thời các chân port duy trì mức logic của chúng ALE và /PSEN cũng được giữ ở mức ổn định.
Chế độ ngắt (IDL = 1) cho phép tín hiệu clock nội khóa không cho đếm CPU nhưng không khóa đối với các chức năng ngắt, đánh thời gian và port nối tiếp Nội dung của tất cả các thanh ghi được duy trì, trong khi các chân port vẫn giữ mức logic của chúng Các tín hiệu ALE và /PSEN được giữ ở mức cao.
SVTH : Nguy n H i Ph ng MSSV : 20662075
B NH CH NG TRÌNH NGOÀI
8051 có kh n ng m r ng b nh đ n 64K b nh ch ng trình và 64K b nh d li u bên ngoài Do đó có th dùng thêm ROM và RAM n u c n
Khi sử dụng b nh ngoài, port 0 không còn là một port I/O thuần túy nữa mà nó kết hợp kênh giữa bus địa chỉ (A0-A7) và bus dữ liệu (D0-D7) với tín hiệu ALE để chọn byte thấp của đa ch khi bắt đầu một chu kỳ b nh Port 2 thường được sử dụng cho byte cao của bus đa ch.
Trong quá trình hoạt động của chu kỳ bình, byte dữ liệu được nạp vào port 0 và được xác định bằng xung ALE Một IC chip 74HC373 (hoặc tương đương) sẽ ghi byte dữ liệu nạp vào phần còn lại của chu kỳ bình Trong giai đoạn sau của chu kỳ bình, port 0 được sử dụng như bus dữ liệu và có thể được đọc hoặc ghi tùy theo lệnh.
Ví d : K t n i ph n c ng 8051 v i b nh ngoài EPROM 64K nh sau:
- Tín hi u /EA đ c tích c c (/EA = 0)
- Tín hi u /PSEN n i v i /OE đ cho phép đ c b nh ch ng trình ngoài
- Trong 1 chu k máy đi n hình, ALE có 2 xung và do đó có th đ c 2 bytes c a l nh t b nh ch ng trình (n u l nh ch có 1 byte thì byte th 2 đ c lo i b )
SVTH : Nguy n H i Ph ng MSSV : 20662075
Gi n đ th i gian c a chu k tìm-n p b nh ch ng trình ngoài nh sau:
B NH D LI U NGOÀI
Cho phép đ c/ghi b i các tín hi u /RD và /WR
L nh dùng đ truy xu t b nh d li u ngoài là MOVX, s d ng DPTR hay R0/R1 đ ch a đa ch d li u
RAM ngoài có th giao ti p v i 8051 theo cùng cách nh EPROM ngo i tr đ ng /RD n i v i đ ng cho phép xu t /OE và đ ng /WR n i v i đ ng ghi /WR (hay /WE) c a RAM
Trong trường hợp có một lượng nhờn dữ liệu ngoài (không có bộ nhớ chương trình ngoài), có thể sử dụng đa ch 8 bit để truy xuất trang bộ nhớ 256 byte Nếu có nhiều hơn 1 trang 256 byte, một vài bit của port 2 (hoặc một port khác) có thể được sử dụng để chỉ định trang.
SVTH : Nguy n H i Ph ng MSSV : 20662075
Ví d : giao ti p gi a 8051 và RAM 64K ngoài đ c k t n i nh sau:
Gi n đ th i gian c a chu k đ c và ghi b nh d li u ngoài nh sau
Gi n đ th i gian chu k d c b nh d li u ngoài
SVTH : Nguy n H i Ph ng MSSV : 20662075
Gi n đ th i gian chu k d c b nh d li u ngoài
HO T NG RESET
8051 đ c reset b ng cách gi chân RST m c cao ít nh t trong 2 chu k máy và tr nó v m c th p RST có th đ c kích khi c p đi n dùng m t m ch R-C.
SVTH : Nguy n H i Ph ng MSSV : 20662075
Tr ng thái c a t t c các thanh ghi c a 8051/8031 sau khi reset h th ng đ c tóm t t trong b ng sau:
B đ m ch ng trình PC Thanh ghi tích l y ACC Thanh ghi B PSW
IE Các thanh ghi đnh th i
SCON SBUF PCON(HMOS) PCON(CMOS)
0000H 00H 00H 00H 07H 0000H FFH XXX00000B 0XX00000B 00H 00H 00H 0XXXXXXB 0XXX0000B
Các giá tr thanh ghi sau khi reset h th ng
Thanh ghi đệm chương trình trong các thanh ghi được đặt tại địa chỉ 0000H Khi tín hiệu RST được kích hoạt, chương trình sẽ luôn bắt đầu từ địa chỉ 0000H Nội dung của RAM trên chip không bị thay đổi khi lệnh reset được thực hiện.
TIMER
Timer là một mạch chuỗi các flip-flop chia đôi tín hiệu xung nhịp, nhận tín hiệu vào để làm nguồn xung nhịp Mỗi flip-flop trong timer chia đôi tần số, do đó tín hiệu ra có tần số bằng tần số xung nhịp chia cho 2^n Ngõ ra của flip-flop cuối cùng cung cấp xung nhịp cho flip-flop báo tràn của timer Giá trị phân trong các flip-flop của timer có thể được xem như số đếm xung nhịp từ khi khởi động timer, ví dụ timer 16 bit sẽ đếm từ 0000H đến FFFFH Cờ báo tràn sẽ được thiết lập khi số đếm tràn từ FFFFH về 0000H.
Hoạt động của timer được minh họa bằng hình ảnh bên dưới với timer 3 bit Mỗi tín hiệu là một flip-flop loại D, hoạt động theo nguyên tắc chia đôi tần số Timer này là mạch chất loại D được thiết kế với một bit ngược cuối của timer.
SVTH : Nguy n H i Ph ng MSSV : 20662075
Timer 3 bit: a) S đ b) Gi n đ đnh thì
8051 có 2 timer 16 bit, m i timer có b n cách làm vi c Ng i ta s d ng các timer đ : a) đ nh kho ng th i gian b) đ m s ki n ho c c) t o t c đ baud cho port n i ti p trong 8051
M i timer 16 bit có 16 t ng hay t ng cu i cùng chia t n s xung nh p cho
2 16 = 65536 Ngu n xung nh p cho các timer là xung vuông có t n s b ng 1/12 t n s dao đ ng c a th ch anh g n m ch dao đ ng hay t n s đ a vào chân XTAL
Trong các ngữ điệu đồng đỉnh không thời gian, người ta lập trình timer để quản lý đầu vào và đạt được trạng thái tràn timer Điều này được sử dụng để tự động hóa chương trình thực hiện một tác vụ đồng nhất kiểm tra trạng thái của các cửa vào hoặc ghi các sự kiện ra các đầu ra Các ngữ điệu khác có thể sử dụng việc tạo xung nhịp đầu vào của timer để đo thời gian trôi qua giữa hai sự kiện, chẳng hạn như đo đạc đường xung.
Ta có th truy c p các timer qua các thanh ghi SFR nh b ng sau:
SFR M C ÍCH A CH a ch hóa t ng bit
Ch đ timer Byte th p c a timer 0 Byte th p c a timer 1 Byte cao c a timer 0 Byte cao c a timer 1
Có Không Không Không Không Không
SVTH : Nguy n H i Ph ng MSSV : 20662075
2.Thanh ghi ch đ timer (TMOD)
Thanh ghi TMOD ch a hai nhóm 4 bit dùng đ đ t ch đ làm vi c cho timer 0 và timer1
Các ch đ ho t đ ng c a timer đ c cho nh trong b ng sau:
Các ch đ ho t đ ng c a timer
TMOD không hỗ trợ đa chế độ bit Thông thường, người ta đánh giá giá trị của nó như một lệnh bậc phần mềm đầu chương trình để khởi tạo chế độ đếm thời gian Sau đó, timer có thể được điều chỉnh và sử dụng thông qua việc truy cập các SFR khác.
SVTH : Nguy n H i Ph ng MSSV : 20662075
3.Thanh ghi đi u khi n timer (TCON)
Thanh ghi TCON (timer control register) chứa các bit điều khiển và trạng thái cho timer 0 và timer 1 Bit cao được sử dụng để bật timer chạy và tắt timer (TR0, TR1), hoặc để báo hiệu tràn (TF0, TF1) Các bit thấp trong TCON không ảnh hưởng đến các timer, mà chỉ được dùng để phát hiện và khởi động ngắt từ ngoài.
Chi ti t các bit trong thanh ghi TCON đ c cho trong b ng sau
4.Các ch đ timer a.Ch đ timer 13 bit (ch đ 0)
V i các thi t k ng i ta ít dùng ch đ ho t đ ng này Byte cao c a timer (THx) n i ti p v i 5 bit th p c a timer (TLx) đ t o thành timer 13 bit Ba bit cao c a THx không đ c s d ng
SVTH : Nguy n H i Ph ng MSSV : 20662075
Trang 22 b.Ch đ timer 16 bit (ch đ 1)
Hoạt động của timer 16 bit diễn ra như sau: Cảnh báo tràn được biểu thị bởi bit TFx trong TCON, có thể được thiết lập hoặc ghi bằng phần mềm Bit cao nhất (MSB) của giá trị trong các thanh ghi timer là bit 7 của THx, trong khi bit thấp nhất (LSB) là bit 0 của TLx Các thanh ghi timer (TLx/THx) có thể được thiết lập hoặc ghi lại bất cứ lúc nào bằng phần mềm.
Ch đ 1 c.Ch đ timer 8 bit t n p l i tr đ u (ch đ 2)
TLx hoạt động như một timer 8 bit, trong khi THx vẫn giữ nguyên giá trị cần nạp Khi giá trị của timer tràn từ FFH về 00H, nếu timer được set, giá trị trong THx sẽ được nạp vào TLx Việc nạp tiếp tục từ giá trị này lên đến FFH và sau đó quay về 00H là rất thông dụng, vì sự tràn timer xảy ra trong những khoảng thời gian nhất định và tuân theo một quy trình khi đã khởi động TMOD và THx.
SVTH : Nguy n H i Ph ng MSSV : 20662075
Trang 23 d.Ch đ tách timer (ch đ 3)
Timer 0 tách thành hai timer 8 bit (TL0 và TH0), TL0 có c báo tràn là TF0 và TH0 có c báo tràn là TF1
Timer 1 ngừng hoạt động khi đạt ngưỡng 3, nhưng có thể được khôi phục bằng cách chuyển sang chế độ khác Hiện tại, thông báo tràn TF1 không còn tác động khi timer 1 bị tràn, vì nó đã được chuyển sang trạng thái TH0.
Khi timer 0 ở chế độ 3, có thể cấu hình timer 1 hoạt động và ngừng bằng cách chuyển nó ra ngoài và vào chế độ 3 Timer 1 vẫn có thể được sử dụng thông qua port nội tiếp, bất kể tốc độ baud, hoặc có thể được sử dụng bằng bất kỳ cách nào không cần ngắt (vì nó không còn liên quan đến TF1).
Có hai ngu n t o xung nh p có th có, đ c ch n b ng cách ghi vào bit C/T
(counter/timer) trong TMOD khi kh i đ ng timer M t ngu n t o xung nh p dùng cho đnh kho ng th i gian, còn ngu n kia dùng cho đ m s ki n
SVTH : Nguy n H i Ph ng MSSV : 20662075
Khi C/T = 0, timer hoạt động liên tục và được sử dụng để đếm khoảng thời gian Trong trường hợp này, timer sẽ lấy xung nhịp từ bộ dao động trên chip Tần số 12 MHz được chia 12 để tạo ra tần số xung nhịp 1 MHz cho timer Sự kiện tràn timer xảy ra sau một số xung nhịp nhất định, và giá trị ban đầu sẽ được nạp vào các thanh ghi timer TLx/THx.
- m s ki n (event counting: N u C/T=1, timer l y xung nh p t ngu n bên ngoài
Trong quá trình hoạt động, các nguồn bên ngoài cung cấp tín hiệu cho timer khi xảy ra một "sự kiện" Timer được sử dụng để đếm số sự kiện được xác định bằng cách sử dụng các thanh ghi TLx/THx, vì giá trị 16 bit trong các thanh ghi này sẽ tăng lên 1 cho mỗi sự kiện xảy ra.
Ngu n xung nh p bên ngoài đ c c p qua chân P3.4 ( T0 timer 0 ) và P3.5 ( T1 timer 1)
6.Cho ch y, d ng và đi u khi n các timer
Phương pháp đơn giản nhất để bắt đầu (cho chạy) và sử dụng các timer là dùng các bit điều khiển chạy: TRx trong TCON TRx sẽ bị xóa sau khi reset hệ thống Như vậy, các timer theo mặc định sẽ bị tắt (bắt đầu) TRx được đặt lên 1 bằng phần mềm để các timer chạy.
Cho ch y và d ng timer
Vì TRx trong thanh ghi TCON có đa bit, việc điều khiển các timer trong chương trình trở nên dễ dàng Ví dụ, để kích hoạt timer 0, ta sử dụng lệnh SETB TR0 và để dừng timer, ta thực hiện lệnh tương ứng.
SVTH : Nguy n H i Ph ng MSSV : 20662075
PORT N I TI P
Port nội tiếp của chip 8051 cho phép hoạt động song công, cho phép truyền và nhận dữ liệu đồng thời thông qua các chân TXD (P3.1) và RXD (P3.0) Chức năng chính của port này là thực hiện chuyển đổi song song giữa dữ liệu xuất và dữ liệu nhập Với khả năng đệm khi thu (receiver buffering), port nội tiếp cho phép một ký tự được thu và xử lý trong khi ký tự thứ hai đang được nhận, đảm bảo dữ liệu không bị mất nếu CPU xử lý ký tự thứ nhất trước khi ký tự thứ hai được thu đầy đủ.
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: đa ch 99H là b đ m c a port n i ti p Th c t , port n i ti p g m 2 b đ m riêng cho phát và thu
SCON: đa ch 98H là thanh ghi chứa các bit trạng thái và bit điều khiển cho port nối tiếp Các bit điều khiển đảm bảo hoạt động của port nối tiếp, trong khi các bit trạng thái báo cáo kết quả của quá trình 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ể được lập trình để tự động ngắt.
T n s làm vi c c a port n i ti p còn g i là t c đ baud có th c đnh (l y t b giao đ ng c a chip) N u s d ng t c đ baud thay đ i, timer 1 s cung c p xung nh p t c đ baud và ph i đ c l p trình
SVTH : Nguy n H i Ph ng MSSV : 20662075
1.Thanh ghi đi u khi n port n i ti p SCON:
SM0 SM1 SM2 REN TB8 RB8 TI RI
• SM0, SM1: ch n ch đ ho t đ ng c a port n i ti p
SM0 SM0 Ch đ (Mode) Mô t
• SM2: ch n ch đ ho t đ ng c a port n i ti p
SM2 = 1 : cho phép truy n thông đa x lý các ch đ 2 và 3; bit RI s không đ c tích c c n u bit th 9 nh n đ c là 0
• REN: bit cho phép thu
REN = 1: cho phép thu REN = 0: không cho phép thu
• TB8: bit phát th 9 ( ch đ 2 và 3), có th đ t và xóa b ng ph n m m
• RB8: bit thu th 9 ( ch đ 2 và 3), có th đ t và xóa b ng ph n m m
• TI: c ng t phát C này đ c đ t lên 1 b ng ph n c ng khi phát xong 1 ký t (đ báo b đ m phát đã r ng), đ c xóa b ng ph n m m
• RI: c ng t thu C này đ c đ t lên 1 b ng ph n c ng khi thu xong 1 ký t (đ báo b đ m thu đã đ y), đ c xóa b ng ph n m m
Tr c khi s d ng port n i ti p, ph i kh i đ ng SCON cho đúng ch đ Ví d , l nh sau:
Kh i đ ng port n i ti p cho ch đ 1 (SM0/SM1=0/1), cho phép b thu (REN=1) và đ t c ng t phát (TP=1) đ ch b phát s n sàng ho t đ ng
2.Các ch đ ho t đ ng c a port n i ti p: a.Ch đ 0 (thanh ghi d ch 8 bit)
- D li u n i ti p đ c thu/phát thông qua chân RxD
- Chân TxD phát xung clock đ d ch bit
- Khi thu/phát d li u 8 bit, bit LSB đ c thu/phát tr c tiên
- T c đ Baud c đnh và b ng 1/12 t c đ dao đ ng trên chip (f = f M = f OSC /12)
Mạch nâng cấp của chip 8051 cho phép mở rộng thêm các ngõ ra, bao gồm 8 đường xuất tín hiệu thông qua các chân TxD và RxD Việc sử dụng các thanh ghi dịch nối tiếp giúp tăng cường khả năng mở rộng, cho phép ghép nối nhiều thanh ghi dịch với nhau để mở rộng thêm các ngõ ra.
SVTH : Nguy n H i Ph ng MSSV : 20662075
S đ m r ng port ch đ 0 b.Ch đ 1 (UART 8 bit t c đ thay đ i)
- Port n i ti p ho t đ ng nh 1 b thu/phát b t đ ng b (universal asynchronous receiver/transmitter) UART 8 bit có t c đ Baud thay đ i đ c
1 bit Start + 8 bit Data + 1 bit Stop
( luôn m c 0) ( bit LSB tr c) ( luôn m c 0)
- T c đ Baud = ( t c đ tràn c a timer 1)/ 32 (n u bit SMOD = 0)
- Tr c tiên, d li u đ c ghi vào SBUF (phát)
- D li u đ c d ch bit đ xuát ra trên đ ng TxD s b t đ u b ng bit Start, ti p theo là
8 bit d li u v i LSB phát tr c và cu i cùng là bit Stop Bit Start và Stop do ph n c ng t đ ng chén vào Th i gian c a m i bit là ngh ch đ o c a t c đ Baud
- C ng t TI s đ c t đ ng đ t b ng 1 b i ph n c ng ngay khi bit Stop xu t hi n trên đ ng TxD (t c là phát xong 1 ký t d li u) đ báo b đ m phát đã r ng
- Vi c thu đ c kh i đ ng b i s chuy n tr ng thái t 1 xu ng 0 trên đ ng RxD (b t đ u bit Start)
- Khi 1 bit Start h p l đ c phát hi n, bit Start đ c b qua và 8 bit d li u đ nh n tu n t vào thanh ghi d ch bit c a port n i ti p Sau khi thu xong c 8 bit, các đi u sau s x y ra:
• Bit th 9 (bit Stop) đ c đ a đ n bit RB8 trong SCON
• 8 bit data đ c n p vào SBUF (thu)
• C ng t thu RI đ c đ t lên 1 b i ph n c ng
Tuy nhiên các đi u trên ch x y ra n u t n t i các đi u ki n sau:
• SM2 = 0 ho c SM2 = 1 và bit Stop nh n đ c b ng 1
SVTH : Nguy n H i Ph ng MSSV : 20662075
Trang 28 c.Ch đ 2 (UART 9 bit, t c đ Baud c đnh)
- Port n i ti p ho t đ ng ch đ UART 9 bit có t c đ baud c đnh
1 bit Start + 8 bit Data + bit Data th 9 + 1 bit Stop
( luôn m c 0) ( bit LSB tr c) (l p trình đ c) (luôn m c 1)
- Khi phát, bit data th 9 là bit b t k đ t TB8 trong thanh ghi SCON
- Khi thu, bit data th 9 nh n đ c s đ t vào RB8 trong thanh ghi SCON d.Ch đ 3 (UART 9 bit, t c đ Baud thay đ i)
- Port n i ti p ho t đ ng ch đ UART 9 bit có t c đ baud thay đ i đ c, t ng t nh ch đ 2 nh ng t c đ baud đ c l p trình và đ c cung c p b i timer 1
- T c đ Baud = ( t c đ tràn c a timer 1)/ 32 (n u bit SMOD = 0)
3.T c đ Baud cho port n i ti p: ch đ 1 và 3, t c đ Baud cho port n i ti p đ c l p trình b i timer 1:
T c đ Baud = ( t c đ tràn c a timer 1)/ 32 (n u bit SMOD = 0)
( th i gian tràn c a timer 1) = 1 / (t c đ tràn c a timer 1)
SMOD Giá tr n p cho TH1
SVTH : Nguy n H i Ph ng MSSV : 20662075
NG T (Interrupt)
Ngữ t là hoạt động ngữ nghĩa mà chương trình này thực hiện một chương trình khác Các ngữ t đóng vai trò quan trọng trong thiết kế và khả năng thực thi của hệ thống Chúng cho phép hệ thống đáp ứng không đồng thời hai nhiệm vụ và giải quyết một nhiệm vụ trong khi một chương trình khác đang thực thi.
Mỗi khi hệ thống nhận tín hiệu ngắt, CPU không thể thực thi một chương trình khác cho đến khi hoàn tất chương trình hiện tại Để xử lý tín hiệu ngắt này, chương trình được gọi là chương trình phục vụ ngắt (ISR - Interrupt Service Routine) sẽ được thực hiện.
8051 có 5 ngữ ngữ: 2 ngữ ngoài, 2 ngữ timer và 1 ngữ cổng nối tiếp Tất cả các ngữ này sẽ được khởi tạo theo mức nhiên đầu khi hệ thống được reset và được phép tự động hóa một phần mềm Điều này cho phép và kiểm soát ngữ.
EA - - ES ET1 EX1 ET0 EX0
Mỗi ngữ nghĩa được điều khiển thông qua thanh ghi cho phép ngắt (IE) tại địa chỉ A8H Thanh ghi này có các bit cho phép ngắt, trong đó có một bit cho phép toàn bộ ngắt, có thể bị xóa để vô hiệu hóa tất cả các ngắt hoặc được đặt lên 1 để cho phép tất cả các ngắt hoạt động.
Tóm t t thanh ghi cho phép ng t IE
SVTH : Nguy n H i Ph ng MSSV : 20662075
Mỗi ngắt được lập trình riêng vào một trong hai mức ưu tiên qua thanh ghi chức năng được biết đến là đa ch bit IP (Interrupt Priority) Các ngắt ưu tiên sẽ được xóa sau khi hệ thống được reset, đảm bảo rằng tất cả các ngắt mức ưu tiên hợp lệ được thiết lập lại.
- - PT2 PS PT1 PX1 PT0 PX0
Tóm t t thanh ghi u tiên ng t IP
Khi có m t ng n x y ra và đ c CPU ch p nh n, ch ng trình chính b ng t quãng
Nh ng ho t đ ng sau x y ra:
- Thi hành hoàn ch nh l nh đang hi n hành
- Tr ng thái ng t hi n hành đ c c t bên trong
- N p vàp PC đa ch Vector c a ISR
ISR là một phương pháp quan trọng trong việc đáp ứng nhu cầu ngắn hạn ISR hoàn toàn dựa vào mô hình RETI, giúp đánh giá các giá trị của PC trong ngắn hạn và điều chỉnh trạng thái ngắn hạn một cách hiệu quả Chương trình này được thực hiện liên tục tại nơi mà nó được áp dụng.
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
- Ch c n ng các bit liên quan đ n ng t
• IEx : c ng t ngoài x (IEx = 1 t o ng t ngoài x)
• ITx : bit xác đnh lo i tác đ ng ng t ngoài x ̇ ITx = 0 : tác đ ng m c 0 ̇ ITx = 1 : tác đ ng c nh xu ng (th ng dùng)
SVTH : Nguy n H i Ph ng MSSV : 20662075
4.Các ng t c a 8051 a.Các ng t timer:
Các ng t timer có địa chỉ Vector ng t là 000BH (timer 0) và 001BH (timer 1) Ng t timer được phát sinh khi các thanh ghi timer (TLx, ITHx) tràn và cờ báo tràn (TFx) được thiết lập lên 1 Cờ timer (TFx) không bị xóa trong quá trình ngắt Khi cho phép các ng t, TFx sẽ được tự động xóa khi CPU chuyển đến ng t.
Ngữ tắc công nhận tiệp xảy ra khi học c phát TI (phát xong 1 byte) hoặc c ng t thu RI (thu xong 1 byte) được đặt lên 1 Ngữ t phát x xảy ra khi một ký tự đã được nhận xong và đang đi trong SBUF được đợi.
Các ngắt cứng nội tiếp khác với các ngắt timer, gây ra ngắt cứng nội tiếp không bị xóa băng phần cứng khi CPU chuyển từ ngắt này sang ngắt khác Có hai nguồn ngắt cứng nội tiếp là TI và RI Nguồn ngắt phải được xác định trong ISR và có thể ngắt sẽ được xóa băng phần cứng Các ngắt timer cũng được xóa băng phần cứng khi CPU đang thực hiện ISR.
Khi có mức tín hiệu từ chân /INT0 hoặc /INT1, các bit Port 3 (Port 3.2 và Port 3.3) sẽ được kích hoạt Các tín hiệu này tương ứng với các bit IE0 và IE1 trong TCON Khi quyền điều khiển chuyển đến ISR, các tín hiệu này sẽ được xóa nếu không còn được tích cực Nếu tín hiệu được tích cực theo mức, nguồn yêu cầu bên ngoài sẽ điều khiển mức của các chân thay cho phần cứng.
Sự kích hoạt ngắt có thể được lập trình qua các bit IT0 và IT1 trong thanh ghi TCON Nếu IT1 = 0, ngắt ngoài sẽ được tác động bằng mức thấp trên chân /INTR Ngược lại, nếu IT1 = 1, ngắt ngoài sẽ được tác động bằng mức cao Trong chế độ này, nếu các mẫu liên tiếp trên chân /INTR có mức cao trong một chu kỳ và mức thấp trong chu kỳ kế tiếp, yêu cầu ngắt IE1 trong TCON cần được đặt lên 1, sau đó bit IE1 sẽ yêu cầu ngắt.
CÁC PH NG PHÁP NH A CH
Các kiểu định danh đa dạng là phần cốt lõi trong toàn bộ bối cảnh của môi trường vật lý hoặc điều kiện Chúng cho phép xác định rõ nguồn gốc và mục tiêu của dữ liệu thông qua nhiều phương pháp khác nhau, mà các yếu tố vật lý hoặc điều kiện sử dụng trong quá trình thực hiện nhiệm vụ.
Có 8 ki u đnh đa ch đ i v i h MCS-51:
SVTH : Nguy n H i Ph ng MSSV : 20662075
1 nh đa ch qua thanh ghi
8051 có 4 bank thanh ghi, mỗi bank chứa 8 thanh ghi từ R0 đến R7 Mỗi khi cần sử dụng một bank thanh ghi, ta cần gán các bit tương ứng vào RSI (PSW.4) và RS0 (PSW.3) trong thanh ghi trạng thái chương trình (PSW).
Trong các lệnh, thanh ghi tích lũy được xác định là "A", thanh ghi dữ liệu là "DPTR", thanh ghi đếm chương trình là "PC", và cờ là "C" Các thanh ghi này được xác định mà không cần đến các bit đa ch.
Trong ch đ này, các thanh ghi bên trong 8051 đ c đánh đa ch tr c ti p b ng 8 bit đa ch n m trong byte th hai c a mã l nh
Dù v y, trình h p d ch cho phép g i tên các thanh ghi ch c n ng đ c bi t (có đa ch tr c ti p t 80H đ n FFH) ví d : P0 cho port 0, TMOD cho thanh ghi ch đ timer
3 nh đa ch gián ti p
R0 và R1 đ c dùng đ ch a đa ch ô nh mà l nh tác đ ng đ n Ng i ta quy c dùng d u @ tr c R0 ho c R1
Chúng ta sử dụng dấu “#” trước các toán hạng để chỉ định các thành phần như hằng số, ký tự hoặc biểu thức toán học Điều này giúp đảm bảo tính chính xác trong quá trình tính toán và thay thế dữ liệu trước khi đưa vào mã lệnh.
Mã lệnh Địa chỉ trực tiếp
Mã lệnh Dư liệu tức thời
SVTH : Nguy n H i Ph ng MSSV : 20662075
Địa chỉ tạm thời là một loại địa chỉ được sử dụng trong các lệnh nhảy của vi điều khiển 8051/8031, cho phép giá trị 8 bit được cộng thêm vào thanh ghi đếm chương trình (PC) Khoảng giá trị của địa chỉ này nằm trong khoảng từ -128 đến 127 ô nhớ Trước khi thực hiện, thanh ghi PC sẽ được cập nhật đến địa chỉ nhảy, sau đó tính toán địa chỉ offset cần thiết để đến địa chỉ yêu cầu Như vậy, địa chỉ tạm thời là địa chỉ tạm thời so với lệnh kế tiếp, không phải là bản thân lệnh nhảy Thông thường, địa chỉ này liên quan đến nhãn được định nghĩa trước đó.
Lệnh nhảy trực tiếp (nh đa ch tuy t đ i) được sử dụng trong các lệnh ACALL và AJMP, cho phép nhảy vào một trang 2 Kbyte của bộ nhớ chương trình Các lệnh 2 byte này sử dụng 11 bit địa chỉ thấp (A0-A10) để xác định địa chỉ đích trong trang mã, trong khi 5 bit cao (A11-A15) tương ứng với 5 bit cao hiện hành trong thanh ghi đếm chương trình Do đó, địa chỉ của lệnh nhảy và địa chỉ đích của lệnh nhảy cần phải nằm trong cùng một trang mã 2 Kbyte, tức là có cùng 5 bit địa chỉ cao.
Lệnh ACh Dài, bao gồm LCALL và LJMP, sử dụng 3 byte, trong đó 2 byte cuối (byte 2 và byte 3) được dùng để chỉ định địa chỉ đích của lệnh (16 bit) Lệnh này có khả năng truy cập toàn bộ vùng nhớ 64 Kbyte, tuy nhiên, nó chiếm nhiều byte và được lưu trữ tại vị trí trong vùng nhớ.
Địa chỉ tham chiếu sử dụng một thanh ghi cơ bản (hoặc thanh ghi đếm chương trình PC hoặc thanh ghi con trỏ dữ liệu DPTR) và địa chỉ offset (trong thanh ghi tích lũy A) để tạo địa chỉ tác động cho các lệnh JMP hoặc MOVC Các bảng nhảy và bảng tìm kiếm dễ dàng được tạo ra để sử dụng địa chỉ tham chiếu.
Khi truy xuất dữ liệu trong một bảng đã được định nghĩa, thanh ghi PC hoặc DPTR sẽ chứa địa chỉ của bảng, trong khi thanh ghi A sẽ chứa offset của dữ liệu cần truy xuất trong bảng đó.
Mã lệnh Offset tương đối
SVTH : Nguy n H i Ph ng MSSV : 20662075
T P L NH
T p l nh c a 8051 đ c chia ra làm 5 nhóm chính: s h c, lu n lý (logic), chuy n d li u, chuy n đi u khi n và l nh x lý bit
Các chi ti t thi t l p l nh:
Rn Thanh ghi R0 đ n R7 c a bank thanh ghi đ c ch n
Data 8 bit đa ch vùng d li u bên trong Nó có th là vùng RAM d li u trong (0-127) ho c các thanh ghi ch c n ng đ c bi t
@Ri 8 bit vùng RAM d li u trong (0-125) đ c đánh giá đa ch gián ti p qua thanh ghi R0 ho c R1
#data H ng 8 bit ch c trong câu l nh
#data 16 H ng 16 bit ch a trong câu l nh
Addr16 16 bit đa ch đích đ c dùng trong l nh LCALL và LJMP
Addr11 11 bit đa ch đích đ c dùng trong l nh LCALL và AJMP
Rel Byte offset 8 bit có d u đ c dùng trong l nh SJMP và nh ng l nh nh y có đi u ki n
Bit Bit đ c đnh đa ch tr c ti p trong RAM d li u n i ho c các thanh ghi ch c n ng đ c bi t
ADD A,Rn (1 byte, 1 chu k máy): C ng n i dung thanh ghi Rn vào thanh ghi A ADD A,data (2,1): C ng tr c ti p 1 byte vào thanh ghi A
ADD A,@Ri (1,1): C ng gián ti p n i dung RAM ch a t i đa ch đ c khai báo trong Ri vào thanh ghi A
ADD A,#data (2,1): C ng d li u t c th i vào A
ADD A,Rn (1,1): C ng thanh ghi và c nh vào A
ADD A,data (2,1): C ng tr c ti p byte d li u và c nh vào A
ADDC A,@Ri (1,1): C ng gián ti p n i dung RAM và c nh vào A
ADDC A,#data (2,1): C ng d li u t c th i và c nh vào A
SUBB A,Rn (1,1): Tr n i dung thanh ghi A cho n i dung thanh ghi Rn và c nh SUBB A,data (2,1): Tr tr c ti p A cho m t s và c nh
SUBB A,@Ri (1,1): Tr gián ti p A cho m t s và c nh
SUBB A,#data (2,1): Tr n i dung A cho m t s t c th i và c nh
INC A (1,1): T ng n i dung thanh ghi A lên 1
INC Rn (1,1): T ng n i dung thanh ghi Rn lên 1
INC data (2,1): T ng d li u tr c ti p lên 1
INC @Ri (1,1): T ng gián ti p n i dung vùng RAM lên 1
DEC A (1,1): Gi m n i dung thanh ghi A xu ng 1
DEC Rn (1,1): Gi m n i dung thanh ghi Rn xu ng 1
DEC data (2,1): Gi m d li u tr c ti p xu ng 1
DEC @Ri (1,1): Gi m gián ti p n i dung vùng RAM xu ng 1
INC DPTR (1,2): T ng n i dung con tr d li u lên 1
MUL AB (1,4): Nhân n i dung thanh ghi A v i n i dung thanh ghi B
DIV AB (1,4): Chia n i dung thanh ghi A cho n i dung thanh ghi B
DA A (1,1): Hi u ch nh th p phân thanh ghi A
SVTH : Nguy n H i Ph ng MSSV : 20662075
ANL A,Rn (1,1): AND n i dung thanh ghi A v i n i dung thanh ghi Rn
ANL A,data (2,1): AND n i dung thanh ghi A v i d li u tr c ti p
ANL A,@Ri (1,1): AND n i dung thanh ghi A v i d li u gián ti p trong RAM
ANL A,#data (2,1): AND n i dung thanh ghi v i d li u t c th i
ANL data,A (2,1): AND m t d li u tr c ti p v i A
ANL data,#data (3,2): AND m t d li u tr c ti p v i A m t d li u t c th i
ORL A,Rn (1,1): OR thanh ghi A v i thanh ghi Rn
ORL A,data (2,1): OR thanh ghi A v i m t d li u tr c ti p
ORL A,@Ri (1,1): OR thanh ghi A v i m t d li u gián ti p
ORL A,#data (2,1): OR thanh ghi A v i m t d li u t c th i
ORL data,A (2,1): OR m t d li u tr c ti p v i thanh ghi A
ORL data,#data (3,1): OR m t d li u tr c ti p v i m t d li u t c th i
XRL A,Rn (1,1): XOR thanh ghi A v i thanh ghi Rn
XRL A,data (2,1): XOR thanh ghi A v i m d li u tr c ti p
XRL A,@Ri (1,1): XOR thanh ghi A v i m t d li u gián ti p
XRL A,#data (2,1): XOR thanh ghi A v i m t d li u t c th i
XRL data,A (2,1): XOR m t d li u tr c ti p v i thanh ghi A
XRL dara,#data (3,1): XOR m t d li u tr c ti p v i m t d li u t c th i
CPL A (1,1): Bù n i dung thanh ghi A
RL A (1,1): Quay trái n i dung thanh ghi A
RLC A (1,1): Quay trái n i dung thanh ghi A qua c nh
RR A (1,1): Quay ph i n i dung thanh ghi A
RRC A (1,1): Quay ph i n i dung thanh ghi A qua c nh
SWAP (1,1): Quay trái n i dung thanh ghi A 1 nibble (1/2 byte)
MOV A,Rn (1,1): Chuy n n i dung thanh ghi Rn vào thanh ghi A
MOV A,data (2,1): Chuy n d li u tr c ti p vào thanh ghi A
MOV A,@Ri (1,1): Chuy n d li u gián ti p vào thanh ghi A
MOV A,#data (2,1): Chuy n d li u t c th i vào thanh ghi A
MOV Rn,data (2,2): Chuy n d li u tr c ti p vào thanh ghi Rn
MOV Rn,#data (2,1): Chuy n d li u t c th i vào thanh ghi Rn
MOV data,A (2,1): Chuy n n i dung thanh ghi A vào d li u tr c ti p
MOV data,Rn (2,2): Chuy n n i dung thanh ghi Rn vào d li u tr c ti p
MOV data,@Ri (2,2): Chuy n m t d li u gián ti p vào d li u gián ti p
MOV @Ri,A (1,1): Chuy n n i dung thanh ghi A vào d li u gián ti p
MOV @Ri,data (2,2): Chuy n m t d li u tr c ti p vào d li u gián ti p
MOV @Ri,#data (2,1): Chuy n d li u t c th i vào d li u gián ti p
MOV DPTR,#data (3,2): Chuy n m t h ng 16 bit vào thanh ghi DPTR
MOV A,@A+DPTR (1,2): Chuy n byte b nh ch ng trình có đa ch là
MOVC A,@A+PC (1,2): Chuy n byte b nh ch ng trình có đa ch là @A+PC vào thanh ghi A
SVTH : Nguy n H i Ph ng MSSV : 20662075
MOV A,@Ri (1,2): Chuy n d li u ngoài (8 bit đa ch ) vào thanh ghi A
MOVX A,@DPTR (1,2): Chuy n d li u ngoài (16 bit đa ch ) vào A
MOVX @Ri,A (1,2): Chuy n n i dung A ra d li u ngoài (8 bit đa ch )
MOVX @DPTR,A (1,2): Chuy n n i dung A ra d li u ngoài (16 bit đa ch )
PUSH data (2,2): Chuy n d li u tr c ti p vào ng n x p và t ng SP
POP data (2,2): Chuy n d li u tr c ti p vào ng n x p và gi m SP
XCH A,Rn (1,1): Trao đ i d li u gi a thanh ghi Rn và thanh ghi A
XCH A,data (2,1): Trao đ i gi a thanh ghi A và m t d li u tr c ti p
XCH A,@Ri (1,1): Trao đ i gi a thanh ghi A và m t d li u gián ti p
XCHD A,@R (1,1): Trao đ i gi a nibble th p (LSB) c a thanh ghi A và LSB c a d li u gián ti p
4.Nhóm l nh chuy n đi u khi n:
ACALL addr11 (2,2): G i ch ng trình con dùng đa ch tuy t đ i
LCALL addr16 (3,2): G i ch ng trình con dùng đa ch dài
RET (1,2): Tr v t l nh g i ch ng trình con
JMP @A+DPTR (1,2): Nh y gián ti p t con tr d li u
JNZ rel (2,2): Nh y n u A không b ng 0
JNC rel (2,2): Nh y n u c nh không đ c đ t
JB bit,rel (3,2): Nh y t ng đ i n u bit tr c ti p đ c đ t
JNB bit,rel (3,2): Nh y t ng đ i n u bit tr c ti p không đ c đ t
JBC bit,rel (3,2): Nh y t ng đ i n u bit tr c ti p đ c đ t,r i xóa bit
CJNE A, data, rel (3,2) thực hiện so sánh dữ liệu trực tiếp với A và nhảy nếu không bằng CJNE A, #data, rel (3,2) cũng so sánh dữ liệu tức thời với A và nhảy nếu không bằng CJNE Rn, #data, rel (3,2) so sánh dữ liệu tức thời với nội dung thanh ghi Rn và nhảy nếu không bằng.
CJNE @Ri,#data,rel (3,2): So sánh d li u t c th i v i d li u gián ti p và nh y n u không b ng
DJNZ Rn,rel (2,2): Gi m thanh ghi Rn và nh y n u không b ng
DJNZ data,rel (3,2): Gi m d li u tr c ti p và nh y n u không b ng
SVTH : Nguy n H i Ph ng MSSV : 20662075
SETB bit (2,1): t m t bit tr c ti p
CPL bit (2,1): Bù m t bit tr c ti p
ANL C,bit (2,2): AND c nh v i 1 bit tr c ti p
ANL C,/bit (2,2): AND c nh v i bù 1 bit tr c ti p
ORL C,bit (2,2): OR c nh v i m t bit tr c ti p
ORL C,/bit (2,2): OR c nh v i bù c a m t bit tr c ti p
MOV C,bit (2,1): Chuy n m t bit tr c ti p vào c nh
MOV bit,C (2,2): Chuy n c nh vào m t bit tr c ti p
SVTH : Nguy n H i Ph ng MSSV : 20662075
CH NG 2: CHUY N I T NG T - S ADC
KHÁI NI M CHUNG
Ngày nay, việc truyền dữ liệu tín hiệu từ các quá trình điều khiển và chế biến phần lớn được thực hiện theo phương pháp số Tín hiệu tự nhiên có dạng tín hiệu liên tục như nhiệt độ, áp suất, cường độ ánh sáng, tốc độ quay và tín hiệu âm thanh Để kết nối giữa nguồn tín hiệu liên tục và các hệ thống xử lý, người ta sử dụng các mạch chuyển đổi tín hiệu như ADC (Analog to Digital Converter) để biến đổi tín hiệu liên tục sang dạng số, hoặc trong trường hợp ngược lại, sử dụng mạch DAC (Digital to Analog Converter) để chuyển đổi tín hiệu số sang tín hiệu liên tục.
NGUYÊN T C TH C HI N CHUY N I
M ch chuy n đ i tín hi u t ng t sang s , chuy n m t tín hi u ngõ vào t ng t (dòng đi n hay đi n áp) thành d ng mã s nh phân có giá tr t ng ng
Chuy n đ i ADC có r t nhi u ph ng pháp Tuy nhiên, m i ph ng pháp đi u có nh ng thông s c b n khác nhau:
- D i bi n đ i c a tín hi u t ng t ngõ vào
S đ kh i t ng quát c a m ch ADC
- u tiên kích xung start đ b ADC ho t đ ng
Tín hiệu đồng hồ được xác định bởi bộ điều khiển, làm thay đổi trạng thái phân cực lưu trữ trong thanh ghi Trạng thái phân cực trong thanh ghi được chuyển thành dòng điện áp V’ thông qua bộ chuyển đổi DA.
Khi so sánh V’a với Va, nếu V’a nhỏ hơn Va, ngõ ra của b so sánh sẽ cao Ngược lại, khi V’a lớn hơn Va, ngõ ra của b so sánh sẽ thấp và quá trình thay đổi số trong thanh ghi diễn ra Lúc này, V’a gần bằng Va, nhưng số trong thanh ghi là những số cần chuyển đổi.
SVTH : Nguy n H i Ph ng MSSV : 20662075
CÁC PH NG PHÁP CHUY N I ADC
C CHUY N I TÍN HI U T NG T SANG TÍN HI U S
Chíp ADC 0804 là b chuy n đ i t ng t s trong h các lo t ADC 800 t hãng
National Semiconductor sản xuất nhiều loại chip, trong đó có các bộ chuyển đổi tương tự sang số (ADC) hoạt động với điện áp +5V và độ phân giải 8 bit Thời gian chuyển đổi là một yếu tố quan trọng cần xem xét khi đánh giá hiệu suất của một bộ ADC Thời gian chuyển đổi được định nghĩa là khoảng thời gian mà bộ ADC cần để chuyển đổi một tín hiệu đầu vào thành một giá trị số.
ADC 0804 th i gian chuy n đ i thay đ i ph thu c vào t n s đ ng h đ c c p t i chân
CLKR và CLK IN nh ng không th nhanh h n 110 s
- T ng sai s ch a ch nh đnh ±ẵ LSB; ±1 LSB
- Th i gian chuy n đ i: 110às t n s 606 kHz
- D dàng giao ti p v i vi x lý ho c dùng riêng
- Không c n đi u ch nh zero ho c đ y thang
SVTH : Nguy n H i Ph ng MSSV : 20662075
SVTH : Nguy n H i Ph ng MSSV : 20662075
Các chân c a ADC 0804 đ c mô t nh sau:
1.Chân /CS (Chip Select - ch n Chip): Là m t đ u vào tích c c m c th p đ c s d ng đ kích ho t chíp ADC 0804 truy c p ADC 0804 thì chân này ph i m c th p
Chân /RD (Read - đ c) là một tín hiệu đầu vào quan trọng trong việc tích cực của mạch hợp thành Các bộ chuyển đổi ADC chuyển đổi đầu vào tương tự thành tín hiệu số và lưu trữ nó trong một thanh ghi nội bộ Chân /RD được sử dụng để nhận dữ liệu được chuyển đổi từ ADC 0804 Khi /CS = 0 và một xung cao - xuống - thấp được áp dụng vào chân RD, đầu ra sẽ là 8 bit hiển thị qua các chân dữ liệu D0 - D7 Chân /RD cũng được coi là tín hiệu cho phép đầu ra.
SVTH : Nguy n H i Ph ng MSSV : 20662075
3.Chân ghi /WR ( Write- th c ra tên chính xác là “B t đ u chuy n đ i”): ây là chân đ u vào tích c c m c th p đ c dùng đ báo cho ADC 804 b t đ u quá trình chuy n đ i
Khi tín hiệu /WR ở mức thấp, ADC 0804 bắt đầu chuyển đổi giá trị đầu vào tương ứng với điện áp Vin sang định dạng 8 bit Thời gian cần thiết để hoàn tất quá trình chuyển đổi phụ thuộc vào tần số của tín hiệu CLK IN và CLK R Khi quá trình chuyển đổi dữ liệu hoàn tất, chân /INTR của ADC 0804 sẽ được kéo xuống mức thấp để thông báo.
4.Chân CLK IN và CLK R
Chân CLK IN là một chân đầu vào dùng để nhận tín hiệu từ nguồn đồng hồ ngoài khi đồng hồ ngoài được sử dụng để điều khiển thời gian Tuy nhiên, 0804 cũng có một máy tạo xung đồng hồ, còn được gọi là máy tạo đồng hồ riêng Trong trường hợp này, các chân CLK IN và CLK R được kết nối với tín hiệu đầu vào và đầu ra như đã trình bày trong hình bên dưới Tần số đồng hồ được xác định bằng biểu thức: 1 f 1,1*.
Giá tr tiêu bi u c a các đ i l ng trên là R = 10k và C= 150pF và t n s nh n đ c là f = 606 kHz và th i gian chuy n đ i s m t là 110 s
S đ m ch t t o xung clock cho ADC 0804
Chân ng t /INTR (Interrupt Request) là chân đầu ra tích cực, thường ở trạng thái cao Khi quá trình chuyển đổi hoàn tất, chân này sẽ xuống thấp, báo hiệu cho CPU rằng dữ liệu đã được chuyển đổi và sẵn sàng để lấy Sau khi chân /INTR xuống thấp, chúng ta đặt /CS = 0 và gửi xung cao xuống chân /RD để lấy dữ liệu từ vi điều khiển 0804.
6.Chân V in (+) và V in (-) ây là các đ u vào t ng t vi sai mà Vin = Vin (+) - Vin (-) Thông th ng Vin (-) đ c n i xu ng đ t và Vin (+) đ c dùng nh đ u vào t ng t đ c chuy n đ i v d ng s
7.Chân V CC ây là chân ngu n nu i +5v, nó c ng đ c dùng nh đi n áp tham chi u khi đ u vào
SVTH : Nguy n H i Ph ng MSSV : 20662075
Chân 9 là m t đi n áp đ u vào đ c dùng cho đi n áp tham chi u N u chân này h
Để sử dụng ADC 804, cần áp dụng điện áp vào chân VCC trong khoảng từ 0 đến +5V Tuy nhiên, có nhiều trường hợp mà điện áp đầu vào Vin cần phải khác ngoài khoảng này Chân Vref/2 được sử dụng để thực hiện các điện áp đầu vào khác ngoài dải 0 – 5V Chẳng hạn, nếu điện áp đầu vào cần là 0 đến 4V, thì Vref/2 cần được thiết lập ở mức +2V.
B ng 2 Bi u di n d i đi n áp Vin đ i v i các đ u vào Vref/2 khác nhau
Vref/2 (V) Vin (V) Step size (mV)
B ng quan h đi n áp Vref/2 v i Vin
- Khi V ref /2 h thì đo đ c đó kho ng 2,5V
- Kích th c b c (đ phân d i) là s thay đ i nh nh t mà ADC có th phân bi t đ c
Các chân dữ liệu D0 - D7 (trong đó D7 là bit cao nhất MSB và D0 là bit thấp nhất LSB) là các chân đầu ra dữ liệu Đây là những chân có thể đếm ba trạng thái, và dữ liệu được chuyển đổi để truy cập khi chân /CS = 0 và chân /RD được bật xuống thấp Để tính điện áp đầu ra, ta có thể sử dụng công thức sau:
V i Dout là đ u ra d li u s (d ng th p phân) Vin là đi n áp đ u vào t ng t và đ phân d i là s thay đ i nh nh t đ c tính nh là (2*Vref/2) chia cho 256 đ i v i ADC 8 bit
SVTH : Nguy n H i Ph ng MSSV : 20662075
Chân GND t ng t và chân GND s là các chân đầu vào của cáp mass chung cho tín hiệu s và t ng t Mass t ng t được nối với mass của chân V in t ng t, trong khi mass s được nối với mass của chân V cc Việc có hai mass là cần thiết để cách ly tín hiệu t ng t Vin t khỏi điện áp ký sinh, đảm bảo việc chuyển mạch được chính xác Trong phần trình bày, các chân này được nối chung với một đất, nhưng trong thực tế, đo đạc dữ liệu các chân đất này cần được tách biệt.
Để thực hiện chuyển đổi dữ liệu bằng ADC 0804, cần thực hiện các bước sau: a) Đặt /CS = 0 và tạo xung thập lên cao tại chân /WR để bắt đầu quá trình chuyển đổi b) Duy trì chân /INTR ở trạng thái cao; nếu /INTR xuống thấp, quá trình chuyển đổi hoàn tất và có thể chuyển sang bước tiếp theo Nếu /INTR vẫn cao, có thể tiếp tục dò cho đến khi nó xuống thấp c) Sau khi chân /INTR xuống thấp, đặt /CS = 0 và tạo xung cao - xuống - thấp tại chân /RD để lấy dữ liệu ra từ chip ADC 0804 Thời gian cho quá trình này được trình bày trong hình minh họa.
Phân chia th i gian đ c và ghi c a ADC 0804
SVTH : Nguy n H i Ph ng MSSV : 20662075
H TH NG O L NG
Giới thiệu về các phương pháp đo lường: Việc thực hiện phép đo cảm biến đối với một đại lượng nào đó phụ thuộc vào đặc tính của đại lượng cần đo, điều kiện đo, cũng như độ chính xác theo yêu cầu của phép đo Chúng ta có thể thực hiện đo bằng nhiều cách khác nhau trên cơ sở của các hệ thống đo lường khác nhau.
S đ kh i c a m t h th ng đo l ng t ng quát
S đ kh i h th ng đo l ng
Khi chuyển đổi, nhiệm vụ là biến đổi các đại lượng vật lý thành các đại lượng vật lý thống nhất, như dòng điện hoặc điện áp, để thuận lợi cho việc tính toán.
- M ch đo: có nhi m v tính toán bi n đ i tín hi u nh n đ c t b chuy n đ i sao cho phù h p v i yêu c u th hi n k t qu đo c a b ch th
- Kh i ch th : làm nhi m v bi n đ i tín hi u đi n nh n đ c t m ch đo đ th hi n k t qu đo
Hệ thống đo lường được áp dụng trong dự án này nhờ vào các ưu điểm như khả năng chuyển đổi tín hiệu tương tự thành tín hiệu số với các xung rõ ràng trong trạng thái 0,1, giúp giảm thiểu sai số Thêm vào đó, hệ thống này tương thích với dữ liệu của máy tính, cho phép giao tiếp dễ dàng và xử lý dữ liệu một cách hiệu quả, đồng thời được ứng dụng rộng rãi trong kỹ thuật.
Chuy n đ i M ch đo Ch th
SVTH : Nguy n H i Ph ng MSSV : 20662075
S đ kh i h th ng đo l ng s b là nguyên lý hoạt động của thiết bị đo, dựa vào các đặc tính của thiết bị đo mà ta chọn một loại cảm biến phù hợp để biến đổi thông số đo l ng s b thành đại lượng điện Điều này bao gồm việc sử dụng mạch chỉnh bi n tín hiệu, hệ thống khuếch đại và xử lý tín hiệu.
B chuy n đ i tín hi u sang s ADC(Analog Digital Converter) làm nhi m v chuy n đ i tín hi u t ng t sang tín hi u s và k t n i v i vi x lý
B vi x lý có nhi m v th c hi n nh ng phép tính và xu t ra nh ng l nh trên c s trình t nh ng l nh ch p hành đã th c hi n tr c đó
Bộ chuyển đổi ADC và kênh tần số (multiplexers) được sử dụng chung cho tất cả các kênh Dữ liệu đầu vào từ vi xử lý sẽ có tín hiệu chọn đúng kênh cần xử lý, sau đó được đưa vào bộ chuyển đổi ADC để thu được giá trị chính xác thông qua các phép tính, từ đó cho kết quả của đại lượng cần đo.
Cheá bieán Tín hieọu ủo
Cheá bieán Tín hieọu ủo
SVTH : Nguy n H i Ph ng MSSV : 20662075
CÁC PH NG PHÁP O NHI T
o nhi t đ là m t ph ng th c đo l ng không đi n, đo nhi t đ đ c chia thành nhi u d i: đo nhi t đ th p, đo nhi t đ trung bình, đo nhi t đ cao
Việc đo nhiệt độ điện trở được thực hiện thông qua các dụng cụ chuyên biệt như cảm biến nhiệt độ, nhiệt kế điện kim loại, nhiệt kế điện trở kim loại, nhiệt kế điện trở bán dẫn, và cảm biến biến thể.
Nhi t đi n tr th ng dùng đ đo nhi t đ c a h i n c, khí than trong các đ ng ng, các lò ph n ng hóa h c, các n i h i, lò nhi t, không khí trong phòng
Cắt bỏ dây kim loại như Platinum và Nickel là một quá trình quan trọng Nguyên lý hoạt động dựa trên việc thay đổi điện trở kim loại theo nhiệt độ của các vật dẫn điện Cụ thể, điện trở sẽ biến đổi theo nhiệt độ, tạo thành một hàm số liên quan.
Có th s d ng ph ng trình kém chính xác h n:
B có th âm hay d ng tùy kho ng nhi t đ
Trong kho ng nhi t đ t 0 đ n 100°C có th vi t:
R T = R + T V i sai số không thể tránh khỏi là + 0.5°C Khi ghép cảm biến nhiệt độ với mạch đo, dòng điện qua cảm biến gây ra hiện tượng tăng nhiệt và sai số Do đó, cần giảm thiểu dòng điện này Điện trở nối tiếp với cảm biến sẽ làm cho mạch đo chính xác hơn, vì lúc đó điện trở đo sẽ ổn định hơn.
V i RL là đi n tr dây n i
Nh ng h s trong công th c tính đi n tr R th ng đ c bi t tr c m t cách chính xác nh s đo nh ng nhi t đ đã bi t ơ M t s nhi t đi n tr thụng d ng:
Nhiệt điện trở bạch kim có điện trở suất cao ρ = 0.105 μΩm, khả năng đo trong khoảng -220°C đến 850°C với độ phi tuyến khoảng 0.4% trên 100°C Trị số R0 của nhiệt điện trở bạch kim là 100Ω, 200Ω, 500Ω và 1000Ω Tuy nhiên, khi nhiệt độ đạt 1000°C hoặc cao hơn, bạch kim thường kém bền và chỉ có thể đo nhiệt độ một cách chính xác.
SVTH : Nguy n H i Ph ng MSSV : 20662075
Có u đi m là đ nh y nhi t r t cao (6.66 * 10 -3 / o C) t 0°C đ n 100°C, đi n tr su t là 1.67 * 10 -8 (còn c a Platin là 1.385 * 10 -8 ), có đi n tr su t cao h n đ ng Nickel ch ng l i s oxy hóa, th ng đ c dùng nhi t đ nh h n 250°C
Nhi t đi n tr đ ng s d ng nhi t đ d i 1000 o C đ tránh ôxi hóa Do đi n tr su t th p ρ =0.0172μΩm nên c n ch t o nhi t đi n tr v i dây nh và dài
Tungstène là một vật liệu có độ bền cao và khả năng chịu nhiệt tốt hơn so với Platin, nhờ vào tính chất đặc biệt của nó Điều này cho phép nó được sử dụng trong các ứng dụng điện tử đòi hỏi hiệu suất cao, mang lại giá trị vượt trội cho các thiết bị Sự kết hợp giữa độ bền và khả năng chịu nhiệt của Tungstène giúp giảm thiểu chiều dài dây dẫn, từ đó tối ưu hóa hiệu suất và giảm chi phí sản xuất.
B ng sau cho bi t tr s R T và c a m t s nhi t đi n tr gi m theo nhi t đ :
- Nhi t đ i n tr Thermistor: c đi m c a Thermistor là đi n tr c a nó bi n đ i r t l n theo nhi t đ Thermistor đ c ch t o t h n h p các oxit kim lo i Mangan, Nickel, Cobalt … ho c h n h p tinh th MnAl2O, Zn2TiO4
Nhiệt độ của Thermistor được chế tạo bằng cách ép định hình và nung nóng đến 100°C trong môi trường oxy hóa Việc chọn vật liệu hợp nhất các oxit hoặc hợp nhất tinh thể và môi trường nung giữ vai trò quan trọng, quyết định chất lượng của Thermistor.
Trong nh ng n m g n đây, các nhi t k Thermistor đ c s d ng nhi u vì nó có u đi m: đ nh y cao, đ c tính nhi t n đnh, kích th c nh , hình dáng thay đ i d dàng khi ch t o
- Nhi t đi n tr bán d n chia làm hai lo i:
Nhiệt độ ảnh hưởng đến điện trở của cảm biến nhiệt độ dương (PT) theo nguyên tắc: khi nhiệt độ tăng, điện trở giảm Loại cảm biến này thường được chế tạo từ các hợp chất như gốm, sắt, titan và bari Mối quan hệ giữa điện trở và nhiệt độ của cảm biến PT rất quan trọng trong các ứng dụng công nghiệp và công nghệ.
SVTH : Nguy n H i Ph ng MSSV : 20662075
Nhi t đi n tr có h s nhi t âm NT (Negative Thermistor) hoạt động dựa trên nguyên tắc khi nhiệt độ tăng thì điện trở R giảm Thành phần chính của loại này là bột oxit kim loại như Mn, Fe, Ni hoặc các hợp chất tinh thể như Aluminate Mn (MnAl2O4) và Titanate kém (Zn2TiO4) Loại này thường có điện trở giảm từ -3% đến 6% °C theo nhiệt độ.
Trong đó R T và R 0 là đi n tr nhi t đ T và T 0 h ng s kho ng t 3000 5000 tùy cách ch t o
Thermistor là thiết bị được sử dụng trong khoảng nhiệt độ từ -50°C đến 150°C Với tính chất phi tuyến của nó, Thermistor thường không được dùng để đo nhiệt độ mà chủ yếu được áp dụng trong các mạch cảnh báo quá nhiệt hoặc mạch bù nhiệt.
T dR dT α = R nh y c a c m bi n nhi t: T s R R
Khi nhi t đ càng gi m thì đ nh y càng t ng, đó c ng là u đi m c a Thermistor
Ph m vi s d ng Thermistor t 100°C đ n 400°C Vì là ch t bán d n nên khi s d ng nhi t đ cao h n 200°C thì Thermistor ph i có b c ch t li u nhi t
3 o nhi t đ b ng c p nhi t đi n (Thermocouple):
C u t o g m hai dây kim lo i khác nhau đ c hàn v i nhau m t đ u g i là đ u n i nóng hay n i đo, hai đ u dây còn l i là đ u n i l nh hay đ u n i chu n
Nhiệt độ đo được trong hai môi trường cụ thể được gọi là T1 = Tref Trong khi đó, T2 là nhiệt độ của môi trường còn lại, và nhiệt độ TC được xác định khi đặt trong môi trường có nhiệt độ không xác định TX Nhiệt độ TC phụ thuộc vào TX và sự thay đổi nhiệt độ có thể xảy ra với các môi trường khác như hành lang hoặc môi trường bên ngoài Nhiệt độ cần đo được chuyển đổi thành số chỉ định được hiển thị trên các voltmet kim, băng vạch sáng hoặc bằng các con số.
SVTH : Nguy n H i Ph ng MSSV : 20662075
Nguyên lý hoạt động của nhiệt điện dựa trên hiệu ứng Seebeck, cho phép xác định hiệu điện thế phát sinh khi hai kim loại khác nhau được nối liền với nhau, tạo thành các mối nối có sự chênh lệch về nhiệt độ Hiệu ứng này xảy ra do sự khuếch tán các điện tích qua bề mặt mối nối của hai vật liệu khác nhau.
Nhiệt độ đầu lạnh là yếu tố quan trọng trong việc đánh giá quan hệ giữa V và T Để đo chính xác nhiệt độ đầu lạnh T0, cần phải xác định nhiệt độ T một cách chính xác Nhiệt độ đầu lạnh còn được gọi là nhiệt độ chuẩn, và việc hiểu rõ mối quan hệ này giúp cải thiện quy trình đo lường.
Khi s d ng đo t m h p có th tuy n tính hóa đ c tính c p nhi t theo bi u th c:
Dây dẫn của cảm biến nhiệt độ không nên dài đến mức ảnh hưởng đến độ chính xác của cảm biến Khi sử dụng dây dẫn dài để đo nhiệt độ, cần đảm bảo rằng dây dẫn không làm thay đổi nhiệt độ đo được, đặc biệt là ở nhiệt độ chuẩn T0 Để bù trừ cho sự thay đổi nhiệt độ ở T0, cần sử dụng dây dẫn cùng loại với vật liệu của cảm biến nhiệt độ.
Trong quá trình đánh giá và đo đạc nhiệt độ, việc áp dụng công nghệ đo nhiệt độ chính xác là rất quan trọng Cần phải có khu vực đo đạc riêng biệt và thiết bị đo nhiệt độ được hiệu chuẩn đúng cách Nhiệt độ điện được tính toán dựa trên các công thức cụ thể, đảm bảo độ chính xác và độ tin cậy trong kết quả.
V i: dV s bi n đ i đi n áp đ u ra dT s thay đ i nhi t đ t ng ng
M t s giá tr v đ nh y c a c p nhi t đi n đ c cho b ng sau:
SVTH : Nguy n H i Ph ng MSSV : 20662075
Nh ng tiêu chu n đ c tr ng c a c p nhi t đi n đ c cho b i b ng sau:
Lo i V t li u T m ho t đ ng chính xác Chú thích
200°C 1100°C ±2°C ho c 0.3% R t n đnh.S c đi n đ ng th p 7mV 750°C
R t n đnh S c đi n đ ng th p 6.6mV 750°C
S c đi n đ ng trung bình 30mV 750°C
Oxy hóa t° cao S c đi n đ ng v a 20mV 400°C ơ u đi m:
Cảm biến nhiệt độ có kích thước nhỏ gọn cho phép đo nhiệt độ với độ chính xác cao, đồng thời đảm bảo tốc độ phản hồi nhanh Hai đặc điểm này cho thấy cảm biến nhiệt độ có ưu điểm nổi bật trong việc theo dõi nhiệt độ Tín hiệu được tạo ra chính là sự thay đổi điện áp mà không cần thông qua mạch điện, nhờ vậy tránh được hiện tượng đo nóng cảm biến.
Trong quá trình đo nhi t đ thì nhi t đ c a m i n i chu n (T ref ) ph i bi t rõ, t t c s không chính xác c a T ref s d n đ n m t s không chính xác c a TC ơ M t s c p nhi t thụng d ng:
• S c đi n đ ng Seebeck: E = (-2.3 ÷ 16.7) mV ̇ Lo i 10% Platin:
+ T = 600°C ÷ 1600°C, c p chính xác là ±0,4% ̇ Lo i 13% Platin:
+ T = 538°C ÷ 1500°C, c p chính xác là ±0,25% ̇ Lo i 30% Platin:
SVTH : Nguy n H i Ph ng MSSV : 20662075
• chính xác: ̇ T = -100°C ÷ -40°C là 2% ̇ T = -40°C ÷ 100°C là 8% ̇ T = 100°C ÷ 350°C là 0.75%
SVTH : Nguy n H i Ph ng MSSV : 20662075
4.C m bi n nhi t đ b ng vi m ch:
C m bi n nhi t đ vi m ch ch t o t ch t bán d n có nhi t đ t l đ C(Celsius),
C M BI N LM35
IC LM35 có m t s đ c tính c b n nh sau:
- LM35 có đ bi n thiên theo nhi t đ : 10mV / 1 o C
- chính xác cao, tính n ng c m bi n nhi t đ r t nh y, nhi t đ 25 o C nó có sai s không quá 1% V i t m đo t 0 o C – 128 o C, tín hi u ngõ ra tuy n tính liên t c v i nh ng thay đ c u tín hi u ngõ vào
- Tiêu tán công su t th p
- Dũng làm vi c t 400àA – 5mA
LM 35 có hai d ng m ch t ng ng v i hai t m đo khác nhau:
S đ m ch c m bi n LM35 hình 1 (figure 1), c m bi n ho t đ ng ch đ Basic ta th y t m đo t 2 o C đ n
Để đo nhiệt độ từ -55 °C đến 150 °C, thiết bị sử dụng hàm Vout = 0mV + 10mV/°C, cho phép tín hiệu ngõ ra tuyến tính Hình 2 minh họa chế độ hoạt động "Full-Range", trong đó tín hiệu ngõ ra cũng có sự biến đổi tuyến tính, nhưng sẽ xuất hiện giá trị âm khi nhiệt độ giảm xuống dưới 0 °C.
Vout = t o C * 10mV i n tr m c thêm vào có giá tr th a mãn
Hi n t i trên th tr ng có nhi u h LM35, ch ng h n: TO-46 (LM35H, LM35AH, LM35CH, LM35CAH), SO-8 (LM35DM), TO-220 (LM35DT), TO-92 (LM35CZ,
LM35CAZ, LM35DZ) Ta s tìm hi u dòng LM35DZ rõ h n, vì đây là lo i đang đ c bán ph bi n trên th tr ng và ta s dùng trong đ án này
SVTH : Nguy n H i Ph ng MSSV : 20662075
D ng đóng gói c a LM35DZ có d ng:
SVTH : Nguy n H i Ph ng MSSV : 20662075
GIAO TH C I2C
C TH I GIAN TH C DS1307
DS1307 là chip đồng hồ thời gian thực (RTC - Real-time clock) được sản xuất bởi Dallas Semiconductor, một công ty thuộc Maxim Integrated Products Chip này có khả năng lưu trữ thời gian chính xác theo giây, phút, giờ, ngày, tháng và năm thông qua 7 thanh ghi 8-bit Ngoài ra, DS1307 còn tích hợp một thanh ghi điều khiển ngõ ra và 56 thanh ghi trống có thể sử dụng như RAM Chip này được cung cấp dưới dạng hai gói SOIC và DIP.
Các chân c a DS1307 đ c mô t nh sau:
- X1 và X2: là 2 ngõ k t n i v i 1 th ch anh 32.768KHz làm ngu n t o dao đ ng cho chip
- V BAT : c c d ng c a m t ngu n pin 3V nuôi chip
- GND: chân mass chung cho c pin 3V và Vcc
Vcc là nguồn cung cấp cho giao tiếp I2C, thường là 5V và được sử dụng chung với vi điều khiển Cần lưu ý rằng nếu Vcc không được cấp nguồn ổn định từ VBAT, thì DS1307 sẽ vẫn hoạt động nhưng không thể ghi dữ liệu.
SQW/OUT là chân đầu ra của mạch tạo xung vuông, có khả năng lập trình Chân này không liên quan trực tiếp đến chức năng của DS1307 là đồng hồ thời gian thực, vì vậy chúng ta sẽ bỏ qua chân này khi không cần thiết.
- SCL và SDA là 2 đ ng giao xung nh p và d li u c a giao di n I2C
Có th k t n i DS1307 b ng m t m ch đi n đ n gi n nh trong hình sau
SVTH : Nguy n H i Ph ng MSSV : 20662075
DS1307 là một vi mạch thời gian thực bao gồm các thành phần như bộ đếm thời gian, bộ điều khiển logic, giao tiếp I2C, bộ nhớ RAM và các thanh ghi Việc sử dụng DS1307 chủ yếu tập trung vào việc ghi và đọc các thanh ghi của chip Hai vấn đề quan trọng cần lưu ý là cấu trúc của các thanh ghi và cách truy xuất chúng thông qua giao diện I2C.
Nh đã trình bày, b nh DS1307 có t t c 64 thanh ghi 8-bit đ c đánh đa ch t 0 đ n
Bài viết đề cập đến 63 (t 00H đ n 3FH theo h HexaDecimal) và cấu trúc của 8 thanh ghi đầu dùng cho chức năng "đồng hồ thực" (RTC), cùng với 56 thanh ghi còn lại có thể được sử dụng để lưu trữ biến tạm trong RAM Thanh ghi đầu tiên chứa thông tin về thời gian của đồng hồ thực bao gồm: giây (SECONDS), phút (MINUTES), giờ (HOURS), ngày trong tuần (DAY), ngày (DATE), tháng (MONTH) và năm (YEAR) Việc ghi giá trị vào 7 thanh ghi này cần được thực hiện một cách đồng bộ.
Khi khởi động RTC, việc đặt giá trị cho 7 thanh ghi là rất quan trọng để chip có thể hoạt động đúng cách Ví dụ, trong quá trình khởi động chương trình, chúng ta cần ghi giá trị vào thanh ghi "giây" để đảm bảo thời gian thực chính xác.
Sau khi thực hiện thao tác với thanh ghi, giá trị thu được là 54 Thanh ghi thứ 8 (CONTROL) điều khiển xung ngõ ra SQW/OUT (chân 6) Tuy nhiên, vì chân SQW/OUT không được sử dụng, nên có thể bỏ qua thanh ghi này.
SVTH : Nguy n H i Ph ng MSSV : 20662075
T ch c b nh c a DS1307 đ c trình bày trong hình
SVTH : Nguy n H i Ph ng MSSV : 20662075
Vì 7 thanh ghi đ u tiên là quan tr ng nh t trong ho t đ ng c a DS1307, chúng ta s kh o sát các thanh ghi này m t cách chi ti t Tr c h t hãy quan sát t ch c theo t ng bit c a các thanh ghi này nh trong hình
T ch c các thanh ghi th i gian
Thanh ghi giây (SECONDS) trong DS1307 là thanh ghi đầu tiên với địa chỉ 0x00 Bán bit thấp của thanh ghi này chứa mã BCD 4-bit cho giá trị giây, với giá trị cao nhất cho hàng đơn vị là 5.
60) nên ch c n 3 bit (các bit SECONDS 6:4) là có th mã hóa đ c (s 5 1, 3 bit) Bit cao nh t, bit 7, trong thanh ghi này là 1 đi u khi n có tên CH (Clock halt – treo đ ng h ), n u bit này đ c set b ng 1 b dao đ ng trong chip b vô hi u hóa, đ ng h không ho t đ ng Vì v y, nh t thi t ph i reset bit này xu ng 0 ngay t đ u
Thanh ghi phút (MINUTES): có đ a ch 01H, ch a giá tr phút c a đ ng h T ng t thanh ghi SECONDS, ch có 7 bit c a thanh ghi này đ c dùng l u mã BCD c a phút, bit 7 luôn luôn b ng 0
Thanh ghi gi (HOURS) trong DS1307 là thanh ghi phức tạp nhất, với địa chỉ 02H Bốn bit đầu của thanh ghi này được sử dụng để lưu trữ hàng đơn vị của giờ DS1307 hỗ trợ hai loại hệ thống hiển thị thời gian: 12 giờ và 24 giờ Bit 6 xác định chế độ hiển thị giờ; nếu bit 6 = 0, hệ thống 24 giờ được chọn, trong khi đó hai bit cao 5 và 4 sẽ mã hóa giá trị hàng chục của giờ.
Trong hệ thống mã hóa thời gian, giá trị nhỏ nhất của chữ số hàng chục là 2 (tương đương với 10 nhị phân), do đó, bit 5 và bit 4 là các bit mã hóa Khi bit 6 = 1, hệ thống 12h được kích hoạt, và trong trường hợp này chỉ có bit 4 mã hóa chữ số hàng chục của giờ, trong khi bit 5 (màu cam trong hình 4) biểu thị thời gian trong ngày, với bit 5 = 0 là AM và bit 5 = 1 là PM Bit 7 luôn bằng 0 Thanh ghi DAY (ngày trong tuần) có giá trị tối đa là 03H, với giá trị của thanh ghi DAY dao động từ 1 đến 7.
7 t ng ng t Ch nh t đ n th 7 trong 1 tu n Vì th , ch có 3 bit th p trong thanh ghi này có ngh a
SVTH : Nguy n H i Ph ng MSSV : 20662075
Các thanh ghi còn l i có c u trúc t ng t , DATE ch a ngày trong tháng (1 đ n 31),
Tháng được biểu thị từ 1 đến 12 và năm từ 00 đến 99 Lưu ý rằng DS1307 chỉ sử dụng cho 100 năm, vì vậy giá trị năm chỉ có 2 chữ số, phần đầu của năm do người dùng thêm vào (ví dụ: 20xx) Ngoài các thanh ghi trong bộ nhớ, DS1307 còn có một thanh ghi riêng gọi là thanh ghi địa chỉ (Address Register) Giá trị của thanh ghi này là địa chỉ của thanh ghi trong bộ nhớ mà người dùng muốn truy cập.
SVTH : Nguy n H i Ph ng MSSV : 20662075
BÀN PHÍM
G m 3 nút nhấn, chân 1 của các nút kết nối với port của vi điều khiển Khi cấp nguồn cho 89C51 và nhấn phím Reset, trạng thái chân port sẽ ở mức cao Khi một nút được nhấn, chân 1 kết nối với chân 2 và đưa điện áp xuống Mass, làm cho điện áp tại chân 2 bằng 0 Vi điều khiển nhận biết sự thay đổi này và thực hiện lệnh điều khiển các ngữ cảnh ngoài Nút thứ nhất có tác dụng thiết lập cho vi điều khiển hoạt động ở chế độ bình thường hoặc chế độ cài đặt thời gian Nút thứ hai dùng để tăng thời gian cần điều chỉnh, trong khi nút thứ ba dùng để giảm thời gian cần điều chỉnh.
SVTH : Nguy n H i Ph ng MSSV : 20662075
LED MATRIX
C GHI D CH 74HC595
IC 74HC595 là IC ghi d ch 8 bit, vào n i ti p ra song song v i m t thanh ghi l u tr (storage register) và đ u ra 3 tr ng thái
- 8 bit d li u ra n i ti p ho c song song
- Thanh ghi l u tr v i 3 tr ng thái ra
- Thanh ghi d ch v i xóa tr c ti p
• Xu t song song: đi u khi n bus
SVTH : Nguy n H i Ph ng MSSV : 20662075
- VCC: chân c p ngu n cho IC i n áp ngu n c p trong kho ng 2V- 5.5V
- MR : là chân Reset IC, tích c c m c th p (0) Khi đ a m c th p vào chân này thì IC s th c hi n vi c Reset, t t c đ u ra đ u v 0
- ST_CP: là chân nh n xung đ ng h cho thanh ghi l u tr
- SH_CP: là chân nh n xung đ ng h cho thanh ghi d ch
- OE : chân cho phép xu t d li u ra, tích c c m c th p Khi ho t đ ng chân này m c
0 Khi đ a chân này lên m c 1 các đ u ra s tr ng thái tr kháng cao
- DS: là chân nh n d li u n i ti p
SVTH : Nguy n H i Ph ng MSSV : 20662075
2.Nguyên t c ho t đ ng c a IC 74HC595
Khi chúng ta đưa một bit dữ liệu vào chân Ds và tác động vào chân shift clock (chân 11), bit dữ liệu này sẽ được đặt ra ngõ ra Q0 Khi tiếp tục đưa bit tiếp theo và tác động vào chân shift clock, bit trước đó sẽ được đặt vào chân Q1, và bit mới sẽ được đặt vào chân Q0 Quá trình này tiếp tục cho đến bit cuối cùng, và dữ liệu đầu ra luôn sẵn sàng Tuy nhiên, khi chân ST_CP (pin 12) được kích hoạt (mức 1), dữ liệu mới sẽ được xuất ra, và dữ liệu có thể được xuất ra bất kỳ lúc nào mà không cần quan tâm đến bit cuối cùng.
Dữ liệu được đưa vào chân Ds của IC sẽ được dịch chuyển theo xung nhịp, từ mức thấp (LOW) lên mức cao (HIGH), và được đưa vào chân SH_CP Dữ liệu này sẽ được lưu trữ trong thanh ghi khi có xung nhịp vào chân ST_CP Xung clock vào chân SH_CP phải xuất hiện trước khi xung vào chân ST_CP Mỗi xung clock vào ST_CP tương ứng với một bit dữ liệu vào chân Ds, với 8 xung đồng nghĩa với 8 bit dữ liệu được lưu trong thanh ghi Khi tín hiệu mức 0 được đưa vào chân /OE, 8 bit dữ liệu này sẽ được xuất ra 8 đầu song song Khi có 8 bit dữ liệu tiếp theo được dịch vào, 8 bit dữ liệu trước đó sẽ được dịch ra liên tiếp qua chân Q7’.
SVTH : Nguy n H i Ph ng MSSV : 20662075
Trong ch đ ho t đ ng bình th ng chân MR s n i v i d ng ngu n, /OE n i mass
Khi kết nối nhiều IC 74HC595 thành một mạch, các chân SH_CP và ST_CP của các IC cần phải nối với nhau và kết nối với nguồn xung nhịp Chân Ds của IC đầu tiên sẽ được nối với chân dữ liệu từ các IC khác, trong khi các IC tiếp theo sẽ được mắc nối tiếp với nhau.
Ds c a IC này n i v i chân Q7’ c a IC tr c đó
QA QB QC QD QE QF QG QH
QA QB QC QD QE QF QG QH C1 5
QA QB QC QD QE QF QG QH
QA QB QC QD QE QF QG QH
SVTH : Nguy n H i Ph ng MSSV : 20662075
*Gi n đ th i gian quá trình truy n d li u
SVTH : Nguy n H i Ph ng MSSV : 20662075
CH NG 6: THI T K PH N C NG
S KH I
SVTH : Nguy n H i Ph ng MSSV : 20662075
S L C V CÁC KH I
- Vi x lý 8051 là ph n t chính x lý các thông tin nh p vào và đ a ra các quy t đnh đi u khi n
- Phím là b ph n giao ti p ngo i vi, cho phép nh p các thông s b ng tay
- M ch hi n th , hi n th các giá tr đ t và giá tr đo
- M ch c m bi n dùng đ thu th p các giá tr nhi t đ và g i v cho b chuy n đ i x lý
- M ch chuy n đ i ADC dùng đ x lý tín hi u t ng t t b c m bi n g i v thành tín hi u s và đ a vào vi x lý đ x lý
- M ch đ ng h s RTC dùng đ thi t l p các giá tr th i gian và truy xu t d li u th i gian
- M ch công su t dùng đ khu ch đ i dòng cho m ch hi n th
S CHI TI T T NG KH I
SVTH : Nguy n H i Ph ng MSSV : 20662075
M ch n áp có đi n áp ngõ ra c đnh 5V s d ng IC n áp 7805( n áp d ng có đi n áp ngõ ra là 5V,dòng đi n ngõ ra đ n 1A)
Là ngu n cung c p chính cho 89C51 ho t đ ng nên ta c n ngu n n đnh do đó ta s d ng các t C1, C2, C3, C4 đ ch ng nhi u và l c ngu n đ ngu n cung c p luôn n đnh
IC nạp 7805 có khả năng cung cấp dòng điện tối đa 1A, đảm bảo đủ nguồn cho toàn bộ mạch mà không bị quá dòng Tuy nhiên, để IC hoạt động hiệu quả, cần phải kiểm soát nhiệt độ cho nó Khi thiết kế mạch, việc chú ý đến điều kiện hoạt động của IC là rất quan trọng.
Ch n th ch anh 12MHz đ t o ra chu k máy là 1us
Chu k máy (T M ) = 1/ t n s máy (f M ) = 1/ (f OSC /12) = 12/f OSC
SVTH : Nguy n H i Ph ng MSSV : 20662075
89C51 có th Reset b ng 2 cách:
- Reset b ng tay: b ng cách gi chân RST m c cao ít nh t trong 2 chu k máy và tr nó v m c th p
Reset tần số được thực hiện bằng cách sử dụng một mạch reset tần số khi có cấp nguồn cho một mạch R-C Nguyên lý hoạt động của mạch reset tần số là chân RST tích cực có mức cao và bình thường được giữ ở mức thấp thông qua điện trở R Mỗi khi mạch được cấp điện, trong một khoảng thời gian ngắn, dòng điện một chiều này sẽ chứa năng lượng (hay còn gọi là dòng quá độ) sẽ chạy qua tụ C và đi vào chân RST của 89C51, kích hoạt tín hiệu Reset Khi dòng điện đã ngừng, tụ C sẽ sạc lại và giữ chân RST ở mức cao.
Trong m ch trên thì ta s d ng ph ng pháp Reset b ng tay dùng nút nh n K t qu là s không có hi n t ng kh i đ ng l i máy khi đang s d ng
SVTH : Nguy n H i Ph ng MSSV : 20662075
2.Kh i khu ch đ i công su t: a.S đ nguyên lý:
SVTH : Nguy n H i Ph ng MSSV : 20662075
Trang 81 b.Tính toán m ch khu ch đ i dòng cho led ma tr n:
Khi sử dụng phương pháp quét cho LED matrix, ta thực hiện quét hàng, cho phép tối đa 32 LED sáng cùng lúc Mỗi LED tiêu thụ 20mA, do đó khi 32 LED cùng sáng, tổng dòng yêu cầu sẽ là 32 x 20mA = 640mA Với dòng yêu cầu này, vi điều khiển sẽ không đáp ứng đủ, vì hàng của LED matrix cần được nối với port của vi điều khiển Do đó, cần thiết phải nâng dòng cho LED matrix bằng cách sử dụng một mạch khuếch đại dòng.
Do yêu c u dòng c p cho led ma tr n l n 640mA nên ta ch n BJT có s hi u là 2SC1214 có các thông s sau:
Transistor lo i NPN : đi n áp c c C, V CBO = 50 (V), I C = 0.5 (A), P C = 0.6 (W)
Do dòng ngõ ra c a BJT l n, nh ng đi p áp cung c p nh nên ta ch n:
SVTH : Nguy n H i Ph ng MSSV : 20662075
3.Kh i c m bi n và chuy n đ i tín hi u: a.S đ nguyên lý: b.Tính toán các thành ph n c a m ch: ơ Kh i t o xung clock cho ADC0804 ho t đ ng:
Theo datasheet c a ADC0804 ta ch n R1 = 10kΩ, C1 = 150pF
Để ADC0804 hoạt động đúng, cần có tần số dao động riêng phù hợp Điểm nổi bật của ADC0804 là không cần lắp đặt dao động từ bên ngoài vì nó đã được tích hợp sẵn dao động bên trong Chỉ cần kết nối thêm một tụ và một đi-ốt vào chân 4 và chân 19 để hoàn thiện mạch.
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
SVTH : Nguy n H i Ph ng MSSV : 20662075
Theo nhà s n xu t thì R đ c dùng trong kho ng t vài kΩđ n vài ch c kΩ ử Ta ch n R = 10kΩ
Nh v y v i t n s dao đ ng chu n là 600kHz thì:
Khi đó t n s dao đ ng s là :
= = = ơ Kh i t o đi n ỏp tham chi u cho ADC0804:
ADC 0804 yêu cầu thiết lập "kích thước bước" (Step size) để chuyển đổi tín hiệu, và để thực hiện điều này, cần quy định điện áp tại chân Vref/2 Chân 9 là chân nhận điện áp đầu vào dùng cho điện áp tham chiếu, phụ thuộc vào tín hiệu tại chân 6 Với LM35, tín hiệu thay đổi 10mV cho mỗi 1 độ C, đây chính là tín hiệu đầu vào cho chân 6 của ADC 0804 Do đó, dựa vào mối quan hệ giữa điện áp Vref/2 và Vin, điện áp tham chiếu cho chân 9 được xác định.
Vref/2= 1.28 (V) khi LM35 thay đ i 1 o C thì t ng ng ADC 0804 s nh n bi t đ c s thay đ i m t kích th c b c đ chuy n đ i tín hi u
Vref/2 = 1.28 (V) ta có nhi u cách và s đ bên d i là s đ đ n gi n nh t:
Do ADC0804 đòi h i s n đnh đi n áp t chân Vref/2 này r t cao đ ADC0804 làm vi c m t cách chính xác nh t Do v y s đ bên d i có nh ng u khuy t đi m sau:
- u đi m: S đ đ n gi n, d thi t k và thi công
- Khuy t đi m: i n áp trên Vref/2 s thay đ i khi đi n áp ngu n thay đ i
SVTH : Nguy n H i Ph ng MSSV : 20662075
- Khuy t đi m: ph c t p h n so v i s đ trên
Ch n VD = 3V v i ID = 5 ÷ 10mA Ta có:
V y ta ch n R = 390 (Ω/0.25W) và dùng bi n tr offset 10kΩđ tinh ch nh cho
SVTH : Nguy n H i Ph ng MSSV : 20662075
4.Kh i đ ng h s RTC: a.S đ nguyên lý: b.Tính toán m ch t o xung clock cho DS1307:
Theo datasheet c a RTC DS1307 ta ch n 2 t C1, C2 có giá tr 33pF, ch n th ch anh có giá tr là 32.768KHz
Y 132.768Khz n tt nghip k sđin – đin tGVHD : ThS Tng Thanh Nhân
H : Nguyn Hi Phng MSSV : 20662075 Trang 86 hi bàn phím: đ nguyên lý: hi hin th: Sđ nguyên lý:
SVTH : Nguy n H i Ph ng MSSV : 20662075
Có 2 cách đ quét led ma tr n đó là quét led theo c t và quét led theo hàng:
Quét LED theo cách truyền thống gặp khó khăn khi sử dụng nhiều ma trận LED, vì thời gian quét toàn bộ các điểm LED sẽ kéo dài, dẫn đến việc không đáp ứng yêu cầu quét 24 hình/giây Do đó, khi số lượng điểm LED trong ma trận tăng lên, việc hiển thị hình ảnh sẽ bị gián đoạn, gây khó khăn trong việc thể hiện nội dung mượt mà trên màn hình LED.
Quét LED theo hàng giúp tiết kiệm thời gian quét, chỉ cần 8 hàng để truyền dữ liệu hiệu quả Khi một hàng sáng, dữ liệu đã được truyền xong, đảm bảo thông tin được cập nhật nhanh chóng Thời gian quét ngắn giúp hình ảnh hiển thị liên tục mà không bị gián đoạn, trong khi việc mở rộng băng LED khá đơn giản.
Trong dự án này, phương pháp quét LED được sử dụng là quét theo hàng, với dữ liệu được truyền qua 32 cột thông qua 4 IC ghi dịch 74HC595 Các IC này được kết nối nối tiếp, trong đó ngõ ra dữ liệu nối tiếp Qh của IC 74HC595 đầu tiên sẽ được kết nối với ngõ vào dữ liệu nối tiếp Ds của IC 74HC595 thứ hai, và quy trình này có thể tiếp tục cho các IC tiếp theo.
Nguyên lý hiển thị sử dụng 32 bytes RAM để quét LED, với địa chỉ từ 30H đến 4FH Việc hiển thị đơn giản là lấy 32 bytes RAM này để điều khiển ma trận LED Nội dung cần hiển thị sẽ được lưu trữ trong 32 bytes RAM này, cho phép ta dễ dàng quản lý và cập nhật thông tin cần hiển thị.
Khi sử dụng 4 ký tự A, B, C, D trên 4 đèn LED ma trận, chúng ta sẽ tạo ra bảng mã font cho từng ký tự Bảng mã này sẽ được lưu vào RAM tại các địa chỉ từ 30H đến 4FH Cụ thể, mã ký tự A sẽ được lưu tại các địa chỉ RAM từ 30H đến 37H, mã ký tự B từ 38H đến 3FH, mã ký tự C từ 40H đến 47H, và mã ký tự D từ 48H đến 4FH Sau khi đã lưu trữ dữ liệu cần hiển thị vào 32 bytes RAM, chúng ta sẽ thực hiện lệnh để hiển thị trên đèn LED ma trận.
B c 1: ta s l y 32 bit d li u đ u tiên c a vùng RAM n i 30H ÷ 4FH đ a vào IC
74HC595 theo nguyên t c là ta s l y t ng bit c a 32 bit d li u đ a vào chân Ds c a IC
74HC595 là một bộ dịch dữ liệu, cho phép truyền tải thông tin từ một nguồn dữ liệu tuần tự vào các chân đầu ra song song Khi đưa một bit vào chân dữ liệu (Ds) và kích hoạt chân đồng hồ dịch (Shift Clock), nó sẽ chuyển đổi dữ liệu tuần tự thành dữ liệu song song một cách hiệu quả.
Khi bit dữ liệu được đưa vào chân Q0, việc đưa bit tiếp theo vào và tác động vào chân shift clock sẽ khiến bit trước đó được đặt vào chân Q1, trong khi bit mới sẽ được ghi vào chân Q0 Quá trình này tiếp tục diễn ra cho đến khi tất cả các bit được truyền đi.
QA QB QC QD QE QF QG QH
QA QB QC QD QE QF QG QH
QA QB QC QD QE QF QG QH
QA QB QC QD QE QF QG QH
SVTH : Nguy n H i Ph ng MSSV : 20662075
B c 2: sau khi ta đã d ch đ 32 bit d li u đ u tiên, ta tích c c (m c 1) chân RCK (chân
12) thì 32 bit d li u đ u tiên s đ c xu t ra 32 c t c a led ma tr n
B c 3: ta s tích c c cho hàng đ u tiên c a led ma tr n sáng (do b ng mã font c a các ch cái là b ng mã m c th p, do đó ta s tích c c hàng m c cao đ làm sáng led)
B c 4: Ta sẽ sử dụng 32 bit dữ liệu từ hai vùng RAM nội và tích cực hàng thứ hai của LED ma trận Khi hoàn thành việc dịch đầy đủ 8 hàng của LED ma trận, chúng ta sẽ hiển thị các chữ cái trên LED ma trận.
SVTH : Nguy n H i Ph ng MSSV : 20662075
Sau 3 tháng làm việc, dự án "thiết kế và thi công mạch quang báo kết hợp hiển thị nhiệt độ và thời gian" đã hoàn thành với các nội dung yêu cầu như nhiệt độ, đồng hồ, mạch hiển thị rõ ràng Tuy nhiên, do phần mạch hiển thị còn hạn chế nên vẫn chưa đáp ứng được yêu cầu về thẩm mỹ Hy vọng nếu có thêm thời gian để tiếp tục phát triển, dự án sẽ hoàn thiện hơn Em xin chân thành cảm ơn các thầy cô trong Khoa Xây Dựng và thầy Tống Thanh Nhân – giáo viên hướng dẫn đã giúp đỡ em rất nhiều trong dự án này, một lần nữa em xin cảm ơn và chúc sức khỏe các thầy cô.
Mạch quảng báo có khả năng hiển thị thông tin và hình ảnh với nhiều hiệu ứng khác nhau, nhờ vào thời gian và kiến thức lập trình Nó có thể trình bày theo nhiều cách như từ trái qua phải, từ trên xuống hay từ dưới lên, tạo ra sự sinh động cho nội dung Bên cạnh đó, mạch quảng báo cũng có thể kết nối với máy tính để hiển thị thêm thông tin như giá vàng, tỷ giá đô la hay các chỉ số chứng khoán, giúp người xem cập nhật thông tin một cách nhanh chóng và tiện lợi.