Day Date Month Year Control O7h Rami8xs | 08h 3Fh e _ Thông tin về thời gian và ngày tháng được lấy ra bằng cách đọc các byte thanh ghi thích hợp , thời gian và ngày tháng cũng đ
Trang 1
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ
KHOA ĐIỆN - ĐIỆN TỬ
ĐỀ TÀI:
THIẾT KẾ VÀ THI CONG MACH
DIEU KHIEN MAY LANH CHO
TRAM BTS KHONG NGUOI TRUC
GVHD:Th S NGUYEN HUY HUNG SVTH : LƯU VĂN HẠNH
Trang 2NHIỆM VỤ LUẬN ÁN TỐT NGHIỆP
Chú ý : SV phải đồng bản nhiệm vụ này vào trang thứ nhất của luận án
¬ Ty Pct Me sa Hy macs Abita ame Lenk
2 Nhiệm vụ (Yêu cầu về nội dung và số liệu ban đầu) :
A
so + die ơi v4 ai liek Hee act 3: Duta aot At 04’ 2
oe CT 26 od” dade pli tr Pag Mlb We 26 be ECE
co Dung LCD.dsén d dop he, nguke mig fh Pet AB AS Ed IEE DB lay 5 Ml Gh ˆ
voto EN Meld Negi, ME th te librtn At DC Cheay và laf 2
sa iMag, Leh ce mi das plain C Góc hÁza ⁄( 264)
3 Ngày giao nhiệm vụ luận án : 3/40/2008
4 Ngày hoàn thành nhiệm vụ :2/4/ 2009
5 Họ tên người hướng dẫn : Phần hướng đẫn
—
a À0 su HH HH AT SH 2s2H
xxx BE eccseecssessssnstneessstvestisssiuneatiatien
svete Nội dung và yêu cầu LATN đã được thông qua NGƯỜI HƯỚNG ĐẪN CHÍNH
Ngày ⁄Otháng /O năm 200 (Ký tà ghỉ rô lọ tên)
Trang 4NHAN XET CUA GIAO VIEN PHAN BIEN
Trang 5
Chúng em xin chân thành cám ơn Quý Thầy Cô đã tận tình truyền đạt những
kiến thức mới và bổ ích cho chúng em, nhất là Quý Thầy Cô trong KHOA ĐIỆN
ĐIỆN TỬ đã giảng dạy trong suốt quá trình học tập cũng như trong thời gian thực hiện luận văn tốt nghiệp
Xin trân trọng cảm ơn Thầy NGUYÊN HUY HÙNG đã trực tiếp hướng dẫn em
hoàn thành tốt luận văn tốt nghiệp này
Xin cám ơn các bạn đã quan tâm và giúp đỡ
Xin cám ơn các bậc phụ huynh đã tạo mọi điều kiện về mặt tỉnh thần cũng như vật chất trong những năm học vừa qua
Sinh viên thực hiện:
LƯU VĂN HẠNH
Trang 6TI MUC DICH YEU CAU DE TAL .-c2cccc2E2zsecerccczce 2
HI Ý TƯỞNG THIẾT KẾ .-©222222E2Et222EEE2SE222252222E2Szserree 3
I,CO CHE HOAT ĐỘNG CỦA DS1307 -2-©22c+cczzcCCsecEssccrsrre 4
II,CAM BIEN NHIET DO DS1820 ccssssescsssscssseessscssssessssecessescssscesseee 12
TIT MAN HINH LCD TC1602A wuu cecsscscssesecssecsssecssscsssesssssesesscscsssessesee 19
TV,SO LUGC MCU AT89C5 1 .ccccccsssssssessssssesscscsscstssssessecsessussussesecencase 25
INHIỆM VỤ THIẾT KE eccccsscccsssssssssessesssesseesevecseessesssessssssecssecsessseee 54
H,SƠ ĐỒ KHÔI VÀ CHỨC NĂNG TỪNG KHỒI: : 54
II,THIẾT KÉ VÀ PHÂN TÍCH HOẠT ĐỘNG CỦA TỪNG KHÓI 54
IV,LƯU ĐỎ GIẢI THUẬTT 2- 2° ©+t+EEE+2EEE2EEEE2EEE2Execrzevrsea 57
V, SO DO NGUYEN LY? hvssscsscsssssssescsssssssscssssesscssssseeesssssssecessessssevesensssses 60
1, CHƯƠNG TRÌNH ĐIÊU KHIÊN: 2 2+©2+t+2EEevEExeeEEeccrscre 61
Trang 7PHAN A: GIOI THIEU
I DAT VAN DE
Ngày nay với sự phát triển của công nghiệp vi điện tử, kỹ thuật so, các hệ thống điều
khiển dần dần được tự động hóa Với những kỹ thuật tiên tiến như vi xử lí, vi mạch số
được ứng dụng vào linh vực điều khiến, thì các hệ thống điều khiển cơ khí thô SƠ,
với tốc độ xử lí chậm chạp ít chính xác được thay thế bằng các hệ thống điều khiển tự
động với các lệnh chương trình đã được thiết lập trước
Trong quá trình sản xuất ở các nhà máy, xí nghiệp hiện nay, việc đo và điều khiển
nhiệt độ tự động là một yêu cầu hết sức cần thiết và quan trọng Vì nếu nắm bắt được
nhiệt độ làm việc của các hệ thống, đây chuyền sản xuất .vv, giúp ta biết được tình
trạng làm việc của các yêu cầu Và có những xử lý kịp thời tránh được những hư hỏng
và sự cố có thể xảy ra
Để đáp ứng được yêu cầu đo và điều khiển nhiệt độ tự động, thì có nhiều phương pháp
để thực hiện,qua những năm học ở trường em thấy việc dung vi điều khiển AT89C51
vào việc đo và khống chế nhiệt độ tự động là phương pháp tương đối tốt Được sự
đồng ý của KHOA_ ĐIỆN ĐIỆN TỬ TRƯỜNG ĐẠI HỌC KĨ THUẬT CÔNG NGHỆ-
TPHCM Em tiến hành thực hiện đề tài " zhiết kế và thi công mạch điều khiền máy
lạnh trạm bís không người trực "
H MỤC DICH YEU CAU DE TAI
I.Muc dich:
Mục đích trước hết khi thực hiện đề tài này là để hoàn tất chương trình môn
học để đủ điều kiện ra trường
Nhằm đáp ứng được phần nào yêu cầu đo lường, khống chế và điều khiển
nhiệt độ ở các thiết bị máy móc trong sản xuất cũng như phục vụ cho nhu cầu học tập,
thí nghiệm của sinh viên
Trang 8Bên cạnh đó đề tài cũng để minh họa một trong nhiều ứng dụng của các hệ
thống điều khiển nhiệt độ thông minh trong thực tế như: Lò viba, bình nấu nước, hệ
thống sấy trong nông nghiệp
Cụ thể khi nghiên cứu thực hiện đề tài là chúng em muốn phát huy những thành quả ứng dụng của vi điều khiển nhằm tạo ra những sản
phẩm, những thiết bị tiên tiến hơn, và đạt hiệu quả sản xuất cao hơn
Mặt khác tập luận văn này cũng có thể làm tài liệu tham khảo cho những sinh
viên khóa sau Giúp họ hiểu rõ hơn về cách đo và điều khiển nhiệt độ thông qua máy
tính
Ngoài ra quá trình nghiên cứu thực hiện đề tài là một cơ hội để chúng em tự kiểm tra lại những kiến thức đã được học ở trường, đồng thời phát huy tính sáng tạo, khả năng giải quyết một vấn để theo yêu cầu đặt ra Và đây cũng là dịp để chúng em tự khẳng định mình trước khi ra trường để tham gia vào các hoạt động sản xuất của xã hội
2 Yêu cẩu:
° Đo được nhiệt độ hiện tại trên trạm và hiển thị trên LCD
° Tự động diều khiến hai máy lạnh trong giới hạn nhiệt độ yêu cầu
° Hiển thị thông tin về thứ ngày tháng, giờ phút giây
II, Ý TƯỞNG THIẾT KẺ
Trong phân thiết kế mạch điều khiển hai máy lạnh này em sử dụng 89c51 là khối điều
khiến trung tâm Day 1a IC ma em da được học lên viết phần mềm điều khiển cho IC
này sẽ thuận tiện hơn Phần cảm biến nhiệt độ em sử dụng DS1820 đây là IC rất nhạy với sự biến đổi của nhiệt độ, đặc biệt là khả năng chuyển trực tiếp nhiệt độ sang dạng
số mà không cần bộ chuyển đổi AD như khi ta dùng những loại cảm biến khác ví dụ như LM35 về thời gian em sử dung DS1307, đây là một IC thời gian thực với nguồn cung cấp nhỏ có khả năng tự điều chỉnh tháng và nhảy năm Khối hiển thị là LCD 1602
Trang 9Vcc: nối với nguồn
XI,X2: nối với thạch anh 32,768 kHz
Vbat: đầu vào pin 3V
GND: dat
SDA: chudi data
SCL: day xung clock
SQW/OUT: xung vuông/đầu ra driver
e DS 1307 là một IC thời gian thực với nguồn cung cấp nhỏ, dung để cấp nhất
thời gian và ngày tháng với 56 bytes SRAM Đỉa chỉ và dữ liệu được chuyền nối tiếp
trên hai đường bus 2 chiều Nó cung cấp thong tin về giờ phút giây ,thứ ngày tháng
năm Ngày cuối tháng sẽ tự động được điều chỉnh với các tháng nhỏ hơn 31 ngày, bao
gồm cả việc tự động nhảy năm đồng hồ có thể hoạt dộng ở chế dộ 24h hoạc 12h với
chỉ thị AM/PM DSI307 có một mạch cảm biến điện áp dung để đo điện áp nỗi và tự
động đóng ngắt với nguồn pin cung cấp
Trang 10
e DS1307 hoat d6ng v6i vai tro slave trén dudng bus nối tiếp Việc truy cập được
thi hành với chỉ thị Stare và một mã thiết bị nhất định được cung câp bởi địa chỉ của
các thanh ghi Tiếp theo đó các thanh ghi sẽ được truy cập lien tục đến khi chỉ thị
SFOP được thực thi
Sơ đồ khối của DS1307
Mô tả hoạt đông của các chân
e VCC, GND nguồn cung cấp được cung cấp tới các chân này Vcc là dầu vào 5v
khi 5v được cung cấp thì thiết bị có thể truy cập hoàn chỉnh và dữ liệu có thể đọc và
viết Khi pin 3V được nối với thiết bị này va Vcc nhỏ hơn 1.25Vbat thì quá trình đọc
và viết không được thực thi, tuy nhiên chức năng timekeeping không bị ảnh hưởng bởi
điện áp vào thấp Khi Vec nhỏ hơn Vbat thì RAM va timekeeper sé được ngắt tới
nguồn cung cấp trong (thuo7ng2 là nguồn 1 chiề 3V)
e Vbat đầu vào pin cho bất kì chuỗn pin 3V điện áp pin phải được giữ trong
khoảng 2.5 đến 3V để đảm bảo cho sự hoạt động của thiết bị
e SCL (serial clock input) SCL được sử dụng dễ đồng bộ sự chuyển đữ liệu trên
đường dây nối tiếp
Trang 11
6
————————_————————E
® SDAQserial data intpufoutput):là chân vào ra cho 2 đường dây nối tiếp, chân
SDA thiết kế theo kiểu cực máng hở, dòi hỏi phải có điện trở kéo lên khi hoạt động
® SQW\OUT(square wave/output drive):khi được kích hoạt thì bit SQWE được
thiết lập 1 ,chân SQW/OUT phát đi 1 trong 4 tần số (1hz, 4khz, 8khz, 32khz) Chân
này được thiết kế theo kiểu cực máng hở vì vậy nó cũng cần có một điện trở kéo trong
Chân này chỉ hoạt động khi cả Vcc và Vbat được cấp
e XI,X2 dược nối với một thạch anh tần số 32,76§khz Là một mạch để tạo đao
động ngoài,để hoạt động ổn định thì phải nối thêm hai tụ 33pF
e Cũng có DS1307 với bộ tạo dao động trong 32.786khz, thì chân 1 nối với cấu
hình này thì chân X1 nối vào tín hiệu dao động trong còn chân X2 đề hở
I1 Sơ đồ địa chỉ RAM và RTC
Trang 12Day Date Month Year
Control O7h
Rami8xs | 08h
3Fh
e _ Thông tin về thời gian và ngày tháng được lấy ra bằng cách đọc các byte
thanh ghi thích hợp , thời gian và ngày tháng cũng được thiết lập thông qua các byte
thang ghi này bằng cách viết vào đó các giá trị thích hợp, nọi dung của các thanh phi
dưới dạng mã BCID(binari coded decreaseimal).bit 7 của thanh ghi là seconds là bit
clock haH(CH) khi bit này được thiết lập 1 thì đao động disable, khi no x6a về 0 thì
dao động được enable.chú ý là phải enable dao động trong suất quá trình cấu hình
thiết lập(CH=0) Thanh ghi thời gian thục được mô tả như sau
e DS1307 có thể chạy ở chế độ 24h hoạc 12h bit thứ 6 của thanh ghi hour la bit
chọn chế độ 24h hoặc 12h, khi bit này ở mức cao thì chế độ 12h được chọn,ở chế độ
Trang 138
—_——————_—_——— Er EE———————— EEE EE EE————————EEEE
12h hti bit 5 là bít AM/PM, với mức cao là PM, ở chế độ 24h thi bit 5 1a bit 20h (từ
20h đến 23h)
e Trong quá trình truy cập dữ liệu, khi chỉ thị STARE được thực thi thì dòng
thời gian được chuyển đến thanh ghi thứ 2, thông tin thời gian sẽ được dọc từ thanh
ghỉ thứ cấp này, trong khi đó đồng hồ vẫn tiếp tục chạy
Trong DS1307 có một thanh ghi điều khiển dung dé diều khiển hoạt động của chân
¢ OUT(output control) bít này điều khiển mức ra cảu chân SQW/OUT khi đầu ra
xung vuông là disable Nếu SQWE =0 thì mức logic o chân SQW/OUT sẽ là 1 nếu
OUT= 1, và = 0 nếu OUT = 0
se SQWEGquare wave enable): bit này được thiết lập 1 sẽ enable đầu ra của bộ
tạo dao động tần số của đầu ra song vuông phụ thuộc vào gia tri cha RS1 va RSO
DS1307 hỗ trợ bus 2 dây 2 chiều và giao thức truyền dữ liệu,thiết bị gởi dữ liệu lên
bus được gọi là bộ phát và thiết bị nhận gọi là bộ thu Thiết bị điều khiển quá trình này
gọi là master Thiết bị nhận sự điều khiển của master gọi là slave Các bus nhận sự
điều khiển của master là thiết bị phát ra chuỗi xung clock(SCL), master sẽ điều khiển
sự truy cập bus tạo ra các chỉ thị START và STOP
Sự truyền nhận đữ liệu trên chuỗi bus 2 dây:
Trang 14tùy thuộc vào bit R/W mà 2 loại truyền dữ liệu sẽ được thực thi :
e_ Truyền dữ liệu từ master truyền và slave nhận :Master sẽ truyền byte dầu tiên
là địa chỉ của slave Tiếp sau đó là các byte dữ liệ slave sẽ giữ lại byte thong báo đã
nhận được(acknow ledge) sau mỗi byte dữ liệu nhận được , dữ liệu sẽ truyền từ byte
có gí trị lớn nhất (MSB)
° Truyền đữ liệu từ slave và master nhận : byte đầu tiên (địa chỉ của slave) được
truyền tới slave master , sau đó slave sẽ gửi lai master bit acknowledge tiép theo dé
slave sẽ gửi các byte dữ liệu tới master Master sẽ gửi cho slave cdc bit acknowledge
sau mỗi byte nhận được trừ byte cuối cùng , sau khi nhận được byte cuối cùng thì bit
acknowledge sẽ khog được gửi
Master phát ra tất cả cả các chuỗi xung clock và các chỉ thị START và STOP Sự
truyền sẽ kết thúc bởi chị thị STOP hoặc chỉ thị quay vòng START Khi chỉ thị
START quay vòng thì sự truyền chuỗi dữ liệu tiếp theo được thực thi và các bus vẫn
chưa được giải phóng Dữ liệu truyền luôn bắt đầu bang bit MSB
fo mone aytegane "slant CONDITION
Trang 1510
2 DS1307 có thể hoạt động ở 2 chế độ :
© Ché dé slave nhận (chế độ DS1307 ghi) chuỗi dữ liệu và chuỗi xung clock sẽ
dược nhận thong qua SDA va SCL Sau méi byte được nhận thì 1 bit acknowledge sẽ
được truyền các diều kiện START và STOP sẽ được nhận dạng khi bắt đầu kết thúc
truyền một chuỗi Nhận dạng điều kiện được thực hiện bởi phần cứng sau khi chấp
nhận địa chỉ của slave và bit chiều byte địa chỉ là byte đầu tiên nhận được sau khi điều
kiện START được phát ra từ master, byte
e địa chỉ có chứa 7 bit dịa chỉ của ds1307 là 1101000 tiếp theo đó là bit chiều
(R/W) cho phép ghi khi nó = 0 sau khi nhận và giải mã byte địa chỉ thì thiết bị sẽ phát
đi 1 tín hiệu acknowledge lên đường SDA Sau khi DS1307 nhận dạng được diều kiện
và bịt ghi thì master sẽ gửi 1 dịa chỉ thanh ghi tới DS1307 sau mỗi bit acknowledge
nhận được, sau d6 master sẽ truyền điều kiện STOP khi việc ghi hoàn thành
A~ ACKNOWLEDGE
DATA Thy a pened
P « BT0" (ist BYTES ì ACKNOMALEDGE
"BÀ « READWRITE OR DIRECTION err, ADORESE 2 DOn
° Ché d6 slave phat(ché d6 DS1307 doc): byte dau tién slave nhận được tương
tự như chế d6 slave ghi Tuy nhiên trong chế độ này thì bit chiều lại chỉ chiều truyền
ngược lại chuỗi dữ liệu được phat đi trên SDA bởi DS1307 trong khi chuỗi xung
clock vào chân SCL Các điều kiện START và STOP được nhận dạng khi bắt đầu hoặc
kết thúc truyền 1 chuỗi byte địa chỉ nhận được đầu tiên khi master phat đi điều kiện
START Byte dia chỉ chứa 7 bít địa chỉ của slave va 1 bit chiều cho phép đọc là 1 sau
khi nhận và giải mã byte địa chỉ thì thiết bị sẽ nhận 1 bít acknowledge trên đường
SDA Sau đó DS1307 bắt đầu gửi dữ liệu tới địa chỉ con trỏ thanh ghi thông qua con
trỏ thanh ghi, nếu con trỏ thanh ghi không được viết vào trước khi chế độ đọc được
Trang 16thiết lập thì địa chỉ đầu tiên được đọc sẽ là địa chỉ cuôi cùng chứa trong con trỏ thanh
ghi DS1307 sẽ nhận được 1 tin hiệu Not acknowledge khi kết thúc quá trình đọc
Đặc tính và thời gian thực hiện:
SCL Clock Bus Free Time Between a STOP and START i
triog
K
Trang 1712
II CAM BIEN NHIỆT ĐỘ DS1820
1, Các đặc tính kĩ thuật:
° Sử dụng giao điện một dây lên chỉ cần một chân ra để truyền thông
° Độ phân giải khi đo nhiệt độ là 9 bit Dai do nhiệt độ tir-55 °Cdén
125°C, từng bậc 0.5°C, có thể độ chính xác 0.1°C bằng việc hiệu chỉnh phần mềm
° Rất thích hợp cho việc đo lường đa điểm vì nhiều đầu đo có thể được
nối trên một bus, bus này gọi là bus một dây
° Không cần thêm linh kiện bên ngoài
° Điện áp nguồn nuôi có thể thay đổi trên khoảng rộng từ 3.0V đến 5.5V
một chiêu và có thể cấp trên đường dẫn đữ liệu
° Dòng tiêu thụ tại chế độ ghi cực nhỏ
° Thời gian lẫy mẫu và biến đổi số tương đối nhanh, không quá 200ms”
° Mỗi cảm biến có 1 mã định danh duy nhất 64 bit chúa trong bộ nhớ
ROM trên chip(on chip), giá trị nhị phân được khác bằng tia laze
2 DQ chân dữ liệu vào ra
3 VDD chân nối nguồn
Trang 183 Đặc điểm DS18s20:
Đầu đo nhiệt độ số DS1820 đưa ra số liệu để biểu thị nhiệt đô đo được dưới
dang mã nhị phân 9 bit Các thong tin được gửi dến và nhậ về từ DS1820 trên dao diện
1-wire, do đó chỉ cần hai đường dẫn gồm một đường cho tín hiệu và một đường nối
đât là đủ kết nối vi điều khiển đến điểm do Nguồn nuôi cho các thao tác đọc, ghi,
chuyên đổi có thể được trích từ đường tín hiệu, không cần có đường dây riêng để cấp
điện áp nguồn
Mỗi vi mạch đo nhiệt độ DS1820 có một mã số định danh duy nhất, được khắc
bang tia laser trong quá trình chế tạo vi mạch, nên nhiều vi mạch DS1820 có thể cùng
kết nối vào một bus- wire mà không có sự nhằm lẫn đặc điểm này làm cho việc lắp
đặt nhiều cảm biến nhiệt độ tại nhiều vị trí khác nhau trở lên dé dàng và chỉ phí thấp
Theo chuén 1- wite độ dài cho phép tối đa một bus là 300m số lượng cảm biến nối
vào bus không hạn chế
Để nâng cao độ phân giải lên trên 9 bit ta phải tính toán them bằng phần mềm
dựa trên các số liệu lưu trữ trên thanh ghi nhiệt độ, COUNT và COUNT PER°C trong
nhóm các thanh ghi nháp(scratchpad) Việc tính toán dựa theo phương trình sau
TEMPERATURE=TEMP_READ-4 25xCOUNT,PCR, 0 - COUNT REMAIN
Trang 19
14
—————————————— EE EEEE——————————————— EEE
4.Hoat đông đo nhiệt độ:
Chức năng cốt lõi của DS18s20 là trực tiếp biến dối nhiệt độ sang dang số cảm
biến nhiệt độ với 9 bit ngỏ ra, tương ứng với 0.5°C một bước để bắt đầu đo nhiệt độ
và chuyển đổi A- D trước tiên phải thực hiện lệnh biến đổi T[44h] sau khi chuyển đổi
các kết quả đữ liệu dược luu trong 2 byte thanh ghi nhiệt độ trong bộ nhớ
SCRATCHPAD và trở về trạng thái ngưng hoạt động sau khi thực hiện lệnh T
DS18s20 sẽ phản ứng bằng cách truyền bít ‘0’ trong khi đang trong tiến trình chuyển
đỏi nhiệt độ và bít “1? khi chuyến đổi đã được thực hiện ngõ ra của DS18s20 được
chia ở nhiệt độ bách phân
Bảng nhiệt dộ và mối quan hé dữ liêu:
Như vậy dãy mã dược chia thanh ba nhóm, trong đó:
Tám bít dầu tiên là mã định danh họ một đây, mã của DS1820 là 10h 48 bit tiếp
theo là mã xuất xuỏng duy nhất,nghĩa là mỗi cảm biến chỉ có một mã số duy nhất tám
bít có ý nghĩa nhất là byte kiểm tra CRC (cyclic redundancy check), byte này được
tính toán từ 56bit đầu tiên của dãy mã trên ROM
Để truy cập lên cảm biến một dây DS1820 ta phải sử dụng hai nhóm lệnh: các
lệnh ROM và các lệnh chức năng(function commands) bộ nhớ, các lệnh này có thé
mô tả ngắn gọn như sau:
Sau khi thiết bị chủ (thường là một vi diều khiển) phát hiện ra một xung
presence pulse, nó có thể xuất ra một lệnh ROM Có 5 loại lệnh ROM, mỗi lệnh dài 8
lược lưc
Trang 20bit Thiết bị chủ phải đưa ra lệnh ROM thích hợp trước khi đưa ra một lệnh chức năng
để giao tiếp vói cảm biến DS1820
Lénh ROM
e READ ROM (33h)
Cho phép doc ra 8 byte ma đã khắc trên ROM bang tia laze bao gom : 8 bit ma
định tén linh kién(10h), 48 bit số xuất xưởng, 8 bit kiểm tra CRC Lệnh này chỉ sử
dụng khi trên bus chỉ có một cảm biến DS!820, nếu không sẽ xảy ra xung dot tren
bus, do tất cả các thiết bị tớ cùng đáp ứng
e MATCH ROM (55h)
Lệnh này dược gửi đi cùng 64 bit ROM tiếp theo, lệnh này cho phép bđiều
khiển chỉ chọn ra một cảm biến DS1820 cụ thể khi trên bus có nhiều cảm biến cùng
nối vào Chỉ có DS1820 nào có 64 bit trên ROM trùng khớp với chuỗi 64 bit vừa
được gừi tới mới đáp ứng lại các lệnh về bộ nhớ tiếp theo Còn các cảm biến DS1820
có 64 bit ROM không trùng khớp sẽ tiếp tục chờ mo0t65 xung resets Lệnh này được
sử dụng trong trường hợp chỉ có một cảm biến và cả trong trường hợp có nhiều cảm
biến
e SKIP ROM (CCh)
Lệnh này cho phép thiếy bị điều khién truy nhap thang dén cdc lénh b6 nhé
của DS1820 ma không cần gửi chuỗi mã 64 bit ROM Như vậy sẽ tiết kiệm dược
thời gian chờ đọi, nhưng hiệu quả khi trên bus chỉ có một cảm
e SEARCH ROM (F0h)
Lệnh này cho phép bộ diều khiển bus có thể dò tìm được số lượng thành viên
tớ đang dược dấu vào bus và các giá trị cụ thể trong 64 bit ROM của chúng bằng
một chu trình dò tìm
e ALARM SEARCH (ECh)
Tiến trình của lệnh này giống như lệnh SEARCH ROM , nhưng cảm biến
DS1820 chỉ đáp ứng lệnh này khi xuất hiện điều kiện cảnh báo trong phép đo nhiệt
độ cuối cùng Điều kiện cảnh báo ở đây dược định nghĩa là giá trị nhiệt dộ lớn hơn
Trang 2116
Es
giá tri TH và nhỏ hơn giá trị TL là hai giá trị nhiệt độ cao nhất và thấp nhất đã được
đặt trong thanh ghi trong bộ nhớ của cảm biến
Lệnh chức năng bô nhớ
Sau khi thiết bị chủ (thường là một vi điều khiển) sử dụng các lệnh ROMI để
định địa chỉ cho cảm biến DS1820 đang được đấu vào bus , thiết bị chủ sẽ đưa ra các
lệnh chức năng DS1820 bằng các lệnh chức năng thiết bị chủ có thể ghi vào hoặc
đọc ra giá trị từ bộ nhớ nháp (scratchpath) của cảm biến DS1820 khởi tạo quá trình
chuyển đổi nhiệt độ đo được và xác định chế độ cung cấp điện áp nguồn các lệnh
chức năng có thể được mô tả ngắn gọn như sau:
e WRITE SCRATCHPAD(4Eh)
Lệnh này cho phép ghi 2 byte dữ liệu vào bộ nhớ nháp của DS1820 byte đầu
tiên được ghi vào thanh ghi TH (byte 2 của bộ nhớ nháp) còn byte thứ hai được ghi
vào thanh ghi TL (byte 3 của bộ nhớ nháp) Dữ lieu truyền theo trình tự đầu tiên là
bít có ý nghĩa lớn nhất và kế tiếp là bit có y nghĩa giảm dần cả 2 byte này phải được
ghỉ trước khi thiết bị chủ xuất ra xung reset hoặc khi có đữ liệu khác xuất hiện
e READ SCRATCHPAD (BEh0
Lệnh này cho phép thiết bị chủ đọc nội dung trong bộ nhớ nháp Quá trình đọc bắt dầu từ bít có ý nghĩa nhất của byte 0 và tiếp tục cho đến byte thứ 9
(byte8- CRCO0 thiết bị chủ có thể xuất ra một xung reset dể làm dừng quá trình
đọc bắt kì lúc nào nếu như chỉ có một phần của dữ liệu trên bộ nhớ nháp cần
Lệnh này khởi dộng quá trình đo và chuyển đổi giá trị thành số (nhị
phân) sau khi chuyển đổi giá trị kết quả đo nhiệt độ được lưu trữ trên thanh
ghi nhiệt độ 2 byte trong bộ nhớ nháp Thòi gian chuyển đổi không quá 200
Trang 22ms, trong thời gian đang chuyền đổi nếu thực hiện lệnh đọc thì các giá trị đọc
được đều bằng 0
SCRATCHPAD (FOWER-UP STATE) Byie O | Terperatere LSB aan asey Byte 1 | Tempanten MSB Go 9” EEPROM Byie 2 | Ty Register or Loser Byres 1° ot User Byie 3 | Ty Register or User Byte 2° or User Byis 4 | Reserved (FF ID
fie F | Reserved FFh) Byie 6 | COUNT REMAIN (OC hi Bye 7] COUNT PER PC 410tG fee 8 | CRC?
hy dapends on viet aerad in EP RGA
Tất cả truyền thông với DS1820 bắt đầu bằng một sự tiếp tục khởi tạo gồm có xung
reset từ người điều khiến từ xung hiện thời của DS1820 Điều này được minh hoạ ở
atoms acme
<i Wale AMMO BG im
CC ee xôn m*_,,
Khi cam bién DS1820 gửi một xung hiện tại khi có một xung reset, nó báo cho
người điều khiển bus đã chuẩn bi và thiết bị đã sẵn sàng Trong thời gian tiếp tục khới
tạo quá trình người điều khiển truyền xung TX bằng việc kéo bus một dây mức thấp
trong thời gian nhỏ nhất là 480us Người điều khiển sau đó giải phóng bus và đưa ra
mã nhận dạng RX Khi mà bus được giải phóng, điện trở kéo lên pullup 5K đưa bus
một dây lên mức cao Khi DS1820 phát hiên ra cạnh lên, nó đợi trong khoảng thời
Trang 2318
aS
gian từ 15 - 60us và sau đó truyền một xung tín hiệu đến để đưa bus một dây về mức
thấp trong khoảng từ 60 -240 us
" Ghưđọc thời gian nghỉ:
Người điều khiển viết dữ liệu cho DS1820 trong suốt thời gian viết và đọc đữ
liệu từ DS1820 trong suốt thời gian đọc Một bit của dữ liệu thì được truyền qua bus
một dây trong những rãnh thời gian
Cách viết thời gian nghỉ:
Có hai cách viết cho những thời gian nghỉ: viết tín hiệu mức 1 cho thoi gian
nghỉ và mức 0 cho thời gian nghỉ Người điều khiển sử dụng viết tín hiệu 1 cho ghi tín
hiệu mức 1 cho DS1820 và sử dụng viết tín hiệu 0 cho ghi tín hiệu mức 0 cho DS1820
tất cả các thời gian nghỉ có thời gian thấp nhất là 60us và thới gian thấp nhất giữa các
thời gian nghỉ' là 1 us Tiến hành thời gian nghĩ', sau khi đưa bus một dây xuống mức
thấp, người điều khiển phải giải phóng bus một dây trong thời gian 15 us Khi bus
được giải phóng thì điện trở kéo lên pullup 5K sẽ đưa bus lên lại mức cao.trong thời
gian viết tín hiệu 0, sau khi kéo bus một dây xuống mức thấp, người điều khiển phải
tiếp tục giữ bus thấp trong khoảng thời gian của thời gian nghỉ (ít nhất là 60 us) Nếu
bus ở mức cao trong suốt thời gian lấy mẫu tín hiệu, tín hiệu mức 1 duoc phi vào
DS1820 nếu bus ở mức thấp thì tín hiệu mức 0 được ghi vào DS1820
" Cách đọc thời gian nghỉ:
Ds1820 có thể chỉ truyền dữ liệu đến người điều khiển khi có những vấn đề trên
thời gian nghỉ Bởi vậy người điều khiển phải tiến hành đọc thời gian nghỉ ngay
lập tức sau khi tiến hành đọc bộ nhớ nháp (BEh) hay lệnh cấp nguồn (44h) để DS1820
có thể cung cấp đữ liệu yêu cầu Ngoài ra người điều khiển có thể tiến hành đọc thời
gian nghỉ sau khi chuyển đội T (44h) hoặc lệnh gọi E2 (B8h) để tìm ra tình trạng thao
tác Tất cả khi đọc thời gian nghỉ phải thấp nhất là 60 us với thời gian khôi phục thời
gian nghĩ thấp nhất là 1 us Thời gian đọc thời gian nghỉ bắt đầu khi người điều khiển
kéo bus một dây xuống mức thấp trong thời gian thấp nhất là lus sau đó giải phóng
bus Sau khi người điều khiển bắt đầu đọc thời gian nghỉ' DS1820 sẽ bắt đầu phát tín
Trang 24hiệu mức 1 hay 0 dén bus DS1820 truyén tin hiệu mức 1 để đưa bus lên mức cao va 0
để đưa bus về mức thấp Khi truyền đi mức 0 thì DS1820 sẽ giải phóng bus khỏi thời
gian nghỉ và bus sẽ được kéo về lại mức cao nhờ điện trở kéo lên Dữ liệu đầu ra của
DS1820 kéo đài 15us sau khi cạnh lên tác động thời gian nghỉ Bởi vậy người điều
khiển phải giải phóng bus và sau đó lấy mẫu bus trong 15us từ khi bắt đầu nghỉ
Sơ đồ tính toán ghi/đọc thời gian nghỉ:
semen ‘hi pee ‘ae
- LCD 1602 là một module hiển thị bằng tỉnh thể lỏng, với định dạng kí tự ma trận
điểm, được sản xuất theo công nghệ COMS năng lượng thấp, có thể hiển thị 16 kí tự
trên một hàng, và 32 kí tự trên hai hàng, với độ phân giải tới 5x8 điểm/kí tự Có thể
giao tiếp với vi điều khiển qua bus 4 bits hoặc 8 bits
Trang 25
20
Sơ đồ cấu trúc bên trong của LCD 1602
- Trong LCD 1602, gồm hai module chính là module điều khiển và module hiển thị,
module điêu khiển thu nhận những tín hiệu điều khiển từ vi điều khiển bên ngoài, lưu
trữ , xử lý và thực hiện kích cho màn hình hiển thị
" Sơ đô chân kết nôi:
Trang 26và đặc tính của các chân như sau:
VỊ | Kíhiệu | Tên Mô tả
trí chân
3 VEE |NguồnchoLCD | Phân áp thúc cho LCD
4 RS Lựa chọn thanh | Đầu vào lựa chọn thanh phi
ghi
6 E Cho phép Tín hiệu cho phép đọc hay
viết dữ liệu
7 DBO Bus dif liéu 0-7 Trong chế độ giao tiếp 8 bit,
Bit 7 còn được dùng làm bit
2 Té chire bén trong va hoat dong
-Hoạt động của 2 chân RS và RW:
Trang 270 0 Hoạt động ghi lệnh(Vi điều khiển viết mã
lệnh vào thanh ghi lệnh (IR))
0 1 Đọc cờ báo bận (DB7) và bộ đếm địa chỉ
1 |0 _ | Hoạt động ghi dữ liệu (VĐK ghi dữ liệu vào
thanh ghi dữ liệu (DR))
1 1 Hoạt động đọc dữ liệu
Cờ báo bận (BE): khi RS = 0 và RW = 1, cờ BF được xuất ra qua chân DB7, nếu BE =
1: LCD đang trong quá trìh xử lý các lệnh hay đang bận Các hoạt động khác không
được tiếp nhận Khi BF = 0, LDC đã sẵn sàng tiếp nhận lệnh
- Bo nhé hién thị đữ liệu (DDR): bộ nhớ DDR có dung lượng 80x8 bits có nghĩ
là có thể lưu 80 kí tự Dữ liệu từ DDR được truy cập bởi bộ đếm địa chỉ AC Mô hình
địa chỉ của DDR như sau:
Bộ đếm địa chỉ (AC) : bộ đếm địa chỉ lưu địa chỉ của DDR và CGR, được truy
cập từ TR, sau mỗi lần đọc hay viết đữ liệu, AC tự động tăng lên 1
- Bộ nhớ phát kí tự chỉ đọc (CGROM): bộ nhớ này chứa tổng cộng 192 kí tự cố
định, bao gồm các kí tự trong bang ma ASCII
- Bộ nhớ phát kí tự người dùng (CGRAM): Đây là bộ nhớ lưu những đữ liệu về
các kí tự đặc biệt, được định nghĩa trước bởi người dùng
Trang 28C Lưu đồ chương trình con khởi tạo LCD:
Trang 2924
Day là lưu đồ khởi tạo mà nhà sản xuất LCD khuyến cáo Khới đầu chương
trình khởi tạo bằng lệnh gọi trì hoãn 20ms nhằm đảm bảo điện áp cung cấp cho LCD
đã lên đủ Hai lần liên tiếp đưa xuất lệnh giống nhau qui định chế độ giao tiếp 8 bit
nhằm đồng bộ chương trình của vi điều khiển với chế độ giao tiếp của LCD
-_ Khi LCD và vi điều khiển ở chế độ nguồn lên, LCD đang ở chế độ nguyên thủy,
chưa được khởi tạo Do đó, hai lệnh này sẽ thực hiện thiết lập LCD ở chế độ giao tiếp
8 bit Sau đó, lệnh qui định chế độ giao tiếp 4 bit được gởi tiếp theo tới LCD, sẽ thiết
lập chế độ giao tiếp 4 bit cho LCD
- _ Khi LCD đang hoạt động ở chế độ 4 bit, vì một lý do nào đó, vi điều khiển phải
Reset lại chương trình, lúc này, LCD vẫn đang ở chế độ 4 bit Do đó, hai lệnh này sẽ
tương đương với 1 lệnh nhập ở chế độ 4 bit Và chúng sẽ
thiết lập LCD hoạt động ở chế độ 8 bit Sau đó, LCD lại được trả về giao tiếp ở chế độ
4 bit nhờ lệnh tiếp theo sau
- - Vậy, hoạt động giao tiếp của LCD sẽ không bị xung đột khi nguồn lên và khi Reset
LCALL COMMAND ;Thuc hién lệnh
MOV A,#0EH ;Bật hiến thị nhấp nháy con trỏ
Trang 30LCALL READY ;Kiem tra co ban neu san sang
MOV P0,A ;thi chuyen ma lenh ra cong PO
CLR RS ;RS =0 Cho xuat
CLR RW ;RW = O De gi lenh toi LCD
SETB EN ;Chan E nhan duoc mot xung cao
CLR EN ;xuong thap cho phep LCD chot lenh
RET
Hàm này dùng điều khiển cho LCD thự hiện các chân cho phép khi các chân này cho
phép thì LCD bắt da lay dữ liệu ra để hiển thị
IV,SƠ LƯỢC MCU AT89C5I1
1 Giới thiệu khái quát về họ IC MCS-51TM
MCS-51 là một họ IC vi điều khiển do Intel phát triển và sản xuất Một số nhà
sản xuất được phép cung cấp các IC tương thích với các sản phẩm MCS-51 của Intel
là Siemens, Advanced Micro Devices, Fujitsu, Philips, Atmel
Các IC của họ MCS-51I có các đặc trưng chung như sau:
" 4 port I/O 8 bit
Giao tiếp nối tiếp
64K không gian bộ nhớ chương trình mở rộng
64K không gian bộ nhớ dữ liệu mở rộng
Một bộ xử lý luận lý (thao tác trên các bit đơn)
" 210 bịt được địa chỉ hóa
" Bộ nhân/chia 4 s
Trang 31
26
bh EEE
Ngoài ra, tùy theo sô hiệu sản xuât ma chúng có những khác biệt vê bộ nhớ và bộ định
thời/bộ đếm như trong bảng so sánh dưới đây:
Số hiệu sản |Bộ nhớ chương |Bộ nhớ dữ liệu | Số bộ định thời
2 Giới thiệu AT§9C51
AT89C5I là một Microcomputer 8 bit, loại CMOS, có tốc độ cao và công suất
thấp với bộ nhớ Flash có thể lập trình được Nó được sản xuất với công nghệ bộ nhớ
không bay hơi mật độ cao của hãng Atmel, và tương thích với chuẩn công nghiệp của
80C51 và 80C52 về chân ra và bộ lệnh Vì lý do đó, kể từ đây về sau ta sẽ dùng thuật
ngữ "§0C51" (hoặc "8051")
Trang 32
EXT Yee cot, | RESRTER
RET
PORT 1 POAT 3 LATCH LATCH
+ 128 x § bit RAM nội
+ 32 đường xuất-nhập lập trình được (tương ứng 4 port)
Trang 33
28
———————&——E&———EE=&&———————————————————— EEE EEE
+ Hai timer/counter 16 bit
+ Mach đồng hồ và bộ dao động trên chip
" Cấu hình chân của AT§9C51 như sau:
t 40
30p
Trang 34Như vậy AT§9C51 có tất cả 40 chân Mỗi chân có chức năng như các đường
I/O (xuat/nhap), trong đó 24 chân có công dụng kép: mỗi đường có thể hoạt động như
một đường I/O hoặc như một đường điều khiển hoặc như thành phần của bus địa chi
Port 0 là một port xuất/nhập song lưỡng cực máng hở 8 bit Nếu được sử dụng
như là một ngõ xuất thì mỗi chân có thể kéo 8 ngõ vào TTL Khi mức 1 được viết vào
các chân của port 0, các chân này có thể được dùng như là các ngõ nhập tống trở cao
Port 0 có thể được định cấu hình để hợp kênh giữa bus địa chỉ và bus dữ liệu (phần
byte thấp) khi truy cập đến bộ nhớ đữ liệu và bộ nhớ chương trình ngoài Ở chế độ
này, P0 có các điện trở pull up bên trong
Port 0 cũng nhận các byte code (byte mã chương trình) khi lập trình Flash, và xuất ra
các byte code khi kiểm tra chương trình Cần có các điện trở pull up bên ngoài khi
thực hiện việc kiểm tra chương trình
"Port 1
Port 1 là một port xuất/nhập song hướng 8 bit có các điện trở pull up bên trong
Các bộ đệm ngõ ra của port 1 có thể kéo hoặc cung cấp 4 ngõ nhập TTL Khi mức 1
được viết vào các chân của port 1, chúng được kéo lên cao bởi các điện trở pullup nội
và có thể được dùng như là các ngõ nhập Nếu đóng vai trò là các ngõ nhập, các chân
của port 1 (được kéo xuống thấp qua các điện trở bên ngoài) sẽ cấp dòng IIL do các
điện trở pullup bên trong
" Port2
Port 2 là một port xuất/nhập song hướng 8 bít có các điện trở pullup bên trong
Trang 3530
fe
Các bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4 ngõ vào TTL Khi các mức 1 được viết vào các chân của port 2 thì chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng như các ngõ vào Khi được dùng như các ngõ vào, các chân của port 2 (được kéo xuống qua các điện trở bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên trong
Port 2 phát ra byte cao của địa chỉ khi đọc từ bộ nhớ chương trình ngoài và khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 16 bit MOVX @DPTR) Trong ứng dụng này, nó dùng các điện trở pullup nội "mạnh" khi phát ra các mức 1 Khi truy cập
bộ nhớ dữ liệu ngoài dùng các địa chỉ 8 bít (MOVX @RI), port 2 phát ra các nội dung của thanh ghi chức năng đặc biệt P2
Port 2 cũng nhận các bit cao của địa chỉ và một vài tín hiệu điều khiển khi lập
trình và kiểm tra Flash
" Port 3 Port 3 là một port xuất-nhập song hướng 8 bit có điện trở pullup nội bên trong
Các bộ đệm ngõ ra của port 3 có thể kéo hoặc cung cấp 4 ngõ vào TL Khi các mức 1 được viết vào các chân của port 3 thì chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng như các ngõ vào Khi được dùng như các ngõ vào, các chân của port 3 (được kéo xuống qua các điện trở bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên trong
Port 3 cũng cung cấp các chức năng của các đặc trưng đặc biệt như được liệt kê
dưới đây:
Chân Tên Các chức năng chuyển đổi
P3.1 TXD Port xuất nối tiếp
P3.4 T0 Ngõ vào Timer/Counter 0 P3.5 T1 Ngõ vào Timer/Counter 1
P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài
Trang 36
Các chức năng chuyền đổi trên Port 3
" RST (chân 9)
Ngõ vào reset Một mức cao trên chân này khoảng hai chu kỳ máy trong khi bộ dao
động đang chạy sẽ reset thiết bị
" ALE/
ALE là một xung ngõ ra để chốt byte thấp của địa chỉ trong khi truy cập bộ nhớ
ngoài Chân này cũng là ngõ nhập xung lập trình ( ) khi lập trình Flash
Khi hoạt động bình thường, ALE được phát với một tỷ lệ không đổi là 1/6 tan
số bộ dao động và có thể được dùng cho các mục đích timing và clocking bên ngoài
Tuy nhiên, lưu ý rằng một xung ALE sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu
ngoài
Nếu muốn, hoạt động ALE có thể cắm được bằng cách set bit 0 cia SFR tai dia
chi 8Eh Néu bit này được set, ALE chỉ được hoạt động khi có một lệnh MOVX hoặc
MOVC Ngược lại, chân này được kéo lên cao bởi các điện trở pullup "nhẹ" Việc set
bit cim ALE không có tác dụng khi bộ vi điều khiển đang ở chế độ thi hành ngoài
PSEN (Program Store Enable) là xung đọc bộ nhớ chương trình ngoài Khi
AT89C52 đang thị hành mã (code) từ bộ nhớ chương trình ngoài, được kích hoạt hai
lần mỗi chu kỳ máy, nhưng
hai hoạt động sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài
" /Vpp
(External Access Enable) phải được nối với GND để cho phép thiết bị đọc code từ bộ
nhớ chương trình ngoài có địa chỉ từ 0000H đến FFFFH Tuy nhiên, lưu ý rằng nếu bit
khoá 1 (lock-bit 1) được lập trình, sẽ được chốt bên trong khi reset
phải được nối với Vcc khi thi hành chương trình bên trong Chân này cũng
nhận điện áp cho phép lập trình Vpp=12V khi lập trình Flash (khi đó áp lập trình 12V
được chọn)
Trang 37
32
—————————————————_————EE————————————————EEoxoxo*xo]EEEEe
" XTALI và XTAL2
XTALI và XTAL2 là hai ngõ vào và ra của một bộ khuếch dai dao động nghịch
được cấu hình để dùng như một bộ dao động trén chip
Không có yêu cầu nào về duty cycle của tín hiệu xung ngoài, vì ngõ nhập nối với mạch
tạo xung nội là một flip-flop chia đôi, nhưng các chỉ định về thời gian high và low, các
mức áp tôi đa và tối thiểu phải được tuân theo
#' S5 gym c6 7 ©oscitlator Connections
Notes: (71 C2 « 3O pF ct 10 pF for Crystals
= <hO pd ch 1 pF for Ceramic Resonators
Các đặc trưng khác sẽ được trình bày một cách chỉ tiết hơn ở những phần tiếp theo sau
đây
3 Tổ chức bộ nhớ
AT§9C51 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho
chương trình và dữ liệu Như đã nói ở trên, cả chương trình và dữ liệu có thể ở bên
trong; dù vậy chúng có thể được mở rộng bằng các thành phần ngoài lên đến tối đa 64
Kbytes bộ nhớ chương trình và 64 Kbytes bộ nhớ dữ liệu
Bộ nhớ bên trong bao gồm ROM và RAM trên chip, RAM trên chip bao gồm
nhiều phần : phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bịt, các bank thanh
ghi và các thanh ghi chức năng đặc biệt
Trang 38Hai đặc tính cần lưu ý là :
Các thanh ghi và các port xuất nhập đã được xếp trong bộ nhớ và có thể được truy
xuất trực tiếp giống như các địa chỉ bộ nhớ khác | Ngăn xếp bên trong RAM nội nhỏ hơn so với RAM ngoài như trong các bộ vi xử
ly khác
"_ Chỉ tiết về bộ nhớ RAM trên chip:
Địa chỉ Dia chi bit Bia chi Dia chi bit
28 |47]46 |45 |44|43 |42 |41 |40 99 dudc dia chi héa bit} SBUF
27 |3F|3E/3D]3C |3B/3A]39 [38 98 9E|9D Al99|98| SCON
26 |37|36|35|34|33|32|31|30
25 |2F|2E|2D|2C|2B|2A|29 |28 90 96 |95 |94 |93 |92|91|90| PI
23 |IF|IE|IDHCIBILA|19|18 8 chỉ hóa bit| THỊ |
22 |17I16|15|14|13|12|11]10 § được dia chi héa bit} THO
21 |0F|0E|oD|oC|0B|oA |09 |08 8 dude dia chi héa bit} TL!
20_ |07|06 |05 |04 |03 |02 |07 |00 § chỉ hóa bit| TL0
18 88 8E|SD|SC |8B|8A|S9 |88| TCON
OF Bank 1 83 dudc dia chi héa bit] DPH
07 Bank thanh ghi 0 81 ¡a chỉ hóa bit| SP
00 Í (mặc định cho RO-R7) 80 86 |85 184 [83 182 |81 1/80] P0
RAM CÁC THANH GHI CHỨC NĂNG ĐẶC
Trang 3934
Như ta thấy trên hình , RAM bên trong ATS9C51 được phân chia giữa các bank thanh ghi (00H-IFH), RAM địa chỉ hóa từng bit (20H-2FH), RAM da dung (30H- 7FH) và các thanh ghi chức năng đặc biệt (80H-FFH)
3.1 RAM đa dụng
Mặc dù trên hình cho thấy 80 byte RAM đa dụng chiếm các địa chỉ từ 30H-7FH,
32 byte dưới cùng từ 00H đến IFH cũng có thể được dùng với mục đích tương tự (mặc
Lệnh này di chuyển 1 byte đữ liệu dùng cách đánh địa chỉ trực tiếp để xác định
"địa chỉ nguồn" (5FH) Đích nhận dữ liệu được ngầm xác định trong mã lệnh là thanh ghi tích lũy A
RAM bên trong cũng có thể được truy xuất dùng cách đánh địa chỉ gián tiếp qua R0
hay R1 Ví dụ, hai lệnh sau thi hành cùng nhiệm vụ như lệnh đơn ở trên
" Tóm tắt các vùng bộ nhớ của 8051
Trang 40
MOV RO, #5FH
MOV A,(@R0
Lệnh đầu dùng địa chỉ tức thời để di chuyền giá trị SFH vao thanh ghi RO, va
lệnh thứ hai dùng địa chỉ trực tiếp để di chuyến dữ liệu "được trỏ bởi R0" vào thanh
ghi ti
3.2 RAM dia chỉ hóa từng bít
8051/8031 chứa 210 bít được địa chỉ hóa, trong đó 128 bít là ở các địa chi byte
20H đến 2FH, và phần còn lại là trong các thanh ghi chức năng đặc biệt
Ý tưởng truy xuất từng bit riêng rẽ bằng phần mềm là một đặc tính tiện lợi của
vi điều khiển nói chung Các bit có thể được đặt, xóa, AND, OR, với một lệnh đơn
Đa số các vi xử lý đòi hỏi một chuỗi lệnh doc-stra-ghi dé dat duoc hiệu quả tương tự
Hơn nữa, các port L/O cũng được địa chỉ hóa từng bít làm đơn giản phần mềm xuất
nhập từng bít
Có 128 bit được địa chỉ hóa đa dụng ở các byte 20H đến 2FH Các địa chỉ này
được truy xuất như các byte hoặc như các bit phụ thuộc vào lệnh được dùng Ví dụ, để
đặt bịt 67H, ta dùng lệnh sau :
SETB 67H
Chú ý rằng "địa chỉ bit 67H" là bit có trọng số lớn nhất (MSB) ở "địa chỉ byte
2CH" Lệnh trên sẽ không tác động đến các bit khác ở địa chỉ này Các vi xử lý sẽ phải
thị hành nhiệm vụ tương tự như sau :
MOV A,2CH ; doc ca byte
ORL A, #10000000B ; set MSB
MOV 2CH,A ; ghi lai ca byte
3.3 Cac bank thanh phi :
32 byte thấp nhất của bộ nhớ nội là dành cho các bank thanh ghi Bộ lệnh của
8051/8031 hỗ trợ 8 thanh ghi (R0 đến R7) và theo mặc định (sau khi reset hệ thống)
các thanh ghi này ở các địa chỉ 00H-07H Lệnh sau đây sẽ đọc nội dung ở địa chỉ 05H
vào thanh ghi tích lũy :