1. Trang chủ
  2. » Cao đẳng - Đại học

Vi dieu khien trong khong che nhiet do

93 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 93
Dung lượng 1,04 MB

Nội dung

f.ALE Address Latch Enable : tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lí 8585, 8088, 8086, 8051 dùng ALE một cách tương tự cho làm việc giải các kênh [r]

(1)Luaân vaên toát nghieäp BỘ GIÁO DỤC VAØ ĐAØO TẠO ĐẠI HỌC QUỐC GIA THAØNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA ĐIỆN –ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ LUAÄN VAÊN TOÁT NGHIEÄP ĐỀ TAØI : KHẢO SÁT VAØ ỨNG DỤNG VI ĐIỀU KHIỂN- THIẾT KẾ-THI CÔNG MẠCH KHỐNG CHẾ NHIỆT ĐỘ PHÒNG SVTH :NGUYỄN HOAØNG VŨ NGUYEÃN THANH VUÕ GVHD:LÊ THANH ĐẠO TP.HOÀ CHÍ MINH 3-2000 Trang (2) Luaân vaên toát nghieäp LỜI CẢM TẠ Chuùng em xin chaân thaønh cảm ơn Thầy Lê Thanh Đạo đã tận tình hướng dẫn và giúp chúng em suốtthờigian thực luận văn Xin caûm ôn quùi thaày coâKhoa Ñieän vaø caùc baïn sinh vieân cuøng khóa đã đóng góp ý kiến qúi báo để tập luậnvănnàyhoàn thành đúng thời gian Nhóm sinh viên thực hieän Trang (3) Luaân vaên toát nghieäp LỜI NÓI ĐẦU Trong nhiều lĩnh vực sản xuất công nghiệp nay, là ngành công nghiệp luyện kim, chề biến thực phẫm… vấn đề đo và khống chế nhiệt độ đặc biệt chú trọng đến vì nó là yếu tố định chất lượng sản phẫm Nắm tầm quan trọng vấn đề trên nhóm thực tiến hành nghiên cứu và thiết kế hệ thống đo và khống chế nhiệt độ tự động, với mong muốn là giải yêu cầu trên, và lấy đó làm đề tài tốt nghiệp cho mình Những kiến thức lực đạt quá trình học tập trường đánh giá qua đợt bảo vệ luận văn cuối khóa Vì chúng em cố gắng tận dụng tất kiến thức đã học trường cùng với tìm tồi nghiên cứu, để có thể hoàn thành tốt luận văn này Những sản phẫm kết đạt ngày hôm không có vì lớn lao Nhưng đó là thành năm học tập Là thành công đầu tiên chúng em trước trường Mặt dù chúng em cố gắng để hoàn thành tập luận văn này đúng thời hạn, nên không tránh khỏi thiếu sót mong quí thầy cô thông cảm Chúng em mong đón nhận ý kiến đóng góp Cuối cùng xin chân thành cảm ơn quí thầy coâ vaø caùc baïn sinh vieân Nhóm sinh viên thực NGUYỄN HOAØNG VŨ NGUYEÃN THANH VUÕ Trang (4) Luaân vaên toát nghieäp NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Trang (5) Luaân vaên toát nghieäp NHAÄN XEÙT CUÛA GIAÙO VIEÂN PHAÛN BIEÄN Trang (6) Luaân vaên toát nghieäp BỘ GIÁO DỤC VAØ ĐAØO TẠO COÄNG HOØA XAÕ HOÄI CHUÛ NGHÓA VIEÄT NAM ĐẠI HỌC QUỐC GIA TP.HCM ĐỘC LẬP_ TỰ DO _HẠNH PHÚC TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA ĐIỆN _ĐIỆN TỬ NHIEÄM VUÏ LUAÄN VAÊN TOÁT NGHIEÄP Họ và tên sinh viên thực : Nguyễn Hoàng Vũ Nguyễn Thanh Vũ Lớp : 95 KĐĐ Ngành : điện _điện tử 1.Tên đề tài : KHẢO SÁT VAØ ỨNG DỤNG VI ĐIỀU KHIỂN_THIẾT KẾ_THI CÔNG MẠCH KHỐNG CHẾ NHIỆT ĐỘ PHÒNG Các số liệu ban đầu : 3.Nội dung các phần thuyết minh và tính toán : 4.Caùc baûn veõ : 5.Giáo viên hướng dẫn : LÊ THANH ĐẠO Ngaøy giao nhieäm vuï : 7.Ngày hoàn thành nhiệm vụ : Thoâng qua boä moân Ngaøy _thaùng _naêm _ Chuû nhieäm boä moân Giáo viên hướng dẫn Trang (7) Luaân vaên toát nghieäp MUÏC LUÏC Trang A_PHẦN GIỚI THIỆU ƒ ƒ ƒ ƒ ƒ ƒ TRANG TỰA NHIEÄM VUÏ CUÛA LUAÄN VAÊN BẢNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN BAÛNG NHAÄN XEÙT CUÛA GIAÙO VIEÂN PHAÛN BIEÄN LỜI NÓI ĐẦU LỜI CẢM ƠN B_PHAÀN NOÄI DUNG Chöông 1: DAÃN NHAÄP I.ĐẶT VẤN ĐỀ II.GIỚI THIỆU ĐỀ TAØI III.MỤC ĐÍCH NGHIÊN CỨU 1 Chương 2: GIỚI THIỆU CHUNG VỀ VI ĐIỀU KHIỂN I.GIỚI THIỆU II.LỊCH SỬ PHÁT TRIỂN CỦA VI ĐIỀU KHIỂN III.KHAÛO SAÙT BOÄ VI ÑIEÀU KHIEÅN 8051/8031 3 Chương 3: KHẢO SÁT IC GIAO TIẾP NGOẠI VI 8255A I.CẤU TRÚC PHẦN CỨNG II.CAÁU TRUÙC PHAÀN MEÀM III.GIAO TIẾP GIỮA VI XỬ LÝ VỚI 8255A Chương 4: KHẢO SÁT BỘ NHỚ BÁN DẪN 38 40 42 43 I.BỘ NHỚ CHỈ ĐỌC (ROM : READ ONLY MEMORY) II.BỘ NHỚ RAM (RANDOM ACCESS MEMORY) Chương 5: ĐO NHIỆT ĐỘ I.HỆ THỐNG ĐO LƯỜNG II.CÁC PHƯƠNG PHÁP ĐO NHIỆT ĐỘ Chương 6: CHUYỂN ĐỔI TƯƠNG TỰ SANG SỐ Trang 38 43 46 48 48 49 51 (8) Luaân vaên toát nghieäp I.KHAÙI NIEÄM CHUNG II NGUYÊN TẮC THỰC HIỆN CHUYỂN ĐỔI AD III.CÁC PHƯƠNG PHÁP CHUYỂN ĐỔI ADC Chöông 7: THIEÁT KEÁ VAØ THI COÂNG 51 51 52 56 I.NHIEÄM VUÏ THIEÁT KEÁ II.SƠ ĐỒ KHỐI VAØ CHỨC NĂNG TỪNG KHỐI III.THIẾT KẾ VAØ PHÂN TÍCH NGUYÊN LÍ HOẠT ĐỘNG TỪNG KHỐI IV.SƠ ĐỒ NGUYÊN LÍ VAØ GIẢI THUẬT CHƯƠNG TRÌNH V.THI COÂNG CHÖÔNG KEÁT LUAÄN C_PHUÏ LUÏC – TAØI LIEÄU THAM KHAÛO I.PHUÏ LUÏC II.TAØI LIEÄU THAM KHAÛO 56 56 56 71 89 83 85 85 Trang (9) Luaân vaên toát nghieäp Chöông 1:DAÃN NHAÄP I.ĐẶT VẤN ĐỀ : Ngày với phát triển công nghiệp vi điện tử, kỹ thuật số các hệ thống điều khiển tự động hóa Với kỹ thuật tiên tiến vi xử lí, vi mạch số … đựơc ứng dụng vào lỉnh vực điều khiển, thì các hệ thống điều khiển khí thô sơ, với tốc độ xử lí chậm chạp ít chính xác thay các hệ thống điều khiển tự động với các lệnh chương trình đã thiết lập trước Trong quá trình sản xuất các nhà máy, xí nghiệp nay, việc đo và khống chế nhiệt độ tự động là yêu cầu cần thiết và quan trọng Vì nắm bắt nhiệt độ làm việc cuả các hệ thống Dây chuyền sản xuất … giúp ta biết tình trạng làm việc c ác yêu cầu Và có xử lý kịp thời tránh hư hỏng và cố có thể xảy Để đáp ứng yêu cầu đo và khống chế nhiệt độ tự động, thì có nhiều phương pháp để thực hiện, nghiên cửu khảo sát vi điều khiển 8051 nhóm thực nhận thấy rằng: ứng dụng vi điều khiển 8051 vào việc đo và khống chế nhiệt độ tự động là phương pháp tối ưu Đồng đồng ý khoa Điện Trường Đại Học Sư Phạm Kỹ Thuật Nhóm chúng em tiến hành thực đề tài “Khảo sát và ứng dụng vi điều khiển thiết kế thi công mạch khống chế nhiệt độ phòng” II.GIỚI HẠN ĐỀ TAØI : Với thời gian gần mười tuần thực đề tài, trình độ chuyên môn có hạn, chúng em đã cố gắng để hoàn thành tập luận văn này, giải vấn đề sau : • Thiết kế mạch đo nhiệt độ dải từ 00C – 1000C hiển thị số • Khống chế nhiệt độ mức 200C • Viết chương trình (phần mềm) để đáp ứng các yêu cầu trên • Do thời gian quá hạn hẹp nên chúng em thiết kế đầu đo và khống chế mức nhiệt độ 200C III.MỤC ĐÍCH NGHIÊN CỨU : Mục đích trước hết thực đề tài này là để hoàn tất chương trình môn học để đủ điều kiện trường • Cụ thể nghiên cứu thực đề tài là chúng em muốn phát huy thành ứng dụng vi điều khiển nhằm tạo sản phẩm, thiết bị tiên tiến hơn, và đạt hiệu sản xuất cao • Maët khaùc taäp luaän vaên naøy cuõng coù theå laøm taøi lieäu tham khaûo cho sinh viên khóa sau Giúp họ hiểu rõ ứng dụng vi điều khieån • Ngòai quá trình nghiên cứu thực đề tài là hội để chúng em tự kiểm tra lại kiến thức đã học trường, đồng thời phát huy tính sáng tạo, khả giải vấn đề theo yêu cầu đặt Và đây là Trang (10) Luaân vaên toát nghieäp dịp để chúng em tự khẳng định mình trước trường để tham gia vào các hoạt động sản xuất xã hội Trang 10 (11) Luaân vaên toát nghieäp Chöông GIỚI THIỆU CHUNG VỀ BỘ VI ĐIỀU KHIỂN I.GIỚI THIỆU : Bộ vi điều khiển viết tắt là Micro-controller, là mạch tích hợp trên chip có thể lập trình được, dùng để điều khiển hoạt động hệ thống Theo các tập lệnh người lập trình, vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo thời gian và tiến hành đóng mở cấu nào đó Trong các thiếh bị điện và điện và điện tử dân dụng, các vi điều khiển, điều khiển hoạt động TV, máy giặt, đầu đọc laser, điện thọai, lò vi-ba … Trong hệ thống sản xuất tự động, vi điều khiển sử dụng Robot, dây chuyền tự động Các hệ thống càng “thông minh” thì vai trò hệ vi điều khiển càng quan troïng II.LỊCH SỬ PHÁT TRIỂN CỦA C ÁC BỘ VI ĐIỀU KHIỂN : Bộ vi điều khiển thực ra, là loại vi xử lí tập hợp các vi xử lý nói chung Bộ vi điều khiển phát triển từ vi xử lí, từ năm 70 phát triển và hoàn thiện công nghệ vi điện tử dựa trên kỹ thuật MOS (Metal-OxideSemiconductor) , mức độ tích hợp các linh kiện bán dẫn chip ngày caøng cao Năm 1971 xuất vi xử lí bit loại TMS1000 công ty texas Instruments vừa là nơi phát minh vừa là nhà sản xuất Nhìn tổng thể thì vi xử lí có chứa trên chip chức cần thiết để xử lí chương trình theo trình tự, còn tất phận phụ trợ khác cần thiết : nhớ liệu , nhớ chương trình , chuển đổi AID, khối điều khiển, khối hiển thị, điều khiển máy in, hối đồng hồ và lịch là linh kiện nằm bên ngoài nối vào vi xử lí Mãi đến năm 1976 công ty INTEL (Interlligen-Elictronics) Mới cho đời vi điều khiển đơn chip đầu tiên trên giới với tên gọi 8048 Bên cạnh xử lí trung tâm 8048 còn chứa nhớ liệu, nhớ chương trình, đếm và phát thời gian caùc coång vaøo vaø Digital treân moät chip Các công ty khác lần lược cho đời các vi điều khiển 8bit tương tự nhö 8048 vaø hình thaønh hoï vi ñieàu khieån MCS-48 (Microcontroller-sustem-48) Đến năm 1980 công ty INTEL cho đời hệ thứ hai vi điều khiển đơn chip với tên gọi 8051 Và sau đó hàng loạt các vi điều khiển cùng loại với 8051 đời và hình thành họ vi điều khiển MCS-51 Đến họ vi điều khiển bit MCS51 đã có đến 250 thành viên và hầu hết các công ty hàng dẫn hàng đầu giới chế tạo Đứng đầu là công ty INTEL và nhieàu coâng ty khaùc nhö : AMD, SIEMENS, PHILIPS, DALLAS, OKI … Ngoài còn có các công ty khác có họ vi điều khiển riêng như: Hoï 68HCOS cuûa coâng ty Motorola Hoï ST62 cuûa coâng ty SGS-THOMSON Hoï H8 cuûa coâng ty Hitachi Hoï pic cuaû coâng ty Microchip Trang 11 (12) Luaân vaên toát nghieäp III.KHAÛO SAÙT BOÄ VI ÑIEÀU KHIEÅN 8051 VAØ 8031: IC vi ñieàu khieån 8051/8031 thuoäc hoï MCS51 coù caùc ñaët ñieåm sau : - 4kbyte ROM (được lập trình nhà sản xuất có 8051) - 128 buùyt RAM - 4port I10 8bit - Hai định thời 16bit - Giao tieáp noái tieáp - 64KB không gian nhớ chương trình mở rộng - 64 KB không gian nhớ liệu mở rộng - xử lí luận lí (thao tác trên các bit đơn) - 210 bit địa hóa - boä nhaân / chia 4µs 1.CAÁU TRUÙC BEÂN TRONG CUÛA 8051 / 8031 : INT\*1 INT\*0 TIMER2 TIMER1 PORT noái tieàp Ñieàu khieån ngaét Caùc ùthanh ghi khaùc 128 byte Ram Rom 4K-8051 OK-8031 Timer1 Timer2 CPU Taïo dao động Ñieàu khieån bus EA\ RST PSEN ALE Caùc port I\O P0 P P2 Port noái tieáp P3 TXD* RXD* Hình 2.1 : Sơ Đồ Khối 8051 / 8031 Trang 12 T1* T2* (13) Luaân vaên toát nghieäp Phần chính vi điều khiển 8051 / 8031 là xử lí trung tâm (CPU: central processing unit ) bao goàm : - Thanh ghi tích luõy A - Thanh ghi tích luõy phuï B, duøng cho pheùp nhaân vaø pheùp chia - Ñôn vò logic hoïc (ALU : Arithmetic Logical Unit ) - Từ trạng thái chương trình (PSW : Prorgam Status Word) - Boán baêng ghi - Con troû ngaên xeáp - Ngoài còn có nhớ chương trình, giải mã lệnh, điều khiển thời gian vaø logic Đơn vị xử lí trung tâm nhận trực tiếp xung từ giao động, ngoài còn có khả đưa tín hiệu giữ nhịp từ bên ngoài Chương trình chạy có thể cho dừng lại nhờ khối điều khiển ngắt bên Các nguồn ngắt có thể là : các biến cố bên ngoài , tràn đếm định thời có thể là giao diện nối tiếp Hai định thời 16 bit hoạt động đếm Các cổng (port0, port1, port2, port3 ) Sử dụng vào mục đích điều khiển Ơû cổng có thêm các đường dẫn điều khiển dùng để trao đổi với nhớ bên ngoài, để đầu nối giao diện nối tiếp, các đường ngắt dẫn bên ngoài Giao diện nối tiếp có chứa truyền và nhận không đồng bộ, làm việc độc lập với Tốc độ truyền qu nối tiếp có thể đặt vảy rộng và ấn định định thời Trong vi điều khiển 8051 / 8031 có hai thành phần quan trọng khác đó là nhớ và các ghi : Bộ nhớ gồm có nhớ Ram và nhớ Rom (chỉ có 8031) dùng để lưu trữ lieäu vaø maõ leänh Các ghi sử dụng để lưu trữ thông tin quá trình xử lí Khi CPU làm việc nó làm thay đổi nội dung củ ác ghi 2.CHỨC NĂNG CÁC CHÂN VI ĐIỀU KHIỂN : Trang 13 (14) Luaân vaên toát nghieäp 30p 40 19 XTAL1 12MHz 30p 18 29 30 31 RD\ WR\ T1 T0 INT1 INT0 TXD RXD Vcc XTAL2 PSEN\ ALE EA\ RET 17 16 15 14 13 12 11 10 Vss Po.7 Po.6 Po.5 Po.4 Po.3 Po.2 Po.1 Po.0 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 32 33 34 35 36 37 38 39 28 27 26 25 24 23 22 21 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 A15 A14 A13 A12 A11 A10 A9 A8 20 Hình 2.2 : Sơ Đồ Chân 8051 a.port0 : là port có chức trên chân từ 32 đến 39 các thiết kế cỡ nhoû ( không dùng nhớ mở rộng ) có hai chức các đường IO Đối với các thiết kế cỡ lớn ( với nhớ mở rộng ) nó kết hợp kênh giữ a các bus ) b.port1 : port1 là port I/O trên các chân 1-8 Các chân ký hiệu P1.0, P1.1, P1.2 … có thể dùng cho các thiết bị ngoài cần Port1 không có chức khác, vì chúng ta dùng giao tiếp với các thiết bị ngoài c.port2 : port2 là port công dụng kép trên các chân 21 – 28 dùng các đường xuất nhập là byte cao bus địa các thiết kế dùng nhớ mở rộng d.Port3 : port3 laø moät port coâng duïng keùp treân caùc chaân 10 – 17 Caùc chaân cuûa port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tín đặc biệt 8051 / 8031 bảng sau : Trang 14 (15) Luaân vaên toát nghieäp Bit Teân Chức chuyển đổi P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD TXD INTO INT1 TO T1 WR RD Dữ liệu nhận cho port nối tiếp Dữ liệu phát cho port nối tiếp Ngắt bên ngoài Ngắt bên ngoài Ngoõ vaøo cuûa timer/counter Ngoõ vaøo cuûa timer/counter Xung ghi nhớ liệu ngoài Xung đọc nhớ liệu ngoài Bảng 2.1 : Chức các chân trên port3 e.PSEN (Program Store Enable ) : 8051 / 8031 coù tín hieäu ñieàu khieån PSEN là tín hiệu trên chân 29 Nó là tín hiệu điều khiển phép nhớ chương trình mở rộng và thường nối đến chân OE (Output Enable) EPROM phép đọc các bytes mã lệnh PSEN mức thấp thời gian lấy lệnh Các mã nhị phân chương trình đọc từ EPROM qua bus và chốt vào ghi lệnh 8051 để giải mã lệnh Khi thi hành chương trình ROM nội (8051) PSEN mức thụ động (mức cao) f.ALE (Address Latch Enable ) : tín hiệu ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lí 8585, 8088, 8086, 8051 dùng ALE cách tương tự cho làm việc giải các kênh các bus địa và liệu port dùng chế độ chuyển đổi nó : vừa là bus liệu vừa là búyt thấp địa chỉ, ALE là tín hiệu để chốt địa vào ghi bên ngoài đầu chu kỳ nhớ Sau đó, các đường port dùng để xuất nhập liệu sau chu kỳ nhớ Các xung tín hiệu ALE có tốc độ 1/6 lần tần số dao động trên chip và có thể dùng là nguồn xung nhịp cho các hệ thống Nếu xung trên 8051 là 12MHz thì ALE có tần số 2MHz Chỉ ngoại trừ thi hành lệnh MOVX, xung ALE bị Chân này làm ngõ vào cho xung lập trình cho EPROM 8051 g.EA (External Access) : Tín hiệu vào EA trên chân 31 thường mắc lên mức cao (+5V) mức thấp (GND) Nếu mức cao, 8051 thi hành chương trình từ ROM nội khoảng địa thấp (4K) Nếu mức thấp, chương trình thi hành từ nhớ mở rộng Khi dùng 8031, EA luôn nối mức thấp vì không có nhớ chương trình Trang 15 (16) Luaân vaên toát nghieäp trên chip Nếu EA nối mức thấp nhớ bên chương trình 8051 bị cấm và chương trình thi hành từ EPROM mở rộng Người ta còn dùng chân EA làm chân caáp ñieän aùp 21V laäp trình cho EPROM 8051 h.SRT (Reset) : Ngõ vào RST trên chân là ngõ reset 8051 Khi tín hiệu này đưa lên múc cao (trong ít chu kỳ máy ), các ghi 8051 tải giá trị thích hợp để khởi động hệ thống i.Các ngõ vào dao động trên chip : Như đã thấy các hình trên , 8051 có dao động trên chip Nó thường nối với thạch anh hai chân 18 và 19 Các tụ cần thiết đã vẽ Tần số thạch anh thông thường là 12MHz j.Caùc chaân nguoàn : 8051 vận hành với nguồn đơn +5V Vcc nối vào chân 40 và Vss (GND) nối vào chân 20 3.Tổ chức nhớ : 8051 / 8031 có nhớ theo cấu trúc Harvard : có vùng cho nhớ riêng biệt cho chương trình liệu Như đã nói trên, chương trình và liệu có thể bên 8051, dù chúng có thể mơ ûrộng bằèng các thành phần ngoài lên đến tối đa 64 Kbytes nhớ chương trình và 64 Kbytes nhớ liệu Bộ nhớ bên bao gồm ROM (8051) 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 hóa bit, các bank ghi và các ghi chức đặc biệt FFFF FF 00 Bộ nhớ chöông trình FFFF chọn qua PSEN 0000 0000 Bộ nhớ liệu chọn qua WR Vaø RD Hình 2.3 : Tóm tắt các vùng nhớ 8031 / 8051 Hai ñaëc tính caàn löu yù laø : - Các ghi và các port xuất nhập đã xếp nhớ và có thể truy xuất trực tiếp các địa nhớ khác - Ngăn xếp bân RAM nội nhỏ so với RAM ngoài các vi xử lí khác • Chi tiết nhớ RAM trên chip : Trang 16 (17) Luaân vaên toát nghieäp Như ta đã thấy trên hình sau, RAM bên 8051/ 8031 phân chia các bank ghi (00H – 1FH), RAM địa hóa bit (20H – 2FH), RAM đa dụng (30H – 7FH) và các ghi chức đặc biệt (80H – FFH) a RAM ña duïng Ñòa chæ byte Ñòa chæ bit 7F RAM ña duïng 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 18 17 10 0F 08 07 00 7F 77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F 07 7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 16 0E 06 7D 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D 15 0D 05 7C 74 6C 64 5C 54 4C 44 3C 34 2C 24 1C 14 0C 04 7B 73 6B 63 5B 53 4B 43 3B 33 2B 23 1B 13 0B 03 7A 72 6A 62 5A 52 4A 42 3A 32 2A 22 1A 12 0A 02 79 71 69 61 59 51 49 41 39 31 29 21 19 11 09 01 78 70 68 60 58 50 48 40 38 30 28 20 18 10 08 00 BANK BANK BANK Default register Bank for RO÷R7 Bảng tóm tắt bản đồ vùng nhớ trên chip data 8051 Trang 17 (18) Luaân vaên toát nghieäp Ñòa chæ byte FF F0 F7 Ñòa chæ bit F6 F5 F4 F3 F2 F1 F0 B E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW B8 - - BC BB BA B9 B8 IP B0 B7 B6 B5 B4 B3 B2 B1 B0 P3 - AC AB AA A9 A8 IE A7 A6 A5 A4 A3 A2 A1 A0 P2 E0 E7 A8 AF A0 99 98 9F 90 97 - - 9E 99 98 SCON 96 95 91 90 P1 8D 8C 8B 8A 89 88 87 83 82 81 80 SBUF Not bit addressable 9D 9C 9B 9A 94 93 92 TH1 TH0 Not bit addressable Not bit addressable Not bit addressable Not bit addressable Not bit addressable 8F 87 8E 86 8D 8C 8B 8A Not bit addressable Not bit addressable Not bit addressable Not bit addressable 85 84 83 82 89 81 88 80 TL1 TL0 TMOD TCON PCON DPH DPL SP PO Tóm tắt nhớ liệu trên chip Mọi địa vùng RAM đa dụng có thể truy xuất tự dùng cách đánh địa trực tiếp gián tiếp Ví dụ, để đọc nội dung địa 5FH RAM nội vào ghi tích lũy lệnh sau dùng : MOV A, 5FH Trang 18 (19) Luaân vaên toát nghieäp Lệnh này di chuyển búyt liệu dùng cách đánh địa trực tiếp để xác định “địa nguồn” (5FH) Đích nhận liệu ngầm xác định mã lệnh là ghi tích luõy A RAM bên có thể truy xuất dùng cách đánh địa gián tiếp qua RO hay R1 Ví dụ, sau thi hành cùng nhiệm vụ lệnh đơn trên : MOV R0, #5FH MOV A, @R0 Lệnh đầu dùng đị hỉ tức thời để di chuyển giá trị 5FH vào ghi R0 và lệnh thứ hai dùng địa trực tiếp để di chuyển liệu “được trỏ R0” vào ghi tích luõy b.RAM địa hóa bit : 8051 / 8031 chứa 210 bit địa hóa, đó 128 bit là các địa byte 20H đến 2FH, và phần còn lại các ghi chức đặc biệt Y tưởng truy xuất bit riêng rẽ mềm là đặc tín tiện lợi vi điều khiển nói chung Các bit có thể đặt, xóa, AND,OR …với lệnh đơn Đa số các chi xử lí đòi hỏi chuổi lệnh đọc – sữa – ghi để đạt hiệu tương tự Hơn nữa, các port I/0 địa bit làm đợn giản phần mềm xuất nhập bit Có 128 bit địa hóa đa dụng các byte 20H đến 2FH Các địa này truy xuất các byte các bit phụ thuộc vào lệnh dùng ví dụ, để ñaët bit 67H, ta duøng leänh sau : SETB 67H Chú ý “địa bit 67H” là bit có trọng số lớn (MSB) “địa byte 2CH” lệnh trên không tác động đến các bit khác địa này c.Caùc bank ghi : 32 byte thấp nhớ nội là dành cho các bank ghi Bộ lệnh 8051 / 8031 hổ trợ ghi (RO đến R7) và theo mặc định (sau Reset hệ thống) các ghi này các địa 00H-07H Lệnh sau đây đọc nội dung địa chæ 05H vaøo ghi tích luõy MOV A,R5 Đây là lệnh byte dùng địa ghi Tất nhiên, thao tác tương tự có thể thi hành lệnh byte dùng địa trực tiếp nằm byte thứ hai: MOV A,05H Các lệnh dùng các ghi R0 đến R7 thì ngắn và nhanh các lệnh tương ứng dùng địa trực tiếp Các giá trị liệu dùng thường xuyeân neân duøng moät caùc ghi naøy Bank ghi tích cực có thể chuyển đổi cách thay đổi các bit chọn bank ghi từ trạng thái chương trình (PSW) Giả sử bank ghi tích cực, lệnh sau ghi nội dung ghi tích lũy vào địa 18H: MOV R0,A Trang 19 (20) Luaân vaên toát nghieäp Yù tưởng dùng “các bank ghi” cho phép “chuyển hướng” chương trình nhanh và hiệu qủa (từng phần riêng rẽ phần mềm có ghi riêng khoâng phuï thuoäc vaøo caùc phaàn khaùc) 4./ Các ghi chức đặc biệt: Các ghi nội 8051/8031 truy xuất ngầm định lệnh Ví dụ lệnh “INC A” tăng nội dung ghi tích lũy A lên Tác động này ngầm định mã lệnh Các ghi 8051/8031 định dạng phần RAM trên chip Vì ghi có địa (ngoại trừ ghi trực tiếp, không có lợi đặt chúng vào RAM trên chip) Đó là lý để 8051/0831 có nhiều ghi Cũng R0 đến R7, có 21 ghi chức đặc biệt (SFR: Special Funtion Rgister) vùng trên RAM nội, từ địa 80H đến FFH Chú ý hầu hết 128 địa từ 80H đến FFH không định nghĩa Chỉ có 21 địa SFR là định nghĩa Ngoại trừ tích lũy (A) có thể truy xuất ngầm đã nói, đa số các SFR truy xuất dùng địa trực tiếp chú ý vài SFR có thể địa hóa bit byte Người thiết kế phải thận trọng truy xuất bit và byte Ví dụ leänh sau: SETB 0E0H Sẽ Set bit ghi tích lũy, các bit khác không thay đổi Ta thấy E0H đồng thời là địa byte ghi tích lũy và là địa bit có trọng số nhỏ ghi tích lũy Vì lệnh SETB tác động trên bit, nên có địa bit laø coù hieäu quaû a Từ trạng thái chương trình: Từ trạng thái chương trình (PSW: Program Status Word) địa D0H chứa các bit traïng thaùi nhö baûng toùm taét sau: Bit PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 Kyù hieäu CY AC F0 RS1 RS0 PSW.2 PSW.1 PSW.0 OV P Ñòa chæ D7H D6H D5H D4H D3H Yù nghóa Cờ nhớ Cờ nhớ phụ Cờ Bit choïn bank ghi Bit choïn bank ghi 00=bank 0; ñòa chæ 00H-07H 01=bank 1: ñòa chæ 08H-0FH 10=bank 2:ñòa chæ 10H-17H 11=bank 3:ñòa chæ 18H-1FH Cờ tràn D2H Dự trữ D1H Cờ Parity chẵn D0H Bảng 21: Từ trạng thái chương trình Trang 20 (21) Luaân vaên toát nghieäp • Cờ nhớ (CY) có công dụng kép Thông thường nó dùng cho các lệnh toán học: nó set có số nhớ sinh phép cộng có số mượn phép trừ Ví dụ, ghi tích lũy chứa FFH, thì lệnh sau: ADD A,#1 Sẽ trả ghi tích lũy kết qủa 00H và set cờ nhớ PSW Cờ nhớ có thể xem ghi bit cho các lệnh luận lý thi hành trên bit Ví dụ, lệnh AND bit 25H với cờ nhớ và đặt kết qủa trở vào cờ nhớ: ANL C,25H • Cờ nhớ phụ: Khi cộng các số BCD, cờ nhớ phụ (AC) set kết qủa bit thấp khoảng 0AH đến 0FH Nếu các giá trị cộng là số BCD, thì sau lệnh cộng cần có DA A( hiệu chỉnh thập phân ghi tích lũy) để mang kết qủa lớn trở tâm từ 0÷9 • Cờ Cờ (F0)là bit cờ đa dụng dành các ứng dụng người dùng • Caùc bit choïn bank ghi Các bit chọn bank ghi (RSO và RS1) xác định bank ghi tích cực Chúng xóa sau reset hệ thống và thay đổi phần mềm caàn Ví duï, ba leänh sau cho pheùp bank ghi vaø di chuyeån noäi dung cuûa ghi R7 (địa byte IFH) đến ghi tích lũy: SETB RS1 SETB RSO MOV A,R7 Khi chương trình hợp dịch các địa bit đúng thay cho các ký hieäu “RS1” vaø “RS0” Vaäy leänh SETB RS1 seõ gioáng nhö leänh SETB 0D4H • Cờ Tràn Cờ tràn (OV) set lệnh cộng trừ có phép toán bị tràn Khi các số có dấu cộng trừ với nhau, phần mềm có thể kiểm tra bit này để xác định xem kết qủa nó có nằm tầm xác định không Khi các số không dấu cộng, bit OV có thể bỏ qua Các kết qủa lớn +127 nhoû hôn –128 seõ set bit OV b Thanh ghi B: Thanh ghi B địa F0H dùng cùng với ghi tích lũy A cho các phép toán nhân và chia Lệnh MUL AB nhân các giá trị không dấu bit A vaø B roài traû veà keát quûa 16 bit A (byte thaáp) vaø B (byte cao) Leänh DIV AB seõ chia A cho B roài traû veà keát quûa nguyeân A vaø phaàn dö B Thanh ghi B có thể xem ghi đệm đa dụng Nó địa hóa ttừng bit các địa bit FOH đến F7H c Con troû ngaên xeáp: Con trỏ ngăn xếp (SP) là ghi bit địa 81H Nó chứa địa byte liệu hành trên đỉnh ngăn xếp Các lệnh trên ngăn xếp bao gồm các thao tác cất liệu vào ngăn xếp và lấy liệu khỏi ngăn xếp Lệnh cất Trang 21 (22) Luaân vaên toát nghieäp liệu vào ngăn xếp làm tăng SP trước ghi liệu, và lệnh lấy liệu khỏi ngăn xếp dọc liệu và làm giảm SP Ngăn xếp 8051/8031 giữ RAM nội và giới hạn các địa có thể truy xuất địa gián tiếp chúng là 128 byte đầu 8051/8031 Để khởi động lại SP với ngăn xếp bắt đầu 60H, các lệnh sau đây dùng: MOV SP,#%FH Trên 8051/8031 ngăn xếp bị giới hạn 32 byte vì địa cao RAM trên chip là 7FH Sở dĩ cùng giá trị 5FH vì SP tăng lên 60H trước cất byte lệu đầu tiên Người thiết kế có thể chọn không phải khởi động lại trỏ ngăn xếp mà để nó lấy giá trị mặc định reset hệ thống Giá trị măc định đó là 07H và kết qủa là ngăn đầu tiên để cất liệu có địa 08H Nếu phần mềm ứng dụng không khởi động lại SP , bank ghi (có thể và 3) không dùng vì vùng RAM này đã dùng làm ngăn xếp Ngăn xếp truy xuất trực tiếp các lệnh PUSH và POP để lưu giữ tạm thời và lấy lại liệu truy xuất ngầm các lệnh gọi chương trình (ACALL, LACALL) và các lệnh trở (RET,RETI) để cất và lấy lại đếm chöông trình d Con trỏ liệu: Con trỏ liệu (DPTR) dùng để truy xuất nhớ ngoài là ghi 16 bit địa 82H(DPL: byte thấp) và 83H (DPH:byte cao) Ba lệnh sau ghi 55H vào RAM ngoài địa 1000H: MOV A,#55H MOV DPTR,#1000H MOVX @DPTR,A Lệnh đầu tiên dùng địa tức thời để tải liệu 55H vào ghi tích lũy, lệnh thứ hai dùng địa tức thời, lần này để tải liệu 16 bit 1000H vào trỏ liệu Lệnh thứ ba dùng địa gián tiếp để di chuyển liệu A (55H) đến RAM ngoài địa chứa DPTR (1000H) e Caùc ghi port xuaát nhaäp: Các port 8051/8031 bao gồm Port địa 80H, Port địa 90 H, Port địa A0H và Port địa B0H Tất các Port địa hóa bit Điều đó cung cấp khả giao tiếp thuận lợi f Caùc ghi timer: 8051/8031 chứa định thời đếm 16 bit dùng việc định thời đếm kiện Timer địa 8AH (TL0:byte thấp) và 8CH (TH0:byte cao).Timer địa 8BH (TL1:byte thấp) và 8DH (TH1: byte cao) việc vận hành timer set ghi Timer Mode (TMOD) địa 89H và ghi điều khiển timer (TCON) địa 88H Chỉ có TCON địa hóa bit g Caùc ghi port noái tieáp: 8051/8031 chức port nối tiếp trên chip dành cho việc trao đổi thông tin với các thiết bị nối tiếp máy tính, modem cho việc giao tiếp với các IC khác Trang 22 (23) Luaân vaên toát nghieäp có giao tiếp nối tiếp (có chuyển đổi A/D, các ghi dịch ) Một ghi gọi là đệm liệu nối tiếp (SBUF) địa 99H ssẽ giữ hai giữ liệu truyền và nhận Khi truyền liệu thì ghi lên SBUf, nhận liệu thì đọc SBUF Các mode vận hành khác lập trình qua ghi điều khiển port nối tiếp (SCON) (được địa hóa bit) địa 98H h Caùc ghi ngaét: 8051/8031 có cấu trúc nguồn ngắt, mức ưu tiên Các ngắt bị cấm sau reset hệ thống và cho phép việc ghi ghi cho phép ngắt (IE) địa 8AH Cả hai ghi địa hóa bit i Caùc ghi ñieàu khieån coâng suaát: Thanh ghi điều khiển công suất (PCON) địa 87H chứa nhiều bit điều khiển Chúng tóm tắt bảng sau: Bit Kyù hieäu SMOD Yù nghóa Bit gấp đôi tốc độ baud, set thì tốc độ baud tăng gấp đôi các mode 1,2 vaø cuûa port noái tieáp Khoâng ñònh nghóa Khoâng ñònh nghóa Khoâng ñònh nghóa Bit cờ đa dụng GF1 Bit cờ đa dụng GF0 Giảm công suất, set để kích hoạt mode PD giảm công suất, thoá reset Mode chờ, set để kích hoạt mode chờ, IDL thoát có ngắt reset hệ thống Baûng 2.2 :Thanh ghi ñieàu khieån coâng suaát (PCON) 5/ Bộ nhớ ngoài 8051/8031 có khả mở rộng nhớ đến 64K nhớ chương trình và 64K nhớ liệu bên ngoài Do đó có thể dùng thêm ROM và RAM cần Khi dùng nhớ ngoài, port không còn là port I/O túy Nó hợp kênh bus địa (A0-A7) và bus liệu (D0-D7) với tín hiệu ALE để chốt byte thấp địa bắt đầu chu kỳ nhớ Port thông thường duøng cho byte cao cuûa bus ñòa chæ Trong nửa đầu chu kỳ nhớ, byte thấp địa cấp port và chốt xung ALE Một IC chốt 74HC373 (hoặc tương đương) giữ byte địa thấp phần còn lại chu kỳ nhớ Trong nửa sau chu kỳ nhớ port dùng bus liệu và đọc ghi tùy theo lệnh a/ Truy xuất nhớ chương trình ngoài: Bộ nhớ chương trình ngoài là mộ IC ROM phép tín hiệu PSEn Hình sau moâ taû caùch noái moät EPROM vaøo 8051/8031: Trang 23 (24) Luaân vaên toát nghieäp Port D0-D7 D Q 74HC373 G EA 8051 ALE A0-A7 EPROM Port A8-A15 PSEN OE Hình 2.5 Giao tiếp 8051/8031 và EPROM Một chu kỳ máy 8051/8031 có 12 chu kỳ xung nhịp Nếu dao động trên chip lái thạch anh 12MHz thì chu kỳ máy kéo dài 1µs Trong chu kỳ máy có xung ALE và byte đọc từ nhớ chương trình (nếu lệnh hành là byte thì byte thứ hai loại bỏ) Giản đồ thời gian lần lấy lệnh vẽ hình sau: Moä t chu kyø maù y S2 S1 P1 P2 P1 P2 P1 S5 S4 S3 P2 P1 P2 P1 S6 P2 P1 S1 P2 OSC ALE PSEN Port Port PCH PCH PCL Opcode PCL Hình 2.6: Giản đồ thời gian đọc nhớ chương trình ngoài b/ Truy xuất nhớ liệu ngoài: Trang 24 P1 P2 (25) Luaân vaên toát nghieäp Port 8051 EA ALE 74HC373 O D D0-D7 RAM A0-A7 G A8-A15 Port RD WR OE WE Hình 2.7: Giao tiếp 8051/8031 và RAM Bộ nhớ liệu ngoài là nhớ RAM cho phép ghi/đọc các tín hệu WR và RD (các chân P3.6 và P3.7 thay đổi chức năng) có cách truy xuất nhớ liệu ngoài là với lệnh MOVX dùng trỏ liệu (DPTR) 16 bit R0 và R1 xem ghi địa Kết nối bus địa và bus liệu RAM và 8051/8031 giống EPROM và đó có thể lên đến 64 byte nhớ RAM Ngoài ra, chân RD 8051/8031 nối tới chân cho phép xuất (OE) RAM và chân WR nối tới chaân ghi (WR) cuûa RAM Giản đồ thời gian cho lệnh đọc nhớ liệu ngoài vẽ trên hình sau lệnh MOVX A, @DPTR: Moät chu kyø maùy Moät chu kyø maùy S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 ALE PSEN RD PCH Port Port PCL Opcode DPH DPL DATA Hình 2.8: Giản đồ thời gian lệnh MOVX Giản đồ thời gian cho lệnh ghi (MOVX @DPTR, A) tương tự khác đường WR thay vào đường RD và liệu xuất trên port (RD giữ mức cao) Trang 25 (26) Luaân vaên toát nghieäp 6/ Leänh reset 8051/8031 reset cách giữ chân RST mức cao ít chu kỳ máy và trả nó múc thấp RST có thể kích cấp điện dùng mạch R-C +5V +5V 100 10UF 8,2K Hình 2.9: Maïch reset heä thoáng Traïng thaùi cuûa taát caû caùc ghi cuûa 8051/8031 sau reset heä thoáng tóm tắt bảng sau: Thanh ghi Đếm chương trình Tích luõy B PSW SP DPTR Port 0-3 IP IE Các ghi định thời SCON SBUF PCON(HMOS) PCON(CMOS) Noäi dung 0000H 00H 00H 00H 07H 0000H FFH XXX00000B 0XX00000B 00H 00H 00H 0XXXXXXB 0XXX0000B Baûng 2.3: Traïng thaùi caùc ghi sau reset Quan trọng các ghi trên là ghi đếm chương trình, nó đặt lại 0000H Khi RST trở lại mức thấp, việc thi hành chương trình luôn bắt đầu địa đầu tiên nhớ chương trình: địa 0000H Nội dung RAM trên chip không bị thay đổi lệnh reset Hoạt động định thời (timer) 7.1 Giới thiệu Moät ñònh nghóa ñôn giaûn cuûa timer laø moät chuoãi caùc flip-flop chia ñoâi taàn soá nối tiếp với nhau, chúng nhận tín hiệu vào làm nguồn xung nhịp Ngõ tần số Trang 26 (27) Luaân vaên toát nghieäp cuối làm nguồn xung nhịp cho flip-flop báo tràn timer (flip-flop cờ) Giá trị nhị phân các flip-flop timer có thể xem số đếm số xung nhịp (hoặc các kiện) từ khởi động timer Ví dụ timer 16 bit đếm lên từ 0000H đến FFFFH Cờ báo tràn lên số đếm tràn từ FFFFH đến 0000H 8051/8031 có timer 16 bit, 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 kiện c) tạo tốc độ baud cho port noái tieáp 8051/8031 Trong các ứng dụng định khoảng thời gian, người ta lập trình timer khoảng đặn và đặt cờ tràn timer Cờ dùng để đồng hóa chương trình để thực tác động kiểm tra trạng thái các cửa ngõ vào gửi các kiện các ngõ Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đặn timer để đo thời gian trôi qua hai kiện (ví dụ : đo độ rộng xung) Đếm kiện dùng để xác định số lần xẩy kiện Một “sự kiện” là tác động ngoài nào có thể cung cấp chuyển trạng thái trên chân 8051/8031 Các timer có thể cung cấp xung nhịp tốc độ baud cho port nối tieáp 8051/8031 Truy xuất timer 8051/8031 dùng ghi chức đặc biệt cho baûng sau: SFR MUÏC ÑÍCH ĐỊA CHỈ Địa hóa bit TCON TMOD TL0 TL1 TH0 TH1 Ñieàu khieån timer Chế độ timer Byte thaáp cuûa timer Byte thaáp cuûa timer Byte cao cuûa timer Byte cao cuûa timer 88H 89H 8AH 8BH 8CH 8DH Coù Khoâng Khoâng Khoâng Khoâng Khoâng Bảng 2.4: Thanh ghi chức đặc biệt dùng timer 7.2 Thanh ghi chế độ timer (TMOD) Thanh ghi TMOD chứa hai nhóm bit dùng để đặt chế độ làm việc cho timer và timer Trang 27 (28) Luaân vaên toát nghieäp Bit Teân GATE C/T Timer 1 M1 M0 1 GATE C/T M1 M0 0 0 Moâ taû Bit (Mở) cổng, lên timer chạy INT1 mức cao Bit chọn chế độ counter/timer 1=bộ đếm kiện 0=bộ định khoảng thời gian Bit chế độ(mode) Bit chế độ 00: chế độ : timer 13 bit 01: chế độ : timer 16 bit 10: chế độ : tự động nạp lại 8255A bit 11: chế độ : tách timer Bit (mở) cổng Bit choïn counter/timer Bit chế độ Bit chế độ Baûng 2.5: Toùm taét ghi TMOD 7.3 Thanh ghi ñieàu khieån timer (TCON) Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho timer và timer Bit Kyù hieäu Ñòa chæ Moâ taû TCON.7 TF1 8FH Cờ báo tràn timer Đặt phần cứng tràn, xóa phần mềm phần cứng xử lý đến chương trình phục vụ ngắt TCON.6 TR1 TCON.5 TCON.4 TCON.3 TCON.2 TF0 TR0 IE1 IT1 TCON.1 TCON.0 IE0 IT0 8EH Bit ñieàu khieån timer chaïy Ñaët/xoùa baèng phaàn meàm cho timer chaïy/ngöng 8DH Cờ báo tràn timer 8CH Bit ñieàu khieån timer chaïy 8BH Cờ cạnh ngắt bên ngoài, đặc 8AH Cờ kiểu ngắt bên ngoài phần cứng phát cạnh xuống INT1, xóa phần mềm phần cứng CPU đến chöông trình phuïc vuï ngaét Đặt/xóa phần mềm đề ngắt ngoài tích cực cạnh xuống/mức thấp 89H Cờ cạnh ngắt bên ngoài 88H Cờ kiểu ngắt bên ngoài Baûng 2.6: Toùm taét ghi TCON Trang 28 (29) Luaân vaên toát nghieäp Các chế độ timer a) Chế độ 0, chế độ timer 13 bit Để tương thích với 8048 (có trứớc 8051) Ba bit cao cuûa TLX (TL0 vaø/hoaêc TL1) khoâng duøng Xung nhòp timer TLx (5 bit) THx (8 bit) TFx Cờ báo tràn b) Chế độ 1- chế độ timer 16 bit Hoạt động timer 16 bit đầy đủ Cờ báo tràn là bit TFx TCON có thể đọc ghi phầm mềm MSB cuûa giaù trò caùc ghi timer laø bit cuûa THx vaø LBS laø bit TLx Các ghi timer (Tlx/THx) có thể đọc ghi lúc nào baèng phaàm meàm Xung nhòp timer TLx (5 bit) THx (8 bit) TFx Cờ báo tràn c) Chế độ 0- chế độ tự động nạp lại bit TLx hoạt động timer bit, đó THx giữ nguyên giá trị nạp Khi số đếm tràn tứ FFH đến 00H, không cờ timer set mà giá trị THx đồng thời nạp vào TLx Việc đếm tiếp tục từ giá trị này lên đến FFH xuống 00H và nạp lại chế độ này thông dụng vì tràn timer xảy khoảng thời gian định và tuần hoàn đã khởi động TMOD và THx Xung nhòp timer TLx (8 bit) TFx Naïp laïi THx (8 bit) Trang 29 Cở báo tràn (30) Luaân vaên toát nghieäp d) Chế độ 3- chế độ tách timer Timer tách thành hai timer bit (TL0 và TH0), TL0 có cờ báo tràn là TF0 và TH0 có cờ báo tràn là TF1 Timer ngưng chế độ 3, có thể khởi động cách chuyển sang chế độ khác Giới hạn là cờ báo tràn TF1 không còn bị tác động timer bị tràn vì nó đã nối tới TH0 Khi timer chế độ 3, có thể cho timer chạy và ngưng cách chuyển nó ngoài và vào chế độ Nó có thể sử dụng port nối tiếp tạo tốc độ baund nó có thể sử dụng cách nào không cần ngắt (vì nó không còn nối với TF1) Xung nhòp Timer TL1 Xung nhòp Timer TH1 TL0 TF0 Cờ báo tràn TF1 TH0 I/12 Fosc Cờ báo tràn 7.5 Nguoàn taïo xung nhòp Có hai nguồn tạo xung nhịp có thể có, đượ chọn cách ghi vào bit C/T (counter/timer) TMOD khởi động timer Một nguồn tạo xung nhịp dùng cho định khoảng thời gian, cái khác cho đếm kiện Crytal T0 or T1 pin On chip Osillato r ÷12 − C/T 0=Up (Internal Timing) 1=Down (Event Counting) Nguoàn xung taïo nhòp - Định khoảng thời gian (interval timing) Trang 30 Timer Clock (31) Luaân vaên toát nghieäp Nếu C/T =0 hoạ t động timer liên tục chọn và timer dùng cho việc định khoảng thời gian Lúc đó, timer lấy xung nhịp từ dao động trên chip Bộ chia 12 thêm vào để giảm tần số xung nhịp đến giá trị thích hợp cho phần lớn các ứng dụng Như thạch anh 12 MHz cho tốc độ xung nhịp timer MHz Bóa tràn timer xảy sau số (cố địng) xung nhịp, phụ thuộc vào giá trị ban đầu nạp vào các ghi timer TLx/THx - Đếm kiện (Event counting) - Nếu C/T=1, timer lấy xung nhịp từ nguồn bên ngoài Trong hầu hết các ứng dụng nguồn bên ngoài này cung cấp cho timer xung kh xảy “sự kiện “, timer dùng đếm kiện xác định phần mềm cách đọc các ghi TLx/THx vì giaù trò 16 bit caùc ghi naøy taêng theâm cho moãi kiện Nguồn xung nhịp ngoài có từ thay đổi chú7c các chân port Bit port (P3.4) dùng làm ngõ vào tạo xung nhịp bên timer và gọi là “T0” Vaø p3.5 hay “T1” laø ngoõ vaøo taïo xung nhòp cho timer 7.6 Bắt đầu dừng và điều khiển các timer Phương pháp đơn giản để bắt đầu (cho chạy) và dừng các timer là duøng caùc bit ñieàu khieån chaïy :TRx TCON, TRx bò xoùa sau reset heä thoáng Như vậy, các timer theo mặc nhiên là bị cấm (bị dừng) TRx đặt lên phần mềm các timer chạy Xung nhòp Timer TRx Caùc ghi timer 0=lên : timer dừng 1=xuoáng : timer chaïy Cho chạy và dừng timer Vì TRx ghi TCON có địa bit, nên dễ dàng cho việc điều khiển các timer chương trình Ví dụ : cho timer chạy lệnh : SETB TR0 và dừng baèng leänh SETB TR0 Trình biên dịch thực việc chuyển đổi ký hiệu cần thiết từ “TR0” sang địa bit đúng SETB TR0 chính xác giống SETB 8CH 7.7 Khởi động và truy xuất các ghi timer Thông thường các ghi khởi động lần đầu chương trình để đặt chế độ làm việc cho đúng Sau đó thân chương trình các timer cho chạy, dừng , các bit cờ kiểm tra và xóa, các ghi timer đọc và cạp nhật theo đòi hỏi các ứng dụng TMOD là ghi thứ khởi động vì nó đặt chế độ hoạt động Ví dụ các lệnh sau khởi động timer timer 16 bit (chế độ 1) có xung nhịp từ dao động trên chíp cho việc địng khoảng thời gian Trang 31 (32) Luaân vaên toát nghieäp MOV TMOD,#00010000B Lệnh nàyy đặt M1=0 vả M0=1 cho chế độ 1, C/T=0 và GATE=0 cho xung nhịp nội và xóa các bit chế độ timer Dĩ nhiên timer thật không bắt đầu định thời bit điều khiển chạyy TR1 đặt lên Nếu cần số đếm ban đầu, các ghi timer TL1/TH1 phải khởi động Nhớ lại là các timer đếm lên và đặt cờ báo tràn có truyển tiếp FFFFH sang 0000H - Đọc timer chạy Trong số ứng dụng cần đọc giá trị các ghi timer chạy Vì phải đọc ghi timer “sai pha” có thể xẩy byte thấp tràn vào byte cao hai lần đọc Giá trị có thể đọc không đúng Giải pháp là đọc byte cao trước, kế đó đọc byte thấp đọc byte cao lại lần Nếu byte cao đã thay đổi thì lập lại các hoạt động đọc 7.8 Các khoảng ngắn và các khoảng dài Dãy các khoảng thời gian có thể định thời là bao nhiêu ? vấn đề này khảo sát với 8051/8031 hoạt động với tần số 12MHz xung nhịp các timer coù taàn soá laù MHz Khoảng thời gian ngắn có thể có bị giới hạn không tần số xung nhịp timer mà còn phần mềm Do ảnh hưởng thời khoảng thực lệnh Leäng ngaén nhaát 8051/8031 laø moät chu kyø maùy hay 1µs Sau ñaây laø baûng toùm taét caùc kỹ thuật để tạo khoảng thời gian có chiều dài khác (với giả sử xung nhòp cho 8051/8031 coù taàn soá 12 MHz) Khoảng thời gian tối đa Kyõ thuaät ≈10 - Baèng phaàn meàm 256 - Timer bit với tự động nạp lại 65535 - Timer 16 bit Không giới hạn - Timer 16 bit cộng với các vòng laäp phaàn meàm Các kỹ thuật để lập trình các khoảng thời gian (FOSC=12 MHz) Hoạt động port nối tiếp 8.1 Giới thiệu 8051/8031 có port nối tiếp chip có thể hoạt động nhiều chế độ khác trên dãy tần số rộng Chức chủ yếu port nối tiếp là thực chuyển đổi song song sang nối tiếp với liệu xuất và chuyển đồi nối tiếp sang song song với liệu nhập Truy xuất phần cứng đến port nối tiếp qua các chân TXD và RXD Các chân này có các chức khác với hai bit port P3 chân 11 (TXD) và P3.0 chaân 10 (RXD) Port nối tiếp cho hoạt động song công (full duplex : thu và phát đồng thời) và đệm lúc thu (receiver buffering) cho phép ký tự thu và giữ Trang 32 (33) Luaân vaên toát nghieäp ký tự thứ hai nhận Nếu CPU đọc ký tự thứ trước ký tự thứ hai thu đầy đủ thì liệu không bị Hai ghi chức đặc biệt cho phép phần mềm truy xuất đến port nối tiếp là : SBUF và SCON Bộ đếm port nối tiếp (SBUF) đại 99H thật sử là hai đếm Viết vào SBUF để truy xuất liệu thu Đây là hai ghi riêng biệt ghi ghi để phát và ghi để thu TXD (P3.1) RXD (P3.0) CLK Xung nhòp toác Độ baud (thu) SUBF (Chæ ghi) Q D CLK Xung nhòp toác Độ baud (thu) Thanh ghi dòch SBUF (chỉ đọc) SBUF (chỉ đọc) BUS noäi 8051/8031 Hình 2.9: Sơ đồ port nối tiếp Thanh ghi điều khiển port nối tiếp (SCON) địa 98H là ghi có địa bit chứa các bit trạng thái và các bit điều khiển Các bit điều khiển đặt chế độ hoạt động cho port nối tiếp, và các bit trạng thái báo cáo kết thúc việc phát thu ký tự Các bit trạng thái có thể kiểm tra phần mềm có thể lập trình để tạo ngắt Tần số làm việc port nối tiếp còn gọi là tốc độ baund có thể cố định (lấy từ giao động chip) Nếu sử dụng tốc độ baud thay đổi, timer cung cấp xung nhịp tốc độ baud và phải lập trình 8.2 Thanh ghi ñieàu khieån port noái tieáp Chế độ hoạt động port nối tiếp đặt cách ghi vào ghi chế độ port nối tiếp (SCON) địa 98H Sau đây các bảng tóm tắt ghi SCON và các chế độ port nối tiếp : Trang 33 (34) Luaân vaên toát nghieäp Bit SCON.7 SCON.6 SCON.5 Kyù hieäu SM0 SM1 SM2 Ñòa chæ 9FH 9EH 9DH SCON.4 REN 9CH SCON.3 TB8 9BH SCON.2 SCON.1 RB8 TI 9AH 99H SCON.0 RI 98H Moâ taû Bit chế độ port nối tiếp Bit chế độ port nối tiếp Bit chế độ nối tiếp cho phép truền thông đã xử lý các chế độ và ;RI không bị tác động bit thứ thu là Cho pheùp boä thu phaûi ñaët leân để thu (nhận) các ký tự Bit phát, bit thứ phát các chế độ và 3; đặt vaø xoùa baèng phaàn meàm Bit thu, bit thứ thu Cờ ngắt phát Đặt lên kết thúc phát ký tự; xóa phaàn meàm Cờ ngắt thu Đặt lên Kết thúc thu ký tự; xóa Baèng phaàn meàm Bảng 2.7:Tóm tắt ghi chế độ port nối tiếp SCON SM0 0 1 SM1 1 Chế độ Moâ taû Thanh ghi dòch UART bit UART bit UART bit Tốc độ baud Coá ñònh (Fosc/12) Thay đổi (đặt timer) Cố định (Fosc/12 Fosc/64) Thay đổi (đặt timer) Bảng 2.8: Các chế độ port nối tiếp Trước sử dụng port nối tiếp, phải khởi động SCON cho đúng chế độ Ví duï ,leänh sau: MOV SCON,#01010010B Khởi động port nối tiếp cho chế độ (SM0/SM1=0/1), cho phép thu (REN=1) và đặt cờ ngắt phát (TP=1) để phát sẵn sàng hoạt động 8.3 Khởi động và truy xuất các ghi cổng nối tiếp a Cho pheùp thu: Bit cho phép thu (REN = Receiver Enable) SCON phải đặt lên phần mềm phép thu các ký tự Thông thường thực việc này Trang 34 (35) Luaân vaên toát nghieäp đầu chương trình khởi động cổng nối tiếp, timer Có thể thực việc này theo hai caùch Leänh : SETB REN Sẽ đặt REN lên 1, lệnh : MOV SCON,#xxx1xxxxB Sẽ đặt REN và đặc xóa các bit khác trên SCON cần (các x phải là để đặc chế độ làm việc) b Bit liệu thứ 9: Bit liệu thứ cần phát các chế độ và 3, phải nạp vào TB8 phần mềm Bit liệu thứ thu đặt RBS Phần mềm có thể cần không cần bit liệu thứ 9, phụ thuộc vào các đặc tính kỹ thuật thiết bị nối tiếp sử dụng (bit liệu thứ đóng vai trò quan trọng truyền thông đa xử lý) c Theâm bit parity: Thường sử dụng bit liệu thứ để thêm parity vào ký tự Như đã xét các chương trước, pit P từ trạng thái chương trình (PSW) đặt lên bị xóa chu kỳ máy để thiết lập kiểm tra chẵn với bit tích lũy d Các cờ ngắt: Hai cờ ngắt thu và phát (RI và TI) SCON đóng vai trò quan trọng truyền thông nối tiếp dùng 8051/8031 Cả hai bit đặt lên phần cứng, phải xóa phần mềm 8.4 Tốc độ baud port nối tiếp Như đã nói, tốc độ baud cố định các chế độ và Trong chế độ nó luôn luôn là tần số dao động trên chip chia cho 12 Thông thường thạch anh ấn định tần số dao động trên chip 8051/8031 có thể sử dụng nguồn xung nhịp khác Giả sử với tần số dao động danh định là 12 MHz, tìm tốc độ baud chế độ laø MHz Dao động treân chip Xung nhòp tốc độ baud ÷12 a Chế độ ÷64 SMOD=0 Dao động treân chip SMOD=1 ÷32 b Chế độ Trang 35 Xung nhòp tốc độ baud (36) Luaân vaên toát nghieäp ÷32 SMOD=0 Dao động treân chip SMOD=1 ÷16 ÷16 Xung nhòp tốc độ baud c Chế độ và Hình 2.10 Caùc nguoàn taïo xung nhòp cho port noái tieáp Mặc nhiên, sau reset hệ thống, tốc độ baud chế độ là tần số dao động chia cho 64 Tốc độ baud ảnh hưởng bit ghi điều khiển nguoàn cung caáp (PCON) Bit cuûa PCON laø bit SMOD Ñaët bit sMOD leân moät laøm gấp đôi tốc độ baud chế độ 1,2 và Trong chế độ 2, tốc độ baud có thể bị gấp đôi từ giá trị mặc nhiên 1/64 tần số dao động (SMOD=0) đến 1/32 tần số dao động (SMOD=1) Vì PCON không định địa theo bit, nên để đặt bit SMOD lên cần phaûi theo caùc leänh sau: MOV A,PCON lấy giá trị thời PCON SETB ACC.7 ñaët bit (SMOD) leân MOV PCON,A ghi giá trị ngược PCON Các tốc độ baud các chế độ và xác định tốc độ tràn timer Vì timer hoạt động tần số tương đối cao, tràn timer chia thêm cho 32 (hay 16 SMOD=1) trước cung cấp xung nhịp tốc độ baud cho port nối tiếp Hoạt động ngắt Ngắt là hoạt động ngừng tạm thời chương trình này để tji hành chöông trình khaùc Caùc ngaét coù moät vai troø quan troïng thieát keá vaø khaû naêng thực thi vi điều khiển Chúng cho phép hệ thốn đáp ứng không cùng lúc tới công việc và giải công việc đó chương trình khác thực thi Một hệ thống điều khiển ngắt cho ảo giác là làm nhiều việc đồng thời Dĩ nhiên CPU lần không thể thực thi chương trình để thực thi chương trình khác, quay chương trình đầu có yêu cầu ngắt Chương trình giải ngắt gọi lả chương trình phục vụ ngắt (ISR : Interrupt Sevice Reutine) 9.1 Tổ chức ngắt Ơû 8051 có nguồn ngắt: - ngắt ngoài - ngắt từ timer - ngaét port noái tieáp Trang 36 (37) Luaân vaên toát nghieäp Tất các ngắt không đặt sau reset hệ thống và cho phép ngắt riêng rẽ phần mềm a Cho pheùp vaø khoâng cho pheùp ngaét Mỗi nguồn ngắt cho phép không cho phép ngắt qua ghi chức đặt biệt cố định địa bit IE (Interrupt Enable : cho phép ngắt) địa A8H Cũng các bit cho phép nguồn ngắt, có bit cho phép cấm toàn xóa để cấm tất các ngắt đặt lên phép tất các ngaét Bit IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 Kyù hieäu EA EA ET5 E5 ET1 EX1 ET0 EX0 Ñòa chæ bit AFH AEH ADH ACH ABH AAH A9H A8H Moâ taû (1=cho pheùp,0=caám) Cho phép cấm toàn Không định nghĩa Cho phép ngắt từ timer (8052) Cho pheùp ngaét Port noái tieáp Cho phép ngắt từ timer Cho phép ngắt ngoài Cho phép ngắt từ timer Cho phép ngắt ngoài Toùm taét ghi IE b Öu tieân ngaét Mỗi nguồn ngắt đuợc lập trình riêng vào hai mức ưu tiên qua ghi chức đặc biệt địa bit Ip (Interrupt priority : ưu tiên ngắt) địa B8H Bit IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0 Kyù hieäu Ñòa chæ bit PT2 PS PT1 PX1 PT0 PX0 BDH BCH BBH BAH B9H B8H Mô tả (1=mức cao hơn,0=mức thấp) Không định nghĩa Không định nghĩa Ưu tiên cho ngắt từ timer (8052) Öu tieân cho ngaét Port noái tieáp Ưu tiên cho ngắt từ timer Ưu tiên cho ngắt ngoài Ưu tiên cho ngắt từ timer Ưu tiên cho ngắt ngoài Toùm taét ghi IP Các ngắt ưu tiên xóa sau reset hệ thống để đặ ttất các ngắt mức öu tieân thaáp hôn 9.2 Xử lý ngắt Trang 37 (38) Luaân vaên toát nghieäp Khi có ngắn xẩy và 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 hành - Caùc DC vaøo ngaét xeáp - Trạng thái ngắt hành cất bên - Các ngắt chặn mức ngắt - Nap vaøp DC ñòa chæ Vector cuûa ISR - ISR thực thi ISR thực thi và đáp ứng ngắt ISR hoàn tất lệnh RET1 Điều này làm lấy lại giá trị cũ PC từ ngăn xếp và lấy lại trạng thái ngắt cũ Chương trình lại tiếp tục thi hành nơi mà nó dừng • Caùc Vector ngaét Khi chấp nhận ngắt, giá trị nạp vào PC gọi là Vector ngắt Nó là địa bắt đầu ISR cho nguồn tạo ngắt Các Vector ngắt cho bảng sau: Ngaét Reset heä thoáng Bên ngoài Timer Bên ngoài Timer Port noái tieáp Cờ Ñòa chæ Vector 0000H RST 0003H IE0 000BH TF0 0013H IE1 001BH TF1 TI RI 0023H Caùc Vector ngaét Vector reset hệ thống (RST địa 0000H) nó giống ngắt Nó ngắt chương trình chính và tải vào PC giá trị Khi đến ngắt “cờ gây ngắt tự động bị xóa phần cứng, trừ R1, T1 cho các ngắt cổng nối tiếp Vì có hai nguồn có thể có cho ngắt này, không thực tế để CPU xóa cờ ngắt này Các bit phải kiểm tra ISR để xác định nguồn ngắt và cờ tạo ngắt xóa phần mềm 9.3 Caùc ngaét cuûa 8051 a Caùc ngaét timer Caùc ngaét timer coù ñòa chæ Vector ngaét laø 000BH (timer 0) vaø 001BH (timer 1) Ngắt timer xẩy các ghi timer (TLx ITHx) tràn và set cờ báo tràn (TFx) lên Các cờ timer (TFx) không bị xóa phần mềm Khi cho phép các ngắt, TFx tự động bị xóa phần cứng CPU chuyển đến ngắt b Caùc ngaét coång noái tieáp Ngắt cổng nối tiếp xẩy cờ phát (TI) cờ ngắt thu (KI) đặt lên Ngắt phát xẩy ký tự đã nhận xong và đợi SBUP để đọc Các ngắt cổng nối tiếp khác với các ngắt timer Cờ gây ngắt cổng nối tiếp không bị xóa phần cứng CPU chuyển tới ngắt Do có hai nguồn ngắt cổng nối tiếp Ti và RI Nguồn ngắt phải xác định ISR và cờ tạo ngắt Trang 38 (39) Luaân vaên toát nghieäp xóa phần mềm Các ngắt timer cờ ngắt cờ ngắt xóa phần cứng CPU hướng tới ISR c Các ngắt ngoài - Các ngắt ngoài xẩy có mức thấp cạnh xuống trên chân INT0 INT1 vi điều khiển Đây là chức chuyển đổi các bit Port 3.(Port 3.2 vaø Port 3.3) Các cờ tạo ngắt này là các bit IE0 vá IE1 TCON Khi quyền điều khiển đã chuyển đến ISR, cờ tạo ngắt xóa ngắt tích cực cạnh xuống Nếu ngắt tích cực theo mức, thì nguồn yêu cầu ngắt bên ngoài điều khiển mức cờ thay cho phần cứng Sự lựa chọn ngắt tích cực mức thấp hay tích cực cạnh xuống lập trình qua các bit IT0 và IT1 TCON Nếu IT1 = 0, ngắt ngoài tác động múc thấp chân IT1 Nếu IT1 = ngắt ngoài tác động cạnh xuống chế độ này, các mẫu liên tiếp trên chân INT1 mức cao chu kỳ và mức thấp chu kỳ kế, cờ yêu cầu ngắt IE1 TCON đặt lên 1, roài bit IEÙ yeâu caàu ngaét Nếu ngắt ngoài tác động cạnh xuống thì nguồn bên ngoài phải giữ chân tác động mức cao tối thiểu chu kỳ và giữ nó mức thấp thêm chu kỳ để đảm bảo phát cạnh xuống Nếu ngắt ngoài tác động theo mức thì nguồn bên ngoài phải giữ tín hiệu yêu cầu tác động ngắt yêu cầu thật tạo và không tác động yêu cầu ngắt trước ISR hoàn tất Nếu không ngắt khác lặp lại 10 Taäp leänh cuûa 8051/8031 Taäp leänh 8051/8031 coù 255 leänh goàm 139 leänh byte, 92 leänh byte vaø 24 leänh byte 10.1 Các chế độ đánh địa chỉ: tập lệnh có chế độ đánh địa chỉ: a Thanh ghi ñòa ghi: 8051/8031 có bank ghi, bank có ghi đ1nh số từ R0 đến R7 Tại thời điểm có bank ghi tích cực Muốn chọn bank ghi nào ta cần gán các bit nhị phân thích hợp vào RSI (PSW.4) và RS0(PSW.3) ghi traïng thaùi chöông trình (PSW) Maõ leä nh n n n Ñòa chæ ghi Ngoài ra, số ghi đặc biệt ghi tích lũy, trỏ liệu xác định các lệnh nên không cần các bit địa Trong các lệnh này ghi tích lũy xác định là “A”, trỏ liệu là “DPTR”, ghi đếm chương trình là “PC”, cờ nhớ là “C”, cặp ghi tích lũy B là “AB” b Địa trực tiếp Trang 39 (40) Luaân vaên toát nghieäp Trong chế độ này, các ghi bên 8051/8031 đánh địa trực tiếp bit địa nằm byte thứ hai mã lệnh Maõ leä nh Địa trự c tiế p Địa trực tiếp Dù vậy, trình hợp dịch cho phép gọi tên các ghi chức đặc biệt (có địa trực tiếp từ 80H đến FFH) ví dụ :P0 cho port 0, TMOD cho ghi chế độ timer c Ñòa chæ giaùn tieáp R0 và R1 dùng để chứa địa ô nhớ mà lệnh tác động đến người ta quy ước dùng dấu @ trước R0 R1 Maõ leä nh i Ñòa chæ giaùn tieáp d Địa tức thời: Người ta dùng # trước các toán hạng tức thời Các toán hạng đó có thể là số, ký số hay biểu thức toán học Trường hợp dịch tự động tính toán và thay liệu trực tiếp vào mã lệnh Maõ leä nh Dư liệ u tứ c thờ i Địa tức thời e Địa tương đối: Địa tương đối dùng các lệnh nhảy 8051/8031 dùng giá trị bit có dấu để cộng thêm vào ghi đếm chương trình (PC) Tầm nhảy lệnh này khoảng từ –128 đến 127 ô nhớ Trước cộng , ghi PC tăng đến địa theo sau lệnh nhảy tính toán địa offset cần thiết để nhảy đến địa yêu cầu Như địa là địa tương đối so với lệnh không phải là thân lệnh nhảy Thường lệnh này có liên quan đến nhãn định nghĩa trước Maõ leä nh Offset tương đố i Địa tương đối f Địa tuyệt đối: Địa tuyệt đối dùng các lệnh ACALL và JIMP Các lệnh byte này dùng để rẽ nhánh vào trang Kbyte nhớ trương trình cách cấp 11 bit địa thấp (A0-A10) để xác định địa đích trang mã Còn bit cao địa đích (A11-A15) chính là bit cao hành ghi đếm chương trình Vì vaäy ñòa chæ cuûa leänh theo sau leänh reõ nhaùnh vaø ñòa chæ ñích cuûa leänh reõ Trang 40 (41) Luaân vaên toát nghieäp nhaùnh vaø ñòa chæ ñích cuûa leänh reõ nhaùnh caàn phaûi cuøng trang maõ Kbyte (coù cuøng bit ñòa chæ cao) A15 A11 A10 A0 xaùc ñònh trang maõ A10-A8 xaùc ñònh ñòa cchæ trang maõ Maõ Offset tương đố i Địa tuyệt đối g Ñòa chæ daøi: Ñòa chæ daøi chæ duøng cho leänh LCALL vaø LJIMP Caùc leänh naøy chieám byte vaø dùng byte sau (byte và byte 3) để định địa đích lệnh (16 bit) Ưu điểm lệnh này có thể sử dụng toàn vùng nhớ 64 Kbyte Tuy nhiên, lệnh này chiếm nhiều byte và lệ thuộc vào vị trí vùng nhớ Maõ leä nh A15-A8 A7-A0 Ñòa chæ daøi h Ñòa chæ tham chieáu: Địa tham chiếu dùng ghi (hoặc ghi đếm chương trình PC ghi trỏ liệu DPTR) và địa offset (trong ghi tích lũy A) để tạo địa tác động cho các lệnh JMP MOVC Các bảng nhảy và bảng tìm kiếm dễ dàng tạo để sử dụng địa tham chiếu Offset ñòa chæ cô baû n PC hoặ c DPTR + ACC địa đượ c tá c độ ng = Ñòa chæ tham chieáu 10.2/ Caùc nhoùm leänh cuûa 8051/8031 Tập lệnh 8051/8031 chia thành nhóm: - Soá hoïc - Luaän lyù - Chuyển liệu - Chuyeån ñieàu khieån Caùc chi tieát thieát laäp leänh: Rn :Thanh ghi R0 đến R7 bank ghi chọn Trang 41 (42) Luaân vaên toát nghieäp Data : bit địa vùng liệu bên Nó có thể là vùng RAM liệu (0-127) các ghi chức đặc biệt @Ri : bit vùng RAM liệu (0-125) đánh giá địa gián tiếp qua ghi R0 R1 #data : Hằng bit chức câu lệnh #data 16 : Hằng 16 bit chứa câu lệnh Addr16 : 16 bit địa đích dùng lệnh LCALL và LJMP Addr11 : 11 bit địa đích dùng lệnh LCALL và AJMP Rel : Byte offset bit có dấu dùng lệnh SJMP và lệnh nhaûy coù ñieàu kieän Bit : Bit định địa trực tiếp RAM liệu nội các ghi chức đặc biệt a Nhóm lệnh xử lý số học: ADD A,Rn (1byte, chu kyø maùy) : coäng noäi dung ghi Rn vaøo ghi A ADD A,data (2,1): Cộng trực tiếp byte vào ghi A ADD A,@Ri (1,1): Cộng gián tiếp nội dung RAM chứa địa khai baùo Ri vaøo ghi A ADD A,#data (2,1):Cộng liệu tức thời vào A ADD A,Rn (1,1): Cộng ghi và cờ nhớ vào A ADD A,data (2,1): Cộng trực tiếp byte 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 liệu tức thời và cờ nhớ vào A SUBB A,Rn (1,1): Trừ nội dung ghi A cho nội dung ghi Rn và cờ nhớ SUBB A,data (2,1): Trừ trực tiếp A cho số và cờ nhớ SUBB A,@Ri (1,1): Trừ gián tiếp A cho số và cờ nhớ SUBB A,#data (2,1): Trừ nội dung A cho số tức thời và cờ nhớ INC A (1,1): Taêng noäi dung ghi A leân INC Rn (1,1): Taêng noäi dung ghi Rn leân INC data (2,1): Tăng liệu trực tiếp lên INC @Ri (1,1): Taêng giaùn tieáp noäi dung vuøng RAM leân DEC A (1,1): Giaûm noäi dung ghi A xuoáng DEC Rn (1,1): Giaûm noäi dung ghi Rn xuoáng DEC data (2,1): Giảm liệu trực tiếp xuống DEC @Ri (1,1): Giaûm giaùn tieáp noäi dung vuøng RAM xuoáng INC DPTR (1,2): Tăng nội dng trỏ liệu lên MUL AB (1,4): Nhân nội dung ghi A với nội dung ghi B DIV AB (1,4): Chia noäi dung ghi A cho noäi dung ghi B DA A (1,1,): hieäu chænh thaäp phaân ghi A b Nhoùm leänh luaän lyù: ANL A,Rn (1,1): AND nội dung ghi A với nội dung ghi Rn Trang 42 (43) Luaân vaên toát nghieäp ANL A,data ANL A,@Ri (2,1):AND nội dung ghi A với liệu trực tiếp (1,1): AND nội dung ghi A với liệu gián tiếp RAM ANL A,#data (2,1): AND nội dung ghi với liệu tức thời ANL data,A (2,1): AND liệu trực tiếp với A ANL data,#data (3,2): AND liệu trực tiếp với A liệu tức thời ANL C,bit (2,2):AND cờ nhớ với bit trực tiếp ANL C,/bit (2,2): AND cờ nhớ với bù bit trực tiếp ORL A,Rn (1,1): OR ghi A với ghi Rn ORL A,data (2,1): OR ghi A với liệu trực tiếp ORL A,@Ri (1,1): OR ghi A với liệu gián tiếp ORL A,#data (2,1):OR ghi A với liệu tức thời ORL data,A (2,1): OR liệu trực tiếp với ghi A ORL data,#data (3,1):OR liệu trực tiếp với liệu tức thời ORL C,bit (2,2): OR cờ nhớ với bit trực tiếp ORL C,/bit (2,2): OR cờ nhớ với bù bit trực tiếp XRL A,Rn (1,1): XOR ghi A với ghi Rn XRL A,data (2,1): XOR ghi A với mộ liệu trực tiếp XRL A,@Ri (1,1): XOR ghi A với liệu gián tiếp XRL A,#data (2,1): XOR ghi A với mộ liệu tức thời XRL data,A (2,1): XOR liệu trực tiếp với ghi A XRL dara,#data (3,1): XOR liệu trực tiếp với liệu tức thời SETB C (1,1): Đặt cờ nhớ SETB bit (2,1): Đặt bit trực tiếp CLR A (1,1): Xoùa ghi A CLR C (1,1): Xóa cờ nhớ CPL A (1,1): Buø noäi dung ghi A CPL C (1,1): Bù cờ nhớ CPL bit (2,1): Bù bit trực tiếp RL A (1,1): Quay traùi noäi dung ghi A RLC A (1,1): Quay trái nội dung ghi A qua cờ nhớ RR A (1,1): Quay phaûi noäi dung ghi A RRC A (1,1): Quay phải nội dung ghi A qua cờ nhớ SWAP (1,1): Quay traùi noäi dung ghi A nibble (1/2byte) c Nhóm lệnh chuyển liệu: MOV A,Rn (1,1):Chuyeån noäi dung ghi Rn vaøo ghi A MOV A,data (2,1): Chuyển liệu trực tiếp vào ghi A MOV A,@Ri (1,1): Chuyển liệu gián tiếp vào ghi A MOV A,#data (2,1): Chuyển liệu tức thời vào ghi A MOV Rn,data (2,2): Chuyển liệu trực tiếp vào ghi Rn MOV Rn,#data (2,1): Chuyển liệu tức thời vào ghi Rn MOV data,A (2,1): Chuyển nội dung ghi A vào liệu trực tiếp Trang 43 (44) Luaân vaên toát nghieäp MOV data,Rn (2,2): Chuyển nội dung ghi Rn vào liệu trực tiếp MOV data,data (3,2): Chuyển liệu trực tiếp vào liệu trực tiếp MOV data,@Ri (2,2): Chuyển liệu gián tiếp vào liệu gián tiếp MOV data,#data (3,2): Chuyển liệu tức thời vào liệu trực tiếp MOV @Ri,A (1,1): Chuyển nội dung ghi A vào liệu gián tiếp MOV @Ri,data (2,2): Chuyển liệu trực tiếp vào liệu gián tiếp MOV @Ri,#data (2,1): Chuyển liệu tức thời vào liệu gián tiếp MOV DPTR,#datá6 (3,2): Chuyển 16 bit vào ghi trỏ liệu MOV C,bit (2,1): Chuyển bit trực tiếp vào cờ nhớ MOV bit,C (2,2): Chuyển cờ nhớ vào bit trực tiếp MOV A,@A+DPTR (1,2): Chuyển byte nhớ chương trình có địa là @A+DPRT vaøo ghi A MOVC A,@A+PC (1,2): Chuyển byte nhớ chương trình có địa là @A+PC vaøo ghi A MOV A,@Ri (1,2): Chuyển liệu ngoài (8 bit địa chỉ) vào ghi A MOVX A,@DPTR (1,2): Chuyển liệu ngoài (16 bit địa chỉ) vào ghi A MOVX @Ri,A (1,2): Chuyển nội dung A liệu ngoài (8 bit địa chỉ) MOVX @DPTR,A (1,2): Chuyển nội dung A liệu bên ngoài (16 bit địa chỉ) PUSH data (2,2) : Chuyển liệu trực tiếp vào ngăn xếp và tăng SP POP data (2,2) : Chuyển liệu trực tiếp vào ngăn xếp và giảm SP XCH A,Rn (1,1) : Trao đổi liệu ghi Rn v2 ghi A XCH A,data (2,1) : Trao đổi ghi A và liệu trực tiếp XCH A,@Ri (1,1) : Trao đổi ghi A và liệu gián tiếp XCHD A,@R (1,1) : Trao đổi nibble thấp (LSN) ghi A và LSN liệu gián tiếp d Nhoùm leänh chuyeàn ñieàu khieån: ACALL addr11 (2,2): Gọi chương trình dùng địa chì tuyệt đối LCALL addr16 (3,2): Goïi chöông trình duøng ñòa chæ daøi RET (1,2): Trở từ lệnh gọi chương trình RET1 (1,2): Trở từ lệnh gọi ngắt AJMP addr11 (2,2): Nhảy tuyệt đối LJMP addr16 (3,2): Nhaûy daøi SJMP rel (2,2):Nhaûy ngaén JMP @A+DPTR (1,2): Nhảy gián tiếp từ trỏ liệu JZ rel (2,2): Nhaûy neáu A=0 JNZ rel (2,2): Nhaûy neáu A khoâng baèng JC rel (2,2): Nhảy cờ nhớ đặt JNC rel (2,2): Nhảy cờ nhớ không đặt JB bit,rel (3,2): Nhảy tương đối bit trực tiếp đặt JNB bit,rel (3,2):Nhảy tương đối bit trực tiếp không đặt JBC bit,rel (3,2): Nhảy tương đối bit trực tiếp đặt , xóa bit CJNE A,data,rel (3,2): So sánh liệu trực tiếp với A và nhảy không Trang 44 (45) Luaân vaên toát nghieäp CJNE A,#data,rel (3,2): So sánh liệu tức thời với A và nhảy không CJNE Rn,#data,rel (3,2): So sánh liệu tức thời với nội dung ghi Rn và nhaûy neáu khoâng baèng CJNE @Ri,#data,rel (3,2): So sánh liệu tức thời với liệu gián tiếp và nhảy khoâng baèng DJNZ Rn,rel (2,2): Giaûn ghi Rn vaø nhaûy neáu khoâng baèng DJNZ data,rel (3,2): Giảm liệu trực tiếp và nhảy không Trang 45 (46) Luaân vaên toát nghieäp Chương : KHẢO SÁT VI MẠCH GIAO TIẾP NGOẠI VI 8255 I CẤU TRÚC PHẦN CỨNG 8255A: 8255A là IC ngoại vi chế tạo theo công nghệ LSI dùng để giao tiếp song song Microprocrssor và thiết bị điều khiển bên ngoài Sơ đồ chân 8255A (PDIP) TOP VIEW PIN OUTS Sơ đồ Logic 40 PA4 PA2 PA1 39 PA5 38 PA6 PA0 37 PA7 RD\ 36 WR\ CS\ 35 RESET GND 34 DO A1 33 D1 A0 32 D2 PC7 10 31 D3 PA3 8255A D4 29 D5 PC6 11 30 PC5 12 PC4 13 28 D6 PC0 14 27 D7 PC1 PC2 15 26 VCC 16 25 PB7 PC3 17 24 PC6 PB0 18 23 PC5 PB1 19 22 PC4 PB2 20 21 PC3 PA7-PA0 D0-D7 PC7-PC4 RD\ WR\ RESET PC3-PC0 A0 A1 PB7-PB0 CS\ Hình 3.1: Sơ đồ chân và sơ đồ logic 8255A Teân caùc chaân 8255A: D7-D0 Data bus (Bi-Direction) RESET Reset input CS\ Chip select RD\ Read input WR\ Write input A0A1 Prot Address PA7-PA0 Port A PB7-PB0 Port B PC7-PC0 Port C Trang 46 (47) Luaân vaên toát nghieäp 8255A giao tiếp với Microprocrssor thông qua bus : bus liệu bit D7-D0 bus địa chæ A1A0, bus ñieáu khieån RD\,WR\.SC\.Reset Mã lệnh, thông tin trạng thái và liệu đượ truyền trên đường liệu D7-D0 Microprocrssor gởi liệu đến 8255A Microprocrssor đọc liệu từ 8255A tùy thuộc vào lệnh diều khiển Các đường tín hiệu RD\,WR\ 8255A kết nối với các đường RD\, WR\ Microprocrssor Tín hiệu Reset dùng để khởi động 8255A cấp điện, bị Reset các ghi bên 8255A bị xóa và 8255A trạng thái sẵn sàng làm việc Khi giao tiếp với Microprocrssor, ngõ vào tín hiệu Reset này kết nối tín hiệu Reset Out cuûa Microprocrssor Tín hiệu Chip select CS\ dùng để lựa chọn 8255A Microprocrssor, giao tiếp với nhiều 8255A 8255A coù Port xuaát nhaäp (I/O) coù teân laø Port A,Port B, Port C, moãi Port 8255A bit Port A goàm PA0-PA7, Port B goàm PB0-PB7, Port C goàm caùc bit PC0-PC7 Caùc Port naøy coù theå laø caùc Port Input hay Output tuøy thuoäc vaøo leänh ñieàu khieån, leänh điều khiển Microprocrssor gởi đến chứa ghi lệnh (còn gọi là ghi điều khiển) để điều khiển 8255A các đường địa A1A0 8255A dùng để lựa chọn các Port và ghi A1A0=002 dùng để chọn Port A, A1A0=012 dùng để chọn Port B, A1A0=102 dùng để chọn Port C, A1A0=112 dùng để chọn ghi điều khiển Trong sơ đồ khối 8255A , các Port I/O 8255A chia làm nhóm : nhoùm A goàm Port A vaø bit cao cuûa Port C,nhoùm B goàm Port B vaø bit thaáp cuûa Port C Để sử dụng các Port 8255A người lập trình phải gởi từ điều khiển ghi điều khiển để 8255A định cấu hình cho các Port đúng theo yêu cầu mà người laäp trình mong muoán Trang 47 (48) Luaân vaên toát nghieäp Cấu trúc từ điều khiển 8255A D7 D6 D5 D4 D3 D2 D1 D0 GROUP B PORT C(LOWER) 1=INPUT 0=OUTPUT PORT B 1=INPUT 0=OUTPUT MODE SELECTION 1=MODE 0=MODE GROUP A PORT C(UPPER) 1=INPUT 0=OUTPUT PORT A 1=INPUT 0=OUTPUT MODE SELECTION 00=MODE 01=MODE 1X=MODE MODE SET FLAG 1=ACTIVE II CAÁU TRUÙC PHAÀN MEÀM CUÛA 8255 Do các Port 8255A chia làm nhóm A và nhóm B tách rời nên từ điều khiển 8255A chia làm nhóm Các bit D2D1D0 dùng để định cấu hình cho nhóm B: ♦ Bit D0 dùng để thiết lập bit thấp Port C, D0=0 Port C xuất liệu (output), D0=1 – Port thấp là port nhập liệu (Input) ♦ Bit D1 dùng để thiết lập Port B , D1=0- Port B là Port xuất liệu (output), D1=1 –Port B là Port nhập liệu (input) ♦ Bit D2 dùng để thiết lập Mode điều khiển nhóm B: ƒ D2=0: nhóm B hoạt động modem Trang 48 (49) Luaân vaên toát nghieäp ƒ D2=1: nhóm B hoạt động modem Các bit D6D5D4D3 dùng để định cấu hình cho nhóm A: ♦ Bit D3 dùng để thiết lập bit cao Port C, D3=0-Port C là Port xuất liệu (output),D3=1 Port C là Port nhập liệu (input) ♦ Bit D4 dùng để thiết lập Port A, D4=0- Port A là Port xuất liệu (output), D4=1-Port A là Port nhập liệu (input) ♦ Bit D6D5 dùng để thiết lập Mode điều khiển nhóm B: ƒ D6D5=00:nhóm A hoạt động modem ƒ D6D5=01: nhóm A hoạt động modem ƒ D6D5=1x: nhóm A hoạt động modem III GIAO TIẾP GIỮA VI XỬ LÍ VỚI 8255A - Vi mạch 8255A có thể giao tiếp với vi xử lý theo hai kiểu xuất nhập (I/O) và kiểu nhớ - Khi vi xử lý giao tiếp với 8255A Theo kiểu I/O thì nó dùng 8255A đường địa từ A0 đến A7, còn giao kiểu nhớ thì nó dùng 16 đường A0 đến A15 để giao tiếp, vì dung lượng giao kiểu I/O thấp dung lượng giao kiểu nhớ Giao tieáp kieåu I/O Khi thiết kế vi xử lýgiao tiếp với 8255A theo kiểu I/O thì việc giao tiếp thông qua hai lệnh: In addr – Port và Out addr – Port Dữ liệu giao tiếp luôn chứa ghi A, địa port(addr port) có độ dài 8255A bit Cũng giống nhớ Vi xử lý có thể giao tiếp với nhiều vi mạch 8255A Với 8255A bit địa chỉ, xem địa truy xuất ô nhớ thì vi xử lý có khả truy xuất 255 ô nhớ(với 256 địa chỉ) Mỗi vi mạch 8255A chiếm địa 93 port và ghi điều khiển, nên số lượng vi mạch 8255A có thể giao tiếp với vi xử lý là 64 - kết nối vi xử lý và vi mạch 8255A thì đường địa A0 và A1 dùng để lựa chọn các cổng và ghi điều khiển, còn các đường A2-A7 dùng để lựa chọn vi mạch hoạt động, thông thường các đường địa này đưa vào vi maïch giaûi maõ roài caùc ngoõ cuûa vi maïch giaûi maõ seõ ñöa chaân CS\ cuûa caùc vi maïch 8255A - Ví dụ: thiết kế vi mạch 8255 A giao tiếp với vi xử lý theo kiểu I/O Ta có bảng ñòa chæ caùc vi maïch 8255A IC 8255I A7 0 A6 0 A5 A4 0 0 A3 0 A2 0 A1 A0 HEX 00 03 8255II 0 0 0 0 1 1 04 07 0 Trang 49 (50) Luaân vaên toát nghieäp - - - DATA - 8255I chiếm vùng địa từ 00H đến 03H địa port A=00H, port B=01H ,port C=02H vaø ñòa chæ cuûa ghi ñieàu khieån =03H 8255-I chiếm vùng địa từ 04H đến 07H, địa của: port A=04H, port B=05H, port C=06H vaø ñòa chæ cuûa ghi ñieàu khieån=07H Giao tiếp kiểu nhớ Khi thiết kế giao tiếp 8255 với vi xử lý theo kiểu nhớ; chức 8255 không có gì thay đổi thay đổi địa truy xuất Kiểu I/O, địa port hay ghi có độ dài 8255A bit, kiểu nhớ, địa port hay ghi có độ dài 16 bit giống nhớ nên gọi là kiểu nhớ Khi thiết kế IO theo kiểu nhớ thì port hay ghi điều khiển 8255, xem là ô nhớ Khi đó vi xử lý giao tiếp với 8255 giống nhớ và leänh IN vaø OUT khoâng coøn taùc duïng Kiểu nhớ sử dụng các hệ thống nhỏ đơn giản A B C +5V O0 O1 O2 O3 O4 O5 O6 O7 MicroProcessor E0 E1 E2 Đưa đế n ngõ và o CS\ củ a cá c 8255A A1-A0 CS\ 8255A WR\ CS\ 8255A WR\ CS\ 8255A WR\ RD\ RD\ RD\ D7-D0 CONTROL BUS Hình 3.2: Giao tiếp IC8255A với Microprocessor Ứng dụng 8255: IC giao tiếp IO 825 có nhiều ứng dụng các hệ thống điều khiển dùng MicroProcessor, 8255 đóng vai trò là IC giao tiếp MicroProcessor và đối tượng ñieàu khieån Các ứng dụng 8255 là truyền liệu, giải mã hiển thị, giải mã bàn phím, giao tieáp ñieàu khieån tuøy theo yeâu caàu Trang 50 (51) Luaân vaên toát nghieäp Chương4:KHẢO SÁT BỘ NHỚ BÁN DẪN Vi điều khiển (Microcontroller) là IC chuyên xử lý liệu điều khiển theo chương trình, muốn vi điều khiển thực công việc gì thì người sử dụng phải lập trình Chương trình phải lưu trữ phận nào đó, để vi điều khiển nhận lệnh và thi hành, đôi lúc xử lý,chương trình vi điều khiển cần nơi để lưu trữ tạm thời liệu chính nhớ Các nhớ vi điều khiển là các IC, các IC nhớ này có thể đọc liệu ra, ghi liệu vào đọc liệu Đôi nhớ vi khiển không đủ để lưu trữ thông tin cần thiết chạy chương trình, đo phải dùng kỹ thuật mỡ rộng nhớ Ι BỘ NHỚ CHỈ ĐỌC(ROM:Read Only Memory) Loại nhớ này thiết kế để lưu trữ các liệu cố định Trong lúc hoạt động bình thường liệu không thể nào ghi vào ROM, mã liệu đọn từ ROM ROM dùng để lưu trữ các chương trình máy tính không bị lieäu maát ñieän Sơ đồ ROM có dung lượng 32 x4bit Ao D0 Add Bus A1 A2 A3 Data D1 ROM D7 CS\ RD\ WR\ Control ROM có bus:bus liệu,bus địa chỉ,bus điều khiển.Với nhớ ROM trên bus địa có đường nên có dung lượng nhớ là 24=16.Bus liệu có đường,từ liệu là 8bit hay 1byte,vậy nhớ ROM này có dung lượng là 16byte.Bus điều khiển cho phép ROM hoạt động đọc hay viết,để đọc liệu ô nhớ nào phải cung cấp địa ô nhớ đó tới các ngõ vào địa tác động đến ngõ vào cho phép CS\ Caáu truùc beân cuûa ROM A0 A1 D7 D0 CS A2 A3 1of dec Row0 R R R R1 R R R R1 R R R1 R1 R R R1 R1 Row3 Ou t put buf Column 1of deco Column d-er Hình 4.1 Sơ đồ cấu trúc đơn giản ROM16 x8 Trang 51 (52) Luaân vaên toát nghieäp Cấu trúc ROM phức tạp,từ sơ đồ trên thì cấu trúc ROM gồm có phaàn chính + Giaûi maõ haøng + Giaûi maõ coät + Ma traän ghi +Đệm ngõ - Ma trận ghi: Lưu trữ liệu đã lập trình từ ROM,mỗi ghi chứa từ liệu,như trường hợp trên ghi lưu trữ bốn từ liệu bit Ngõ từ liệu bit kết nối với bit liệu bên Moãi ghi coù hai ngoõ vaøo cho pheùp.Thanh ghi naøo coù hai ngoõ vào cho phép mức cao thì liệu gởi là bus liệu - Giải mã địa chỉ: mã địa A3A2A1A0 dùng để xác định ghi nào ma trận phép đặt từ liệu 8bit lên bus liệu Hai bit địa A0A1 đưa đến giải mã hai đường sang bốn đường để lựa chọn bốn dòng,hai bit địa A2A3 đưa đến giải mã thứ hai để chọn bốn cột Chỉ ghi hàng và cột chọn địa ngõ vào,và ghi nầy phép gửi lieäu leân bus - Đệm ngõ ra: liệu ghi gữi đưa vào đệm,bộ đệm gữi liệu các đường liệu bên ngoài,khi tín hiệu điều khiển CS mức cao Nếu CS mức thấp thì đệm ngõ trạng thái tổng trở cao và các đường liệu D0 – D7 thã 2.Thời truy xuất nhớ ROM Có khoảng thời gian từ lúc áp đặt địa tới các ngõ vào địa ROM đến lúc liệu xuất ngõ ra(trong lúc ROM hoạt động) thời gian nầy gọi là thời gian trễ hay thời gian truy xuất.Khoảng thời gian từ lúc ngõ vào cho phép CS\ đến lúc liệu xuất gọi là thời gian cho phép xuất liệu Giản đồ thời truy xuất Rom Add input Old address Data output tacc CS New toe High-Z Data output t0 t1 t2 t3 3.Các loại nhớ ROM Trang 52 (53) Luaân vaên toát nghieäp Maskable Programmed ROM(ROMmặt nạ): đây là loại ROM nhà sản xuất nạp sẳn chương trình,khi đã nạp chương trình thì các bit tring ROM này không thay đổi Programmable ROM(PROM): loại ROM này người sử dụng có thể nạp chương trình và nạp lần không thể xóa ErasableProrammable ROM(EPROM): loại ROM này có thể lập trình người sử dụng và có thể xóa nạp nhiều lần Để xóa liệu EPROM phải dùng ánh sáng cực tím để xóa,để lập trình cho ROM phải dùng mạch nạp EPROM EPROM có hai điểm bất lợi: phải lấy EPROM khổi soket để xóa và lập trình lại muốn thay đổi chương trình Khi muốn thay đổi liệu ô nhớ thì phải xóa liệu ô nhớ đó,nhưnng dùng ánh sáng cực tím thì tất liệu EPROM bị xóa và phải nạp lại toàn liệu Khảo sát nhớ EPROM 2764 Trong các mạch điều khiển dùng vi xử lý PROM sử dụng phổ biến vì nó cho phép người sử dụng có thể nạp và xóa các chương trình dễ dàng theo yêu cầu người EPROM 2764 có dung lượng 8kbyte có sơ đồ chân và sơ đồ logic nhö sau: Vpp A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D • 2764 Vcc PGM NC A8 A9 A11 OE\ A10 CE\ D7= D6 D5 D A0 • 2764 A12 CE\ OE\ PGM\ VPP D0 D1 D2 D3 D4 D5 D6 D Hình 4.2 Sơ đồ chân và sơ đồ logic EPROM 2764 – EPROM 2764 có 13 đường địa và đường liệu nên dung lượng 2764 là 213=8192byte lệu hay 8kbyte ,có nguồn cung cấpVcc và Vpp ngõ vào Vcc luôn nối tới nguồn 5v ngõ vào Vpp nối tới nguồn+5v EPROM làm việc chế độ đọc liệu và nối tới nguồn 26v lập trình cho EPROM Hai ngoõ vaøo ñieàu khieån: OE\ dùng để điều khiển đệm cho phép liệu EPROM xuất ngoài hay không CE\ là ngõ vào cho phép có hai chức :khi hoạt động bình thườngCE\ là it1n hiệu cho phép để dọc liệu từ EPROM,CE\ phải mức thấp để mạch điện bên tronglựa chọn liệu và chuyển nó đến output buffer kết hợp với tín hiệu cho OE\ mức thấp,thì liệu xuất các ngõ raD0-D7.Khi CE\ mức cao thì EPROM trạng thái chờ(Standby).công suất tiêu tán lúc này 132mw Baûng traïng thaùi laøm vieäc cuûa EPROM Trang 53 (54) Luaân vaên toát nghieäp MODE CE\ OE\ PGM\ Vpp Vcc Output READ STANDBY PROGAM PROGRAM VERYFY PROGRAM INHIBIT Vil Vih Vil Vil Vil X X Vil Vih X Vil Vih Vcc Vcc Vpp Vpp Vcc Vcc Vcc Vcc Dout HighZ Din Dout Vih X X Vpp Vcc HighZ II.BỘ NHỚ RAM -Ram là nhớ truy xuất ngẩu nhiên, có nghĩa là bất kì ô nhớ nào dễ dàng truy xuất ô nhớ khác -Khuyết điểm Ram là ødữ liệu lưu trữ Ram mất điện -Ưu điểm chính Ram là có thể đọc và ghi nhanh chóng 1.Caáu Truùc Cuûa Ram Tương tự nhó Rom,bộ nhớ Ram gồm có số ghi mổi ghi lưu trữ từ liệu và liệu nhất.Dung lượng bô nhớ Ram là 1K,2K ,8K, 16K ,32K, 64K, 128K, 256K, 512K, và 1024K.và từ 72 liệu là bit Data INPUT BUFFER • RW Register Address Register A5 A4 A3 A2 A1 A0 Register Dec oder Selects One Register Register Output Oo O1 O2 O3 Data Hình 4.3 Sơ đồ cấu trúc bên Ram 64x4 Trang 54 CS\ (55) Luaân vaên toát nghieäp a.Hoạt động đọc liệu từ Ram Mã địa ô nhớ cần đọc liệu đươcï đưa đến ngõ vào địa cuả Ram đồng thời ngõ tín hiệu điều khiển R/W phải mức logic và ngõ vào cho phép(CS) phải mức logic1.khi đó liệu xuất ngõ liệu Khi R/W=1 không cho phép đệm ngõ vào, đó liệu ngõ vào không ảnh hưởng gì đến ô nhớ truy xuất b Hoạt động ghi liệu lên Ram Để ghi liệu vào ghi đã lựa chọn các ngõ vào địa nhớ Ram,đòi hỏi ngõ vàoR/W=0 và CS=1.Tổ hợp hai mức logic này cho phép đệm ngõ vào để đưa từ liệu (4bit) các ngõ vào nạp ghi choïn KhiR/W mức thấp không cho phép đệm ngõ và ngõ trạng thái tổng trở cao(trong lúc ghi liệu).Khi ghi liệu vào ô nhớ thì liệu trước đó maát ñi c.Chip selet (cs) Hầu hết các nhớ có hoặt nhiều ngõ vào CS ,đựơc dùng phép hoacë không cho phép nhớ hoạt động nhiều trường hợp kết nối nhiều nhớ.Khi không cho tất các ngõ váo liệu và ngõ liệu trạng thái tổng trở cao d.Những chân data input-output Để giảm số chân cho Icnhà chế tạo kết hợp chức data input và data output thành chân Input/output, chúng có chức các chân I/O.Khi hoạt động đọc,cá chân I/O hoạt động lá các chân xuất liệu.Khi ghi liệu, các chân I/o hoạt động là các chân liệu 2.Các loại Ram Ram đựơc chia làm loại: -SRAM(Static RAM);là loại linh kiện mà việc lưu trữ liệu dựa vào nguyên tắc hoạt động flip flop D.Dữ liệu vào tồn haitrạng thái logic cuûa maïch soá DRAM(Dynamic Ram):là loại linh kiện nhớ mà liệu lưu trữ điện tích trữ tụ điện Trang 55 (56) Luaân vaên toát nghieäp Chương 5: ĐO NHIỆT ĐỘ I Hệ Thống Đo Lường Giới thiệu Để thực phép đo đại lượng nào đó thì tuỳ thuộc vào đặc tính đại lượng cần đo,điều kiện đo,cũng độ chính xác theo yêu cầu phép đo mà ta có thể thực đo nhiều cách khác trên sỡ các hệ thống đo lường khác Sơ đồ khối hệ thống đo lường tổng quát Maïch ño Chuyeån Chæ thò _ Khối chuyển đổi: làm nhiệm vụ nhận trực tiếp các đại lượng vật lý đặc trưng cho đối tượng cần đo biến đổi các đại lượng thành các đại lượng vật lý thống nhất(dòng điện hay đ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 từ chuyển đổi cho phù hợp với yêu cầu thể kết đo thị _ Khối thị:làm nhiệm vụ biến đổi tín hiệu điện nhận từ mạch đo để theå hieän keát quaû ño Hệ thống đo lường số Hệ thống đo lường số nhóm áp dụng để thực luận văn nầy vì có các ưu điểm:các tín hiệu tương tự qua biến đổi thành các tín hiệu số có các xung rỏ ràng trạng thái 0,1 giới hạn nhiều mức tín hiệu gây sai số Mặt khác ,hệ thống này tương thích với liệu máy tính,qua giao tiếp với máy tính ứng dụng roäng raõi kyõ thuaät a Sơ đồ khối Đại lượng Đại lượng Caû m Caû m á á Cheá bieán Tín hieäu Doàn keânh töông tự Cheá bieán Tín hieäu ADC Vi xử lyù Hieånthò Sử dung Ñieàu khieån choïn Chöông trình Hình 5.1 Sơ đồ khối hệ thống đo lường số b Nguyên lý hoạt động Đối tượng cần đo là đại lượng vật lý,dựa vào các đặc tính đối tượng cần đo mà ta chọn loại cảm biến phù hợp để biến đổi thông số đại lượng vật lý Trang 56 (57) Luaân vaên toát nghieäp cần đo thành đại lượng điện ,đưa vào mạch chế biến tín hiệu(gồm:bộ cảm biến,hệ thống khuếch đại,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 phép tính và xuất lệnh trên sở trình tự lệnh chấp hành đã thực trước đó Bộ dồn kênh tương tự (multiplexers) và chuyển ADC dùng chung tất các kênh Dữ liệu nhập vào vi xử lý có tín hiệu chọn đúng kênh cần xử lý đê đưa vào chuyển đổi ADC và đọc đúng giá trị đặc trưng nó qua tính toán để có kết đại lượng cần đo II Các Phươg Pháp Đo Nhiệt Độ Đo nhiệt độ là phương thức đo lường không điện,đo nhiệt độ chia thaønh nhieàu daõi: + Đo nhiệt độ thấp + Đo nhiệt độ trung bình + Đo nhiệt độ cao Việc đo nhiệt độ tiến hành nhờ các dụng cụ hổ trợ chuyên biệt như: + Caëp nhieät ñieän + Nhiệt kế điện kế kim loại + Nhiệt điện trở kim loại + Nhiệt điện trở bán dẫn + Caûm bieán thaïch anh Việc sử dụng các IC cảm biến nhiệt để đo nhiệt độ là phương pháp thông dụng nhóm sử dụng tập luận văn nầy,nên đây giới thiệu IC cảm bieán nhieät ™ Nguyên lý hoạt động chung IC đo nhiệt độ IC đo nhiệt độ là mạch tích hợp nhận tín hiệu nhiệt độ chuyển thành tín hiệu điện dạng dòng điện hay điện áp.Dựa vào đặc tính nhạy các bán dẫn với nhiệt độ,tạo điện áp dòng điện,tỉ lệ thuận với nhiệt độ tuyệt đối.Đo tín hiệu điện ta biết giá trị nhiệt độ cần đo.Sự tác động nhiệt độ tạo điện tích tự và các lổ trống chất bán dẫn Bằng phá vỡ các phân tư û, bứt các electron thành dạng tự di chuyển qua vùng cấu trúc mạng tinh thể tạo xuất các lỗ trống Làm cho tỉ lệ điện tử tự và lổ trống tăng lên theo qui luật hàm mũ với nhiệt độ ™ Đặc tính số IC đo nhiệt độ thông dụng +AÏD590 Ngoõ laø doøng ñieän Độ nhạy 1A/0K Độ chính xác +40C Nguoàn cung caáp Vcc = – 30V Phạm vi sử dụng –55oc đến 150oc + LX5700 Trang 57 (58) Luaân vaên toát nghieäp Ngoõ laø ñieän aùp Độ nhạy –10mv/0K Phạm vi sử dụng –550C – 1500C + LM135,LM335 Ngoõ laø ñieän aùp Độ nhạy 10mv/0C Sai số cực đại 1,50C nhiệt độ lớn 1000C Phạm vi sử dụng –550C – 1500C Trang 58 (59) Luaân vaên toát nghieäp Chương : CHUYỂN ĐỔI TƯƠNG TỰ – SỐ I KHAÙI NIEÄM CHUNG Ngày việc truyền đạt tín hiệy quá trình điều khiển và thị phần lớn thực theo phương pháp số Trong đó tín hiệu tự nhiên có dạng tương tự như:nhiệt độ,áp suất ,cường độ ánh sáng,tốc độ quay,tín hiệu âm thanh…Để kết nối nguồn tín hiệu tượng tự với các hệ thống xử lý số người ta dùng các mạch chuyển đổi tương tự sang số(ADC) nhằm biến đổi tín hiệu tương tự sang số trừơng hợp ngược lại cần biến đổi tín hiệu số sang tương tự thi duøng caùc maïch DAC (Digital Analog Converter) II NGUYÊN TẮT THỰC HIỆN CHUYỂN ĐỔI ADC Mạch chuyển đổi tin hiệu tương tự sang số,chuyển 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ó nhiều phương pháp.Tuy nhiên,mỗi phương pháp điều có thông số khác nhau: +Độ chính xác chuyển đổi AD + Tốc độ chuyển đổi + Dãi biến đổi tín hiệu tương tự ngõ vào VA V’A Startcommand + Control Unit clock Comparator D/A converter Register Digital output Hình 6.1 Sơ đồ khối tổng quát mạch ADC ™ Hoạt động -Đầu tiên kích xung start để ADC hoạt động -Tại tần số xác định xung clock điều khiển làm thay đổi thành số nhị phân lưu trữ ghi(Register).-Số nhị phân ghi chuyển thành dạng điện áp V’a chuyển đổi DA -Bộ so sánh,so sánh V’a với điện áp ngõ vào Va Nếu V’a < Va thì ngõ so sánh giữ mức cao Khi V’a > Va ngõ bọâ so sánh xuống mức thấp và quá trình thay đổi số ghi ngưng Lúc này V’a gần Va , số ghi là số cần chuyển đổi Trang 59 (60) Luaân vaên toát nghieäp III.CÁC PHƯƠNG PHÁP CHUYỂN ĐỔI AD Phöông phaùp tích phaân (Intergration method) Phương pháp tích phân giống phương pháp chuyển đổi ADC duøng tín hieäu doác ñoâi (Dual-Slope-ADC) Caáu truùc maïch ñieän ñôn giaûn hôn nhöng tốc độ chuyển đổi chậm C Vin R Vref Ñieän aùp chuaån Clock _ _ + + Maïch tích h â Maïch so saùnh Maïch logic ñieàu khieån Start Bộ đếm • • • • Ngoõ á Hình 6.2 Sơ đồ nguyên lý mạch chuyển đổi AD dùng phương pháp tích phaân * Hoạt động -Khi có xung start mạch đếm đưa trạng thái reset Mạch logic điều khiển khóa K vị tri 1, điện áp tương tự Vin nạp vào tụ điện C với thời t1 tín hiệu ngõ mạch tích phân giảm dần,và nhỏ 0V thì ngõ so sánh lên mức 1,do đó mạch logic điều khiển mở cổng cho xung clock vào mạch đếm Sau khoảng thời gian t1 mạch đếm tràn mạch logic điều khiển khóa K vị trí 0,khi đó điện áp âm Vref đưa vào ngõ vào mạch tích phân,tụ điện C xả điện với tốc độ không đổi, sau khoảng thời gian t2 tín hiệu ngõ mạch tích phân tăng dần,do đó ngõ mạch so sánh xuống ,mức thấp làm cho mạch logic điều khiển đống cổng và báo kết thúc chuyển đổi Trong suốt khoảng thời gian xả điện t2 mạch đếm tiếp tục đếm kết mạch đếm chính là tín hiệu số cần chuyển đổi tương ứng với điện áp tương tự ngõ vào Vin Trang 60 (61) Luaân vaên toát nghieäp Mối quan hệ điện áp ngõ vào Vin và điện áp chuẩn Vref với t1,t2 t2=t1.vin/vref t1=2n/fck :thời gian mạch đếm từ đến tràn t2=N/fck : thời gian mạch đếm từ tràn đến kết sau cùng -Biểu thức nầy không phụ thuộc vào thời RC,cũng số xung clock(neáu maïch laøm vieäc oån ñònh) -Các tín hiệu tương tự Vin qua mạch tích phân nên các tín hiệu nhiểu bị loại bỏ -Nhược điểm mạch nầy là thời gian chuyển đổi chậm,giừa 2n chu kỳ xung clock lần lấy tích phân thời gian t1 va øN chu kỳ lần lấy tích phân thời gian t2 Thời gian chuyển đổi lớn t1=t2 Thời gian chuyển đổi: T = t1+t2 2.Phöông phaùp ADC xaáp xæ lieân tieáp(Successive- Approximation ADC) Đây là phương pháp d9uo75c sử dụng rộng rãi Tuy nhiên,mạch điện có phức tạp thời gian chuyển đổi ngắn Phương pháp chuyển đổi ADC xấp xỉ liên tiếp có thời gian chuyển đổi cố định không phụ thuộc vaøo ñieän aùp ngoõ vaøo VA + V’A _ Logic ñieàu khieån MSB LSB Clock Start EOC Thanh ghi ñieàu khieån DAC Hình 6.3 Sơ đồ khối chuyển đổi ADC dùng phương pháp xấp xỉ liên tiếp * Hoạt động Khi tác động cạnh xuống xung start thì ADC bắt đầu chuyển đổi -Mạch logic điều khiển đặt bit có nghĩa lớn nhất(Most Signifi cant Bit )của ghi điều khiển lên mức cao và tất các bit còn lại mức thấp.Số nhị phân mạch ghi điều khiển đượ cqua mạch DAC để tạo điện áp tham chiếu V’a Nếu V’a >Va thì ngõ so sánh xuống mức thấp ,làm cho mạch logic điều khiển xóa bit MSB xuống mức thấp Nếu V’a<Va thì ngõ so sánh mức cao và làm cho mạch logic điều khiển giữ bit MSB mức cao Trang 61 (62) Luaân vaên toát nghieäp Tiếp theo mạch logic điều khiển đưa bit có nghĩa kế bit MSB lên mức cao và tạo ngõ khối DAC điện áp tham chiếu v’a đem so sánh tương tự bit MSB trên Quá trình này tiếp tục bit cuối cùng ghi điều khiển Lúc đó v’a gần Va ngõ mạch logic điều khiển báo kết thúc chuyển đổi Như mạch đổi n bit n chu kỳ xung clock nên có thể đạt tốc độ cao Tuy nhiên mạch ADC xấp xỉ liên tiếp lại không thể đáp ứng với tín hiệu tương tự vào biến đổi cực nhanh 3.Phöông phaùp song song (paralled method) Mạch ADC dùng nguyên tắc chuyển đổi song song hay còn gọi là phương pháp ADC nhanh, có cấu trúc mạch điện phức tạp tốc độ chuyển đổi cao Trong vài trường hợp người ta cần mạch chuyển đổi ADC có tốc độ cao vì tín hiễu biến đổi nhanh nên chuyển sang dạng số người ta cầ mạch ADC có tốc độ cao Vref + R/2 13 ULSB + 11 ULS + ULSB ULSB + 1D C1 X1 1D C1 X2 1D C1 X3 1D C1 X4 • + 55 ULSB 22 + ULSB + ULSB R/2 Vin • D2 • D1 1D C1 X5 1D C1 X6 1D C1 X7 D0 G Hình 6.4 Sơ đồ khối mạch chuyển đổi AD dùng phương pháp song song * Hoạt đông Trang 62 (63) Luaân vaên toát nghieäp Mạch bao gồm: khối so sánh song song và mạch mã hoá Tín hiệu tương tự vào các mạch so sánh cùng lúc, các trạng thái mạch so sánh đưa vào các flip flop D để đưa đến mã hóa,đầu mạch mã hóa chính là đầu cuûa maïch ADC Mạch so sánh và mạch mã hóa là loại mạch có tốc độ xử lý cao nên tổng thời gian trễ vài chục ns,nhờ chuyển đổi xẩy nhanh Tuy nhiên với mạch ADC nhanh bit thì nó đồi hỏi bảy so sánh bit thì cần đến 63 so sánh đó là nhược điểm mạch ADC dùng phương pháp so sánh Bảng thật mạch chuyển đổi Ñieän aùp Ngoõ boä so saùnh Tín hieäu soá vaøo ngoõ Vin/VLSB K7 K6 K5 K4 K3 K2 K1 D1 D2 D3 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 Trang 63 (64) Luaân vaên toát nghieäp Chöông 7: THIEÁT KEÁ-THI COÂNG I NHIEÄM VUÏ THIEÁT KEÁ: Nhiệm vụ cần thực là thiết kế mạch đo nhiệt độ từ 0oC – 99oC và khống chế nhiệt độ 20oC Vậy yêu cầu đặt đây là: + Thiết kế cảm biến nhiệt độ + Thiết kế chuyển đổi tương tự sang số + Thiết kế nhớ + Thieát keá boä giao tieáp + Vieát chöông trình ñieàu khieån II SƠ ĐỒ VAØ CHỨC NĂNG TỪNG KHỐI: Vi xử lý ADC Giao tieáp vaø taïo tín Caûm bieán Thieát bò ROM Hieån thò Sơ đồ khối mạch đo lường và khống chế nhiệt độ phòng dùng 8051 Nhiệm vụ khối: - Khối vi xử lý: điều hành hoạt động hệ thống - Khối ROM: lưu trữ chương trình điều hành hoạt động - Khoái giao tieáp vaø taïo tín hieäu ñieàu khieån: Khối này có nhiệm vụ là nhận tín hiệu từ ngoài để đưa vào xử lý và nhận tín hiệu từ vi xử lý để điều khiển đóng ngắt các thiết bị - Khối cảm biến: có nhiệm vụ là đo lường nhiệt độ từ môi trường xung quanh - Khối ADC: chuyển đổi tín hiệu từ tương tự sang số - Khối hiển thị: hiển thị nhiệt độ môi trường - Khối thiết bị: là các dụng cụ diều khiển máy sưởi, máy lạnh Trang 64 (65) Luaân vaên toát nghieäp III THIẾT KẾ VAØ PHÂN TÍCH NGUYÊN LÝ HOẠT ĐỘNG TỪNG KHỐI: Boä caûm bieán: Để đo nhiệt độ chính xác, tất nhiên cần có đầu dò thích hợp Đầu dò là cảm biến nhiệt độ có nhiệm vụ vận chuyển từ nhiệt độ qua tín hiệu điện Có nhiều loại cảm biến giới thiệu chương V Nhưng dựa vào lý thuyết và thực tế mạch cần thiết kế ta dùng phương pháp đo IC cảm biến nhiệt độ Các IC cảm biến nhiệt độ có độ chính xác cao, dễ tìm và giá thành rẽ Một số đó là IC LM35, là loại thông dụng trên thị trường nay, đồng thời nó có đặc tính làm việc phù hợp với thiết kế chi tiết mạch a Moät soá tính chaát cô baûn cuûa LM35: - LM35 có độ biến thiên theo nhiệt độ: 10mV / 1oC - Độ chính xác cao, tính cảm biến nhiệt độ nhạy, nhiệt độ 25oC nó có sai số không quá 1% Với tầm đo từ 0oC – 128oC, tín hiệu ngõ tuyến tính liên tục với thay đổi tín hiệu ngõ vào - Thoâng soá kyõ thuaät: Tieâu taùn coâng suaát thaáp Dòng làm việc từ 400µA – 5mA Dòng ngược 15mA Doøng thuaän 10mA Độ chính xác: làm việc nhiệt độ 25oC với dòng làm việc 1mA thì điện áp ngõ từ 2,94V – 3,04V - Ñaëc tính ñieän: Theo thông số nhà sản xuất LM35, quan hệ nhiệt độ và điện áp ngõ nhö sau: Vout = 0,01×ToK = 2,73 + 0,01ToC Vậy ứng với tầm hoạt động từ 0oC – 100oC ta có biến thiên điện áp ngõ là: Ở 0oC thì điện áp ngõ Vout = 2,73 (V) Ở 5oC thì điện áp ngõ Vout = 2,78 (V) …………………………………… o Ở 100 C thì điện áp ngõ Vout = 3,73 (V) Tầm biến thiên điện áp tương ứng với nhiệt độ từ 0oC - 100oC là 1V b Thieát keá cuï theå maïch caûm bieán duøng LM35: + Sơ đồ mạch : +5V Vout LM35 VR Trang 65 (66) Luaân vaên toát nghieäp + Tính toán và chọn linh kiện: Ta coù: 400µA < IR < 5mA − V0 < mA R − V0 − V0 <R< 400 µA 5mA 400µA < ⇔ ⇔ Vì: 2,73V ≤ Vo ≤ 3,73 Neân: 254 < R < 5,7 k (1) Maët khaùc, theo thoâng soá cuûa nhaø saûn xuaát ñieän aùp treân LM35 taïi Tc = 25oC, IR = 1mA thì Vo = 2,98 (V), ta coù: 400µA < − 2,98 < 5mA R Từ (1) và (2): chọn R = 2,2 kΩ chọn biến trở chỉnh offset VR = 15 kΩ c Thiết kế mạch khuếch đại: Đây là mạch trung gian cảm biến và mạch ADC Với mạch này thì đầu vào là cảm biến Vo = 2,73 V + 0,01ToC Khoảng biến thiên điện áp dải nhiệt độ từ 0oC – 100oC là volt Trong đó, yêu cầu mạch dùng chuyển đổi tín hiệu tương tự sang số ADC 0809 có mức điện áp từ 0V – 5V Ta sử dụng mạch khuếch khuếch đại điện áp với thiết kế sau: R5 +5V R1 IF R3 D1 VR1 V1 - ADC + VR2 Caûm bieán Vo Vcc R2 V2 R4 Hình 7.1 Sơ đồ mạch khuếch đại Trang 66 (67) Luaân vaên toát nghieäp Theo hình 7.1 thì V- và V+ tính: R4 V2 R2 + R4 R3 − V1 V- = (V0 − V1 ) R3 + R5 V+ = Theo tính chaát cuûa Op-Amp V+ = VSuy : R4 R3 + V1 V2 = (V0 − V1 ) R2 + R4 R3 + R5 V1 : điện áp ngõ vào đảo Op-Amp và V1 = 2,73 volt V2 : tín hieäu cuûa caûm bieán vaø V2 = 2,73 + 0,01ToC V0 : ñieän aùp ngoõ cuûa Op-Amp vaø V0 = K.(V2 – V1) K : hệ số khuếch đại Ta xét nhiệt độ TC = 0oC thì V2 = V1; V0 = volt (3) ⇒ R4 R5 = R2 + R4 R3 + R5 Để đơn giản chọn R2 = R3 ; R4 = R5 Nhö vaäy: V0 = R5 (V2 − V1 ) R3 Chọn hệ số khuếch đại K = R5 / R3 = Maët khaùc: doøng cuûa Op-Amp I0 < 20mA Neân: doøng hoài tieáp IF << 20mA IF = V0 − V1 R3 + R5 R3 + R5 >> Maø V0max = 5V V1 = 2,73V << 20mA V0 − V1 20mA 2,27 20mA 2,27 6R3 >> 20mA Suy R3 + R5 >> R3 >> 18,40Ω Choïn R3 = kΩ; R5 = kΩ; VR1 = 15 kΩ Vz = 3V; Iz = 20 mA Suy ra: R1 = = 100 Ω VR2 là biến trở chỉnh offset Choïn VR2 = 10 kΩ Trang 67 (68) Luaân vaên toát nghieäp Thiết kế chuyển đổi ADC: 2.1 Giới thiệu ADC 0809: Bộ ADC 0809 là thiết bị CMOS tích hợp với chuyển đổi từ tương tự sang số bit, chọn kênh và bô logic điều khiển tương thích Bộ chuyển đổi AD bit này dùng phương pháp chuyển đổi xấp xỉ tiếp Bộ chọn kênh có thể truy xuất bất kềnh nào các ngõ vào tương tự cánh độc lập Thiết bị này loại trừ khả cần thiết điều chỉnh điểm bên ngoài và khả điều chỉnh tỉ số làm tròn ADC 0809 dễ dàng giao tiếp với các vi xử lý * Sơ đồ chân ADC 0809: IN2 IN1 IN0 A B C ALE 2-1 2-2 2-3 28 2-4 2-8 REF 2-6 15 ADC0809 IN3 IN4 IN5 IN6 14 IN7 START EOC 2-5 OE CLK VCC REF GND 2-7 * YÙ nghóa caùc chaân: IN0 đến IN7 : ngõ vào tương tự A, B, C : giaûi maõ choïn moät ngoõ vaøo -1 -8 Z đến Z : ngoõ song song bit ALE : cho pheùp choát ñòa chæ START : xung bắt đầu chuyển đổi CLK : xung đồng hồ REF (+): ñieän theá tham chieáu (+) REF (-) : ñieän theá tham chieáu (-) VCC : nguoàn cung caáp * Caùc ñaëc ñieåm cuûaADC 0809: Độ phân giải bit Toång sai soá chöa chænh ñònh ± ½ LSB; ± LSB Thời gian chuyển đổi: 100µs tần số 640 kHz Nguoàn cung caáp + 5V Ñieän aùp ngoõ vaøo – 5V Taàn soá xung clock 10kHz – 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dàng giao tiếp với vi xử lý dùng riêng Không cần điều chỉnh zero đầy thang * Nguyên lý hoạt động: Trang 68 (69) Luaân vaên toát nghieäp ADC 0809 có ngõ vào tương tự, ngõ bit có thể chọn ngõ vào tương tự để chuyển đổi sang số bit Các ngõ vào chọn cách giải mã Chọn ngõ vào tương tự thực nhờ chân ADDA , ADDB , ADDC bảng trạng thái sau: A 0 0 1 1 B C 0 1 1 0 1 1 Ngõ vào chọn IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 Sau kích xung start thì chuyển đổi bắt đầu hoạt động cạnh xuống xung start, ngõ EOC xuống mức thấp sau khoảng xung clock (tính từ cạnh xuống xung start) Lúc này bit trọng số lớn (MSB) đặt lên mức 1, tất các bit còn lại mức 0, đồng thời tạo điện có giá trị Vref/2, điện này so sánh với điện vào in + Nếu Vin > Vref/2 thì bit MSB mức + Nếu Vin < Vref/2 thì bit MSB mức Tương tự bit MSB đặt lên và tạo điện có giá trị Vref/4 và so sánh với điện áp ngõ vào Vin Quá trình tiếp tục xác định bit cuối cùng Khi đó chân EOC lên mức báo cho biết đã kết thúc chuyển đổi Trong suốt quá trình chuyển đổi chân OE đặt mức 1, muốn đọc liệu chân OE xuống mức Trong suốt quá trình chuyển đổi có xung start tác động thì ADC ngưng chuyển đổi Maõ N cho moät ngoõ vaøo tuøy yù laø moät soá nguyeân N= 256.(VIN − Vref ( − ) ) Vref ( + ) − Vref ( − ) Trong đó Vin : ñieän aùp ngoõ vaøo heä so saùnh Vref(+): ñieän aùp taïi chaân REF(+) Vref(-): ñieän aùp taïi chaân REF(-) Neáu choïn Vref(-) = thì N = 256 - Vin Vref (+ ) Vref(+) = Vcc = 5V thì đầy thang là 256 Giá trị bước nhỏ Trang 69 (70) Luaân vaên toát nghieäp LSB = = 0,0196 V/byte −1 Vậy với 256 bước Vin = 5V Aùp vào lớn ADC 0809 là 5V • Biểu đồ thời gian ADC 0809 Hình 7.2.1 Biểu đồ thời gian ADC 0809 2.2 Maïch taïo xung clock cho ADC 0809: Sử dụng mạch dao động dùng các cổng not để tạo dao động cho ADC sau: Vcc IK IK 10K 560 Tần số dao động mạch là f = 3RC Tần số dao động chuẩn là 600 kHz Suy 640 = 3RC Với R từ 100Ω đến vài kΩ chọn R =1 kΩ ⇒ C = 500 PF • Sơ đồ kết nối mạch sau: Trang 70 (71) Luaân vaên toát nghieäp Vcc Vcc • Vref + IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 Vcc IK IK Start 0809 10K Vref _ GND 560 OE ALE C B A D7 D6 D5 D4 D3 D2 D1 D0 PC5 PC4 8255 PC2 PC1 PC0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 8255 Hình 7.2.2 Sơ đồ kết nối mạch chuyển đổi ADC 0809 Để thực các việc chuyển đổi nhận liệu từ ADC ta thực các bước sau: • Khởi tạo 8255 • Chọn ngõ vào tương tự, ví dụ chọn Ino cách gửi giá trị 0000 = 00H bit thaáp cuûa portc • Chốt địa đồng thời kích xung clock cách gửi giá trị 0001 = 01H bit cao cuûa portc • Trì hoãn khoảng thời gian 200µs để ADC thực xong hoàn toàn việc chuyển đổi • Nhận liệu từ ADC vào port tương ứng Thiết Kế Bộ Nhớ: 3.1 Giải đa hợp các đường PA0 – PA7 8051: Khi sử dụng nhớ ngoài, port0 không còn là port I/0 túy Nó kết hợp bus địa A7 = A0 và bus liệu D7 = D0 với tín hiệu ALE để chốt byte thất bus địa bắt đầu chu kỳ nhớ Port2 dùng cho byte cao bus địa Do đó cần phải giải đa hợp các đường này rời Trang 71 (72) Luaân vaên toát nghieäp Hình 7.3.1 Sơ đồ kết nối 8051 với IC chốt 74LS373 Tín hiệu ngõ vào E IC 74LS373 là tín hiệu chốt E mức logic 1: liệu đến ngõ vào D đưa đến ngõ Q tín hiệu ngõ vào thay đổi thì tín hiệu ngõ thay đổi Khi E mức logic liệu ngõ vào không đưa đến ngõ ra,dữ liệu xuất ngõ Q chính là liệu trước đó D Tại thời điểm này liệu ngõ vào D thay đổi không ảnh hưởng đến liệu ngõ Do đó tín hiệu ALE lấy làm tín hiệu chốt đưa đến ngõ vào chốt E IC chốt 74LS373 3.2 Kết nối tổng quát Micsocontroller với nhớ: Bộ nhớ có vai trò quan trọng máy tính dùng để lưu trữ liệu, là nơi để Misocontroller xử lý liệu Bộ nhớ máy tính bao gồm các nhớ ROM, RAM, chúng kết nối với thông qua các bus: bus địa (Address bus), bus liệu (Databus), bus điều khiển (Control bus) Add bus Microcontroller Memory IC Memory IC Data bus Control bus Hình 7.3.2 Sơ đồ kết nối tổng quát vi điều khiển với nhớ • Hoạt động Micsocontroller ghi liệu vào nhớ và đọc liệu từ nhớ + Hoạt động ghi liệu: Trang 72 (73) Luaân vaên toát nghieäp Vi điều khiển tạo địa ô nhớ cần lưu trữ liệu, đặt địa này lên bus địa chæ Vi điều khiển đặt liệu lên bus liệu Vi điều khiển tác động đến tín hiệu điều khiển ghi bus điều khiển IC nhớ giải mã địa này để xác định ô nhớ nào lưu trữ liệu này Dữ liệu trên bus truyền vào ô nhớ đã lựa chọn + Hoạt động đọc liệu: Vi điều khiển tạo địa ô nhớ cần đọc liệu đặt địa này lên bus ñòa chæ Vi điều khiển tác động đến tín hiệu điều khiển đọc bus điều khiển IC nhớ giải mã địa này để xác định ô nhớ nào lựa chọn lên bus liệu để truyền vào vi điều khiển 3.3 Trình tự thiết kế nhớ: 8051 có khả mở rộng nhớ đến 64 kbyte nhớ chương trình và 64 kbyte nhớ liệu bên ngoài Tuy nhiên để phù hợp với nhu cầu thiết kế và thi công đòi hỏi đơn giản Vi mạch sử dụng là EPROM 2764 và Ram 6264 các cổng vào dùng 8255 xem là vùng nhớ chế độ giao tiếp vào tương tự ROM và RAM, có 16 kbyte từ kbyte đầu tiên đến kbyte 16, và 16 kbyte vùng nhớ dành cho IC 8255 đã trình bày trên Còn phần còn lại bỏ troáng 3.3.1 Thiết kế nhớ chương trình: Do EPROM yêu cầu sử dụng có dung lượng là kbyte, nên IC này có 13 đường địa A12 − A0 Địa ô nhớ đầu tiên là 00004 và địa ô nhớ cuối là FFFH Như gắn EPROM vào vùng nhớ vi điều khiển thì nó chiếm vùng nhớ 00004 − FFFH Ta có bảng đồ nhớ sau: IC A15 A14 A13 A12 A11 A10 A9 A8 A7 RO 0 0 0 0 M 0 1 1 1 A6 A5 1 A4 A3 A2 A1 A0 hex 0 0 000 1 1 1FF F 3.3.2 Thiết kế nhớ liệu: Tương tự ROM, RAM có dung lượng kbyte phải thiết theo nhớ ROM nên RAM Có địa đầu là 2000H và địa cuối là FFF Ta có đồ nhớ RAM sau: IC A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 hex RA 0 0 0 0 0 0 0 200 M 0 1 1 1 1 1 1 1 3FF F Trang 73 (74) Luaân vaên toát nghieäp • Bảng đồ nhớ toàn mạch: IC RO M RA M 825 (I) 825 (II) A1 A1 A1 A1 A1 A1 A9 A7 A6 A5 A4 A3 A2 A1 A0 hex 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0000 1FFF 2000 3FFF 4000 5FFF 0 1 1 1 1 1 1 1 1 6000 7FFF Mỗi nhớ có kbyte để vi điều khiển ttruy xuất hết kbyte này thì đòi hỏi phải kết nối 13 đường địa từ A12 đến A0 vi điều khiển với 13 đường địa A12 − A0 nhớ đường liệu D7 − D0 vi điều khiển kết nối với đường liệu D7 − D0 nhớ Đường tín hiệu điều khiển RDà kết nối với ngõ vào OE EPROM và RAM, đường WR\được kết nốiới ngõ vào WR\ RAM Đến đây vi điều khiển giao tiếp với nhớ thông qua bus: bus địa chỉ, bus liệu và bus điều khiển Nếu dựng lại đây thì vi điều khiển tạo địa để truy xuất ô nhớ thì ROM, và RAM nhận địa vì cùng gửi liệu bus liệu, đó liệu vi điều khiển nhận vào không biết là ô nhớ nào Để vi điều khiển nhận đúng liệu ô nhớ cần truy xuất thì phải thiết kế thêm phần giaûi maõ ñòa chæ 3.3.3 Thieát keá maïch giaûi maõ ñòa chæ: Mỗi mạch kết nối với Micsocontroller cần phải vi điều khiển qui chiếu tới cách chính xác Khi thực các thao tác ghi đọc thì điều đó có nghĩa là mạch nhớ phải gán cho vùng riêng biệt có địa chính xác nằm không gian địa tổng thể nhớ Việc gán địa cụ thể cho mạch nhớ thực nhờ xung chọn vỏ lấy từ mạch giải mã địa vùng nhớ Về nguyên tắc mạch giải mã địa thường có cấu tạo sau: Tín hieäu ñòa chæ Maïch giaûi maõ ñòa chæ Tín hieäu ñieàu khieån CS1\ CS2\ CSn\ Hình 7.3.3.3a Maïch giaûi maõ ñòa chæ toång quaùt Trang 74 (75) Luaân vaên toát nghieäp Đầu vào mạch giải mã là các tín hiệu địa và tín hiệu điều khiển Các tín hiệu địa gồm có các bit địa có quan hệ định với các tín hiệu chọn vỏ đầu Dựa theo nguyên tắc giải mã trên, ta thấy bảng đồ nhớ có bit địa A15 A14 A13 có các trạng thái tương đương với các vùng nhớ IC nhớ IC nhớ thứ tương đương với 0002, IC nhớ thứ hai có trạng thái 0012 … Từng trạng thái bit địa A15 A14 A13 cho phép nhớ truy xuất Khi nhớ này phép truy xuất thì nhớ khác K0 phép Mỗi nhớ có ngõ vào cho phép CS\, ngõ vào CS\ mức thì nhớ đó phép, ngõ vào CS\ mức thì nhớ đó k0 phép Các ngõ vào địa và liệu trạng thái tổng trở cao Do đó phải dùng IC giải mã đường sang đường để có thể điều khiển ngõ vào CS\ Sơ đồ mạch giải mã đường sang đường dùng IC 74LS138 A13 A14 A15 A B C 74LS138 O0\ O1\ O2\ O3\ O4\ O5\ O6\ O7\ Đưa đến ngõ vào CS\của EFROM Đưa đến ngõ vào CS\của RAM Đưa đến ngõ vào CS\của 8255 (I) Đưa đến ngõ vào CS\của 8255 (II) Sơ đồ mạch kết nối nhớ với Microcontroller Hình 7.3.3.3.b Sơ đồ kết nối nhớ với Microcontroller Trang 75 (76) Luaân vaên toát nghieäp Thieát Keá Boä Giao Tieáp: 4.1 Thieát keá baøn phím: 4.1.1 Nguyeân lyù chung: - Bàn phím là thiết bị ngoại vi thông dụng các hệ thống vi xử lý, dùng để giao tiếp người và máy, người sử dụng có thể gõ chương trình vào máy qua caùc phím - Giao tiếp bàn phím sử dụng vi mạch giao tiếp song song 8255A vùng ô nhớ từ 4000 đến FFF Bàn phím không phải là linh kiện điện tử mà nó là các công tắc nhấn, đó bàn phím đòi hỏi có cấu trúc vững vàng, khả chịu lực toát • Nguyeân taéc laøm vieäc cuûa baøn phím: - Các công tắc tổ chức thành ma trận nhiều hàng nhiều cột Các đường cột nối với cổng IC giao tiếp Các đường hàng nối với cổng thứ và qua điện trở nối lên mức logic (Vcc) Dùng phần meàm tieán haønh queùt leân caùc phím, aán moät phím thì coù moät haøng moät coät ngaén mạch và phím này chuyển đổi thành mã tương ứng thông qua phần mềm Ưu điểm loại bàn phím này là mạch đơn giản, độ linh hoạt cao Tuy nhiên độ đáp ứng không cao +5V +5V +5V +5V PA0 haøng PA1 haøng PA haøng 8235A Coät Coät Coät Coät haøng PA7 PC PC PC PC Hình 7.4.a Sơ đồ mạch kết nối bàn phím Ngoài hệ giao tiếp bàn phím có thể thiết kế theo nguyên tắc khác là: các công tắc nối chung đầu đưa lên mức logic qua điện trở, các đầu còn lại đưa qua mạch giải mã nhị phân Khi công tắc nhấn ngõ mạch giải mã xuất số nhị phân tương ứng Dữ liệu này gửi bus data vi xử lý thông qua port I/0 Vi xử lý xử lý và thi hành công việc tương ứng Nguyên tắc này đơn giản, độ tin cậy cao cấu trúc phức tạp Trang 76 (77) Luaân vaên toát nghieäp DATA BUS Do mạch này sử dụng có phím để điều khiển chương trình nên không dùng ma trận quét phím mà sử dụng nguyên tắc này GIAÛI MAÕ Hình 7.4.b Sơ đồ tổ chức bàn phím 4.1.2 Cấu tạo và hoạt động bàn phím hệ thống: Giao tiếp bàn phím dùng vi mạch giao tiếp 8255A ta sử dụng port B làm giao tiếp baøn phím Ở trạng thái bình thường (không ấn phím) giá trị port C 8255A là 00H, có phím nào ấn thì giá trị bit tương ứng lên mức cao và giá trị port C đọc vào khác 00H và vi xử lý thực chương trình tương ứng với phím đã ấn D0 : D7 Port A Vi Xử Lý 8255A A0 A0 A1 A1 WR WR R R Reset CS Hình 7.4.c Maïch baøn phím cho heä thoáng Trang 77 +5V (78) Luaân vaên toát nghieäp 4.2 Thieát keá maïch hieån thò: Trong hệ thống vi xử lý, hiển thị đóng vai trò quan trọng: dùng để giao tiếp với máy tính và người sử dụng, cho phép người sử dụng quan sát, cảm nhận quá trình laøm vieäc cuûa heä thoáng Ở đây hiển thị có chức là hiển thị nhiệt độ ngoài không có chức khác ể đơn giản phần cứng thì cho phép nhiệt độ hiển thị từ 00C – 990C từ port vi điều khiển Bộ hiển thị Led đoạn là loại sử dụng phổ bieán Vcc a a b b c c d d e e f f g g Hình 7.4.d a: Bộ hiển thị Led đoạn, b: Loại anode chung, c: Loại Cathod chung Hình 7.4.e Sơ đồ nguyên lý mạch hiển thị Led đoạn 4.3 Thieát keá maïch giao tieáp coâng suaát: Trang 78 (79) Luaân vaên toát nghieäp - Mạch giao tiếp công suất có nhiệm vụ nhận tín hiệu điều khiển từ hệ thống xuất port điều khiển thông qua 8255A để đóng mở tải công suất Ở đây port A, port B và port C 8255A xuất các tín hiệu điều khiển để đóng ngắt tải Mạch công suất có nhiều dạng để có cách ly tuyệt đối phương diện điện ngõ vào và ngõ ra, nhóm đã sử dụng loại optotriac.Loại này sử dụng nguồn xoay chiều công xuất lớn, có độ cách ly cao Mạch gồm diode phát quang (Led) triac quang Khi có dòng điện chạy qua môi trường taùc duïng leân triac quang laøm triac thoâng maïch TAÛI Hình 7.4.f Sơ đồ kết nối mạch giao tiếp công suất Ñaëc tính cuûa OPTO Aùp vaøo – 39 VDC Aùp 230 VAC Doøng 10 A Neáu nhö taûi coù coâng suaát 500W thì doøng taûi laø I = 520 = 2,3 A nhoû hôn 10A 220 Với điều kiện này mạch hoạt động tốt Hoạt động mạch các bit port A, port B 8255A xuất tín hiệu mức thấp, phân cực thuận cho transitor làm Led phát sáng, tác động làm triac dẫn, kích đưa dòng qua cấp cho tải Ngược lại các bit port A, port B mức cao làm phân cực nghịch transitor, led tắt, triac ngưng dẫn đó tải hở mạch Trang 79 (80) Luaân vaên toát nghieäp IV Sơ đồ nguyên lý và thuật giải chương trình: Sơ đồ nguyên lý: Trang 80 (81) Luaân vaên toát nghieäp Thuaät giaûi chöông trình: a Giới thiệu: Hệ thống vi xử lý sử dụng rộng rãi lĩnh vực Tuy nhiên để hệ thống hoạt động thì hệ thống đó phải có chương trình cụ thể cho nó hoạt động Thật phần ứng dụng này cần phải có chương trình để hoạt Chương trình trình bày sau b Lưu đồ giải thuật cho chương trình: • Lưu đồ giải thuật cho chương trình chính: START Khởi tạo 8255 Kieåm tra phím aán N Y Y Goïi chöông trình aán phím N Phím”0” Phím”1” Y Goïi chöông trình phím Y Goïi chöông trình phím N END • Lưu đồ giải thuật cho chương trình kiểm tra phím ấn: Trang 81 (82) Luaân vaên toát nghieäp Start Sosaùnh(por tB)với#01h Y N N Sosaùnh(por tB)với#02h Y Thực chương trình phím “1” Thực chương trình phím “0” END • Lưu đồ giải thuật cho chương trình ấn phím “0”: Start Xuaát #00h port c1( I ) Xuaát #10h port c1( I ) Xuaát #00h port c1( I ) Delay 200µs Y N Xuaát #20h port c1( I ) Đọc nội dung từ port A1 (I ) Giaûi maõ hieån thò END Trang 82 (83) Luaân vaên toát nghieäp • Lưu đồ giải thuật chương trình ấn phím “1”: Start Xuaát 00h portC1 (I) Xuaát 10h portC1 (I) Xuaát 00h portC1 (I) N Delay 200µs Y Xuaát 20h portC1 (I) Đọc (protC1)I vào A Xuaát 00h portA (II) (A)> (A) so saùnh #14h (A)< (A)= Goïi chuông hieån thò trình END Trang 83 Xuaát 00h portB (II) (84) Luaân vaên toát nghieäp c Chương trình đo và khống chế nhiệt độ phòng: ; Chương trình khởi tạo 8255 X2: MOV DPTR, # 4003 H MOV A , # 92 H MOV X @ DPTR, A MOV DPTR, # 6003 H MOV A, # 89 H MOV X @ DPTR, A ; Chöông trình kieåm tra phím aán MOV RO , # 01 H MOV DPTR, # 4001 H MOV X A, @ DPTR ANL A, RO JMZ X1 MOV RO , # 02 H MOV DPTR, # 4001 H MOV X A, @ DPTR ANL A, RO JZ X2 ; Chöông trình aán phím “1” X3: MOV A, #4002H MOV A,#00H MOVX @DPTR,A MOV X @DPTR, # 4002 H MOV A, # 10 H MOV X @ DPTR, A MOV DPTR, # 4002 H MOV A, # 00 H MOV X @ DPTR, A LCALL Dlay 0.2 giaây MOV DPTR, # 4002 H MOV A, # 20 H MOV X @ DPTR, A MOV DPTR, # 4000 H MOV X A, @ DPTR CJNE A, # 14H , HOT MOV DPTR, # 00D0 H MOV A,@ A + DPTR MOV 90 H , A LCa delay 1-1 MOV 90 H, # 00 H LCa delay 1-1 Trang 84 (85) Luaân vaên toát nghieäp LJMP X3 HOT: JC COOL MOV DPTR, # 6000 H MOV A, # 00 H MOV X @ DPTR, A LJMP X3 COOL:MOV DPTR, # 6001 H MOV A, # 00 H MOV X @ DPTR, A LJMP X3 ; Chöông trình aán phím “0” X1: MOV DPTR, # 4002 H MOV A,# 00 H MOV X @ DPTR,A MOV DPTR, # 4002 H MOV A, # 10 H MOV X @ DPTR, A MOV DPTR, # 4002 H MOV A, # 00 H MOV X @ DPTR, A LCALL delay 0.2 giaây MOV DPTR, # 4002 H MOV A, # 20 H MOV X @ DPTR, A MOV DPTR, # 4000 H MOV X A, @ DPTR MOV DPTR, # 00D0 H MOV C A, @ A + DPTR MOV 90 H, A LJMP X1 ; Chöông trình delay 0.2 giaây push 00H push 82H push 83H MOV R7, # OC8 Y1: DJNZ R7, Y1 pop 83H pop 82H pop 00H RET ; Chöông trình delay 1-1 push 00H Trang 85 (86) Luaân vaên toát nghieäp push 82H push 83H MOV R7, # 10H Y4: MOV R6, # OFF h Y3: MOV R5, # OFF h Y2: DJNZ R5, Y2 DJNZ R6, Y3 DJNZ R7, Y4 pop 83H pop 82H pop 00H RET Chương trình hiển thị cho EPROM từ 0oC – 99oC xem phụ lục d Giaûi thích chöông trình: Trong chương trình này sử dụng IC 8255A Với 8255 thứ có địa từ 4000, đó port A nhận liệu từ đường data cuûa ADC PB0, PB1: laøm caùc phím aán ñieàu khieån PC0, PC1, PC2, PC4, PC5: duøng laøm tín hieäu ñieàu khieån cho ADC Với 8255 thứ hai có địa từ 6000 dùng để xuất tín hiệu điều khiển thiết bị đóng ngaét - Đầu tiên khởi tạo 8255 cách gởi giá trị 92H ghi điều khiển 8255I Có địa 4003H và gửi giá trị 89H ghi điều khiển 8255II có địa chæ 6003H, thoâng qua ghi A - Sau đó, kiểm tra chương trình ấn phím Nạp giá 01H vào thành ghi R0, đọc nội dung từ PB 8255I ghi A AND với nội dung ghi R0 • Nếu phép AND = thì bt Zero = và chương thực X1 tức là phím “o” bị tác động • Nếu phép AND = thì bit Zero = và chương trình thực tiếp theo, là nạp giá trị 02H vào R0 đồng thời đọc nội dung từ PB vào ghi A, dùng phép AND, AND nội dung A với nội dung R0, tương tự: • Nếu phép AND = thì chương trình quay lại từ đầu • Nếu phép AND = thì bit Zero = tức là phím “1” bị tác động và chương trình thực X3 - Khi phím “1” bị tác động và chương trình thực X3 Đầu tiên, nạp giá trị 00H vào ghi A và chuyển nội dung ghi A địa 4002 port C để chọn ngõ vào tương tự là INO Kế tiếp nạp giá trị 10H vào A, chuyển nội dung A địa 4002 port C, để đưa chân Start ADC lên mức Nạp 00H vào A và đưa nội dung A địa 4002 để đưa Start xuống mức tạo thành xung Clock Sau đó gọi chương trình delay 200µs để ADC thực chuyển đổi Trang 86 (87) Luaân vaên toát nghieäp Nạp giá trị 20H vào A, chuyển nội dung chứa A địa 4002 để Pc5 8255I lên mức và đọc liệu từ PA có địa 4000 vào ghi A So sánh nội dung A với giá trị 14H: Nếu thì nạp giá trị 00D0H vào DPTR, sau đó lấy nội dung ô nhớ có địa chứa A cộng với DPTR chuyển vào A Lấy nội dung A chuyển port vi điều khiển để hiển thị Nếu nội dung A lớn thì nhảy đến nhãn HOT và nạp giá trị 00H vào A, sau đó chuyển nội dung chứa port A 8255II có địa là 6000H để điều khiển thiết bị đóng mạch Nếu nội dung A nhỏ thì nhảy đến nhãn COOL và nạp giá trị 00H vào A, sau đó chuyển nội dung A port B 8255II có địa 6001H để điều khiển thiết bị đóng mạch - Khi phím “0” bị tác động và chương trình thực X1: Nạp giá trị 4002H vào DPTR, và 00H vào ghi A, sau đó chuyển nội dung A, vào ô nhớ có địa chứa DPTR để chọn ngõ vào tương tự INO Nạp giá trị 10H vào A, chuyển nội dung vào ô nhớ có địa chứa DPTR, để choát ñòa chæ ngoõ vaøo vaø ñöa chaân Start leân Naïp giaù trò 00H vaøo A - Chuyển nội dung A vào ô nhớ có địa chứa DPTR, để đưa chân START xuống mức và gọi chương trình delay 200 µs để thực chuyển đổi Sau chuyển đổi xong, nạp giá trị 20H vào ghi A, chuyển nội dung vào ô nhớ có địa chứa DPTR, phép ADC xuất liệu đường liệu Nạp giá trị 4000H vào DPTR, sau đó lấy nội dung ô nhớ có địa chứa DPTR chuyển vào ghi A (tức đọc liệu từ ADC vào A) Nạp giá trị 00D0H vào DPTR, lấy nội dung ô nhớ có địa chứa A + DPTR chuyển vào A, đồng thời lấy nội dung A chuyển post vi điều khiển có địa là 90H Sau đó quay lại nhãn X1 V THI COÂNG: - Sau đã tính toán thiết kế trên sở lý thuyết, nhóm chúng em tiến hành thi công hệ thống Công việc thi công thực qua các bước sau: Thieát keá maïch in: Vì cấu trúc mạch khá phức tạp, nhiều đường kết nối, nên chúng sử dụng mạch in hai lớp để thi công Để thiết kế mạch in đã dùng phần mềm vẽ mạch chuyên dùng EAGLE để thiết kế Chuaån bò: Trong thời gian chờ gia công mạch in giải các vấn đề sau: Laäp baûng lieät keâ vaø mua linh kieän Thiết kế hộp đựng mach điều khiển Lắp thử số mạch trên testboard để kiểm tra số linh kiện hệ thống Vieát vaø naïp chöông trình ñieàu khieån vaøo EBROM Laép raùp linh kieän vaø kieåm tra Trang 87 (88) Luaân vaên toát nghieäp Để đảm bảo không gặp cố lắp ráp toàn linh kiện lên mạch in, nhóm chọn phương pháp lắp và kiểm tra phận, sau phận đó hoạt động tốt tiến hành lắp ráp phận Sơ đồ mạch in: Trang 88 (89) Luaân vaên toát nghieäp Sơ đồ mạch in Trang 89 (90) Luaân vaên toát nghieäp Sơ đồ bố trí linh kiện Trang 90 (91) Luaân vaên toát nghieäp CHÖÔNG KEÁT LUAÄN Sau gần mười tuần thực với nhiều cố gắng và nổ lực thân cùng với tận tình hướng dẫn thầy Lê Thanh Đạo, tập luận văn này đã hòan thành đúng thời gian qui định theo yêu cầu đặt là thiết kế mạch đo và khống chế nhiệt độ phòng dùng vi điều khiển Để thực yêu cầu trên chúng em đã nghiên cứu, tìm hiểu vấn đế vi điều khiển, vi xử lí, các phương pháp đo nhiệt độ, các phương pháp chuyển đổi từ tương tự sang sồ và các vấn đề khác có liên quan đến đề tài Nội dung chính đề tài này bao gồm phần chính sau: *Phần kiến thức -Khaûo saùt boä vi ñieàu khieån 8051/8031 -Khảo sát IC giai tiếp ngoại vi 8255A naøy -Khảo sát các nhớ thông dụng -Các phương pháp chuyển đổi từ tương tự sang số -Hệ thống đo nhiệt độ và các phương pháp đo nhiệt độ *Phaàn thieát keá thi coâng -Xây dựng sơ đồ khối toàn mạch -Xây dưng lưu đồ giải thuật -Vieát chöông trình -Thi coâng laép raùp vaø kieåm tra Trên đây là nội dung mà nhóm đã thực tập luận văn Theo nhận định chủ quan nhóm thực hiên thì tập luận văn này đã trình bày tương đối đầy đủ các nội dung, kiến thức liên quan, giải đươcï yeâu caøu ñaët Tuy nhiên thời gian trình độ chuyên môn có hạn còn nhiều thiếu sót Ở đây giải các yêu cầøu là : đo nhiệt độ từ 0oc đến 99oc và khống chế mức nhiệt độï cố định, đây là mặt hạn chế đề tài naøy Để đề tài này thêm phong phú và tăng hiệu sử dụng thì cần đáp ứng yêu cầu sau: -Khống chế nhiều mức nhiệt độ khác -Có thể điềuá chỉnh nhiều mức nhiệt độ cầùn khống chế -Có thể giao tiếp vơí máy tính để điều khiển khống chế nhiệt độ Đó là nhũng yêu cầu mà nhóm chưa có điều kiện thực hiện, Mong đề tài này các bạn sinh viên khoá sau tiếp tục thực yêu cầu trên và khắc phục hạn chế đề tài này, để tạo sản phẩm có chất lượng cao phục vụ cho sản xuất và đời sống xã hội Trang 91 (92) Luaân vaên toát nghieäp Sau cùng lần chúng em xin chân thành cảm ơn thầy Lê Thanh Đạo cùng qúi thầy cô khoa điện đã tận tình hướùøng dẫn và dẫn dắt chúng em suốt năm học vừa qua Xin chân thành cảm ơn các bạn sinh viên đã đóng góp ý kiến quí báo để đề tài này hoàn thành tốt đẹp Trang 92 (93) Luaân vaên toát nghieäp TAØI LIEÄU THAM KHAÛO 1.Kyõ thuaät vi ñieàu khieån-Leâ vaên Doanh -Phaïm Khaéc Chöông-NXB khoa hoïc kyõ thuaät Đo lường và đièu khiển máy tính –Ngô Diên Tập-NXB khoa học kỹ thuaät 3.Giáo trình vi mạch số-Nguyễn Hữu Phương-Trường ĐH KH Tự Nhiên TP HCM 4.The 8051 Microcontroller –University of Guelph-I.SCOTT MACKENZIE 5.Digital Systems Principles andApplications-RONALD J TOCCI Microcomputer for engineer and Scientists-Glenn A Gibson,Ya Cheng Liu 7.Electronics Course III :Modules In Micro –Electronics-Deutsche Gesellschaft-fur Technische-Zusammenarbeit(GTZ)Gmbh The TTL Data book:for Design Engineer,Texas Instrumebts Trang 93 (94)

Ngày đăng: 19/06/2021, 10:38

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w