Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
1,5 MB
Nội dung
Bài giảng: Vi Điều Khiển Biên soạn: Ths Lê Hoàng Anh Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh CHƯƠNG I : GIỚI THIỆU I.Lịch sử xuất vi điều khiển 8051: Năm 1980 tập đoàn Intel giới thiệu chip 8051 vi điều khiển họ vi điều khiển MSC-51 Chip 8051 chứa 60000 transistor bao gồm 4K byte ROM , 128 byte RAM , 32 đường xuất nhập , port nối tiếp định thời 16 bit 8051 vi điều khiển bit tức CPU làm việc với bit liệu Dữ liệu lớn bit chia thành liệu bit để xử lý 8051 trở nên phổ biến sau Intel cho phép nhà sản xuất khác ( Siemens , Atmel , Philips … ) sản xuất bán dạng biến thể 8051 mà họ muốn với điều kiện họ phải để mã chương trình tương thích với 8051 Từ dẫn đến đời nhiều phiên 8051 với tốc độ dung lượng ROM chip khác Tuy nhiên , điều quan trọng có nhiều biến thể 8051 , khác tốc độ , dung lượng ROM tất lệnh tương thích với 8051 ban đầu Điều có nghĩa chương trình viết cho phiên 8051 chạy với phiên khác không phụ thuộc vào hãng sản xuất II Sơ đồ khối hệ máy tính khái niệm : Address bus ( 16 ) Data bus ( 8) Control bus ( ) CPU Interface circuitry RAM ROM Bộ nhớ bán dẫn RAM ROM : Trang Peripheral devices Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh Các nhớ truy xuất trực tiếp CPU bao gồm IC ( integrated circuit ) bán dẫn gọi ROM RAM , có hai đặc trưng dùng để phân biệt ROM RAM : RAM ( Random access memory ) : nhớ đọc / ghi , không tiếp tục lưu trữ nội dung nguồn cấp điện ROM ( Read only memory ) : nhớ đọc ,vẫn tiếp tục lưu trữ nội dung nguồn cấp điện Bus : Bus liệu, Bus địa chỉ, Bus điều khiển Bus tập dây mang thông tin có mục đích Việc truy xuất tới mạch xung quanh CPU sử dụng ba loại bus : bus địa ( Address bus ) , bus liệu ( Data bus ) bus điều khiển ( Control bus ) Với thao tác đọc ghi , CPU xác định rõ vị trí liệu ( lệnh ) cách đặt địa lên bus địa ,sau tích cực tín hiệu bus điều khiển để chi thao tác đọc hay ghi Bus liệu mang thông tin giữ CPU nhớ CPU thiết bị xuất nhập Bus liệu bus hai chiều Bus địa mang thông tin địa , cấp CPU bus chiều Bus điều khiển tập hợp tín hiệu , tín hiệu mang vai trò riêng việc điều khiển có trật tự hoạt động hệ thống Các tín hiệu điều khiển tín hiệu định thời cung cấp CPU để đồng hoá việc di chuyển thông tin bus liệu địa Thông thường có ba tín hiệu CLOCK , READ WRITE việc di chuyển liệu CPU nhớ Đơn vị xử lý trung tâm ( CPU ): Trang Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh CPU Instruction register Program counter Instruction decode and control unit Registers Arithmetic and logic unit Đơn vị xử lý trung tâm CPU Instruction register ( IR ) : ghi lệnh IR Instruction decode and control unit : đơn vị giải mã lệnh điều khiển Program counter ( PC ) : đếm chương trình Registers : ghi Arithmetic and logic unit : đơn vị số học logic CPU quản lý tất hoạt động thực thao tác liệu Hầu hết CPU bao gồm tập mạch logic thực liên tục hai thao tác : tìm nạp lệnh thực thi lệnh CPU có khả hiểu thực thi lệnh dựa tập mã nhị phân , mã nhị phân biểu thi thao tác Các lệnh thường lệnh số học ( cộng , trừ , nhân , chia ), lệnh logic ( AND,OR,NOT, …) lệnh di chuyển liệu , lệnh rẽ nhánh biểu thị tập mã nhị phân gọi tập lệnh ( instruction set ) Bên CPU bao gồm tập ghi ( Registers ) có nhiệm vụ lưu trữ tạm thời thông tin , đơn vị số học logic ALU (Arithmetic logic unit ) có nhiệm vụ thực thao tác thông tin , đơn vị giải mã lệnh điều khiển ( instruction decode and control unit ) có nhiệm vụ xác định thao tác cần thực thiết lập hoạt động cần thiết để thực thao tác Thanh ghi IR ( instruction register ) lưu trữ mã nhị phân lệnh Bộ đếm chương trình PC ( Program counter ) lưu trữ địa lệnh nhớ cần thực thi Trang Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh Thao tác tìm nạp lệnh CPU thực theo bước sau : _ Nội dung PC đặt lên bus địa _ Tín hiệu điều khiển READ xác lập ( chuyển sang trạng thái tích cực ) _ Dữ liệu ( mã lệnh ) đọc từ RAM đưa lên bus liệu _ Mã lệnh ( opcode ) chốt vào ghi lệnh bên CPU _ PC tăng lên để chuẩn bị tìm nạp lệnh kế từ nhớ Giai đoạn thực thi lệnh bao gồm việc giải mã lệnh tạo tín hiệu điều khiển , tín hiệu điều khiển việc xuất nhập ghi nội với ALU thông báo để ALU thực thao tác xác định Hình minh họa luồng thông tin cho việc tìm nạp lệnh CPU Addressbus N PC Data bus Opcode RAM IR Control bus Clock Opcode Read III Sự khác vi xử lý vi điều khiển : Trang N+2 N+1 N N-1 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh Cấu trúc phần cứng : Bộ vi xử lý Là CPU đơn chip Bộ vi điều khiển Là vi mạch đơn chứa bên CPU,ROM,RAM,bộ định thời,mạch giao tiếp …để tạo nên hệ máy tính đầy đủ Ứng dụng : Bộ vi xử lý Làm CPU hệ máy tính,thích hợp với ứng dụng xử lý thông tin Bộ vi điều khiển Thích hợp cho thiết kế nhỏ với thành phần thêm vào tối thiểu nhằm thực hoạt động hướng điều khiển Đặc trưng tập lệnh : Bộ vi xử lý Các lệnh vi xử lý hoạt động lượng liệu lớn ½ byte , byte , byte , byte Bộ vi điều khiển Tập lệnh chủ yếu cung cấp điều khiển xuất nhập sử dụng bit Trang Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh CHƯƠNG II : CẤU TRÚC PHẦN CỨNG Sơ đồ khối chip 8051: /INT0 /INT1 Ti mer Ti mer Ti mer Seria l po rt Interrupt control Orther registers T2EX 128 bytes RAM ROM 4K 8051 8K 8052 128 bytes RAM Timer T2 Timer T1 Timer T0 CPU Bus control Oscillator /EA RST Serial port I/O port ALE /PSEN TXD P0 P2 P1 Chip 8051 có đặc trưng sau : 4KB ROM 128 byte RAM port xuất nhập (I/O port) bit định thời 16 bit Mạch giao tiếp nối tiếp Không gian nhớ chương trình 64K Không gian nhớ liệu 64K Bộ xử lý bit 210 vị trí nhớ định địa ,mỗi vị trí bit Nhân/chia 4µs Trang P3 RXD Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh Sơ đồ chức chân chip 8051: 33p XTAL1 P0.7/AD7 P0.6/AD6 P0.5/AD5 P0.4/AD4 P0.3/AD3 P0.2/AD2 P0.1/AD1 P0.0/AD0 12M 19 VCC 40 VCC 18 XTAL2 32 33 34 35 36 37 38 39 33p 30 29 31 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 ALE PSEN EA 8051 P3.7/RD P3.6/WR P3.5/T1 P3.4/T0 P3.3/INT1 P3.2/INT0 P3.1/TXD P3.0/RXD P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 21 22 23 24 25 26 27 28 20 GND 17 16 15 14 13 12 11 10 RST Thuật ngữ “8051” dung để rộng rãi chip họ MSC-51 Vi mạch tổng quát họ MSC-51 chip 8051 ,linh kiện họ hãng Intel đưa thị trường Hiện hay nhiều nhà sản xuất IC Seimens , Advance Micro Devices ( AMD ) , Fujitsu , Philips , Atmel … cấp phép làm nhà cung cấp thứ hai cho chip họ MSC-51 Ở Việt Nam chip biến thể họ MSC-51 hãng Atmel Philips sử dụng rộng rãi : AT89C2051,AT89C4051,AT89C51,AT8C52,AT89S52,AT89S8252,AT89S 8253,P89C51RDxx,P89V51RDxx … Chip 8051 có 32 chân xuất / nhập ,tuy nhiên có 24 chân 32 chân có mục đích Mỗi chân hoạt động chế độ xuất/nhập , hoạt động điều khiển hoạtđộng đường địa / liệu bus địa / liệu đa hợp 2.1 PORT 0: Port ( chân từ 32 - 39 ) ký hiệu P0.0 – P0.7 có hai công dụng Trong thiết kế có tối thiểu thành phần , port sử dụng làm nhiệm vụ xuất nhập , với thiết kế lớn có nhớ , port trở thành bus địa bus liệu đa hợp ( byte địa thấp ) Trang Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh 2.2 PORT 1: Port (các chân từ - ) có công dụng xuất / nhập ký hiệu P1.0 – P1.7 dùng để giao tiếp với thiết bị bên Với chip 8052 ta sử dụng P1.0 P1.1 làm đường xuất /nhập làm ngõ vào cho mạch định thời thứ ba 2.3 PORT 2: Port ( chân từ 21-28 ) ký hiệu P2.0 – P2.7 có hai công dụng ,hoặc làm nhiệmvụ xuất/nhập byte địa cao bus địa 16 bit cho thiết kế có nhớ chương trình thiết kế có nhiều 256 byte nhớ liệu 2.4 PORT 3: Port ( chân từ 10 - 17 ) ký hiệu P3.0 – P3.7 có hai công dụng Khi không hoạt động xuất/nhập , chân port có nhiều chức riêng Chức chân Port Port Bit Tên chân P3.0 RxD P3.1 TxD P3.2 /INT0 P3.3 /INT1 P3.4 T0 P3.5 T1 P3.6 /WR P3.7 /RD P1.0 T2 P1.1 T2EX Địa bit B0H B1H B2H B3H B4H B5H B6H B7H 90H 91H Chức Chân nhận liệu port nối tiếp Chân phát liệu port nối tiếp Ngõ vào ngắt Ngõ vào ngắt Ngõ vào định thời đếm Ngõ vào định thời đếm Điều khiển ghi nhớ liệu Điều khiển đọc nhớ liệu Ngõ vào đinh thời đếm Nạp lại thu nhận định thời 2.5 /PSEN : Chân cho phép nhớ chương trình /PSEN ( Program store enable ) tín hiệu xuất chân 29 Đây tín hiệu điều khiển cho phép ta truy xuất nhớ chương trình Chân thường nối với chân cho phép xuất /OE ( Output enable ) EPROM ROM phép đọc byte lệnh.Tín hiệu /PSEN mức logic suốt thời gian tìm nạp lệnh Các mã nhị phân chương trình hay Opcode đọc từ EPROM qua bus liệu chốt vào ghi lệnh IR 8051 để giải mã.Khi thực thi chương trình chứa ROM nội ,chân /PSEN trỳ mức logic không tích cực ( logic ) Trang Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh 2.6 ALE : Ngõ xuất tín hiệu cho phép chốt địa ALE ( address latch enable ) dùng để giải đa hợp ( demultiplexing ) bus liệu bus địa Khi port sử dụng làm bus địa chỉ/dữ liệu đa hợp,chân ALE xuất tín hiệu để chốt địa ( byte thấp địa 16 bit ) vào ghi suốt ½ đầu chu kỳ nhớ ( memory cycle ).Sau điều thực hiện, chân port xuất/nhập liệu hợp hệ suốt ½ thứ hai chu kỳ nhớ.Tín hiệu ALE có tần số 1/6 tần số mạch dao động bên chip vi điều khiển 2.7 /EA : Ngõ vào /EA nối với 5V ( logic ) với GND ( logic ).Nếu chân nối lên 5V chip 8051 thực thi chương trình ROM nội Nếu chân nối với GND ( chân /PSEN logic ) chương trình cần thực thi chứa nhớ 2.8 RESET ( RST ) : Ngõ vào RST ngõ vào xóa ( master reset ) 8051 dùng để thiết lập lại trạng thái ban đầu cho hệ thống hay gọi tắt reset hệ thống Khi ngõ vào treo mức logic tối thiểu chu kỳ máy, ghi bên 8051 nạp lại giá trị thích hợp cho việc khởi động lại hệ thống 2.9 XTAL1 , XTAL2 : Mạch dao động chip ghép nối với mạch thạch anh bên hai chân XTAL1 XTAL2 , tụ ổn định đựoc yêu cầu kết nối, giá tri tụ nhà sản xuất quy định ( 30p – 40p ) Tổ chức nhớ: Các chip vi điều dùng làm thành phần trung tâm thiết kế hướng điều khiển ,trong nhớ có dung lượng giới hạn , ổ đĩa hệ điều hành Chương trình điều khiển phải thường trú ROM nên 8051 có không gian nhớ riêng cho chương trình liệu , hai nhớ chương trình liệu đặt chip , nhiên ta mở rộng nhớ chương trình nhớ liệu cách sử dụng chip nhớ bên với dung lượng tối đa 64K Bộ nhớ nội chip bao gồm ROM RAM RAM chip bao gồm vùng RAM đa chức ( general purpose RAM : 30H-7FH ) , vùng RAM với bit định địa ( bit address locations gọi tắt vùng Trang Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh Hoạt động định thời đơn giản minh họa hình bên trên,bộ định thời bit.Mỗi tầng D-FF kích khởi cạnh âm hoạt động mạch chia cho ta nối ngõ Q đảo với ngõ vào D Flipflop cờ đơn giản mạch chốt D set tầng cuối định thời.Giản đồ thời gian hình cho thấy tầng thứ (Q0 ) chia hai tần số xung clock,tầng thứ hai chia tần số xung clock v.v… Số đếm (count) ghi dạng thập phân kiểm tra dễ dàng cách khảo sát trạng thái flipflop.Thí dụ số đếm xuất Q2=1,Q1=0 Q0=0(410=1002).Các flipflop hình flipflop tác động cạnh âm (nghĩa ngõ Q flipflop đổi trạng thái theo cạnh âm cuả xung clock).Khi số đếm tràn từ 1112 xuống 0002,ngõ Q2 có cạnh âm(10)làm cho trạng thái flipflop cờ đổi từ lên 1(ngõ vào D flipflop luôn logic 1) Bộ định thời sử dụng hầu hết ứng dụng hướng điều khiển 8051 với định thời chip trường hợp ngoại lệ.8051 có hai định thời 16 bit ,mỗi có chế độ hoạt động Bộ định thời thứ với ba chế độ hoạt động thêm vào chip 8051.Các định thời dùng để: (a) Định thời khoảng thời gian (b) Đếm kiện (c) Tạo tốc độ baud cho port nối tiếp chip 8051 Với định thời 16 bit ,tầng cuối (tầng thứ 16)chia tần số xung clock ngõ vào định thời cho 216=65536 Trong ứng dụng định thời khoảng thời gian, định thời lập trình cho tràn sau khoãng thời gian quy định set cờ tràn định thời 1.Cờ tràn sử dụng để đồng chương trình nhằm thực công việc kiểm tra trạng thái ngõ nhập gửi liệu đến cac ngõ xuất.Các ứng dụng khác sử dụng xung clock định thời để đo khoảng thời gian hai kiện(thí dụ đo độ rộng xung) Việc đếm kiện dùng để xác định số lần xuất kiện đo thời gian kiện.Từ “sự kiện” kích thích bên cung cấp chuyển trạng thái từ xuống tới chân chip 8051.Các định thời cung cấp xung clock tốc độ baud cho port nối tiếp bên 8051 Các định thời 8051 truy xuất cách sử dụng ghi chức đặc biệt.Với định thời thứ chip 8052,ta có thêm ghi chức đặc biệt để truy xuất định thời Trang 27 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh SFR Mục đích định thời TCON Điều khiển TMOD Chọn chế độ TL0 Byte thấp định thời TL1 Byte thấp định thời TH0 Byte cao định thời TH1 Byte cao định thời T2CON Điều khiển định thời RCAP2H Nhận byte thấp định thời RCAP2L Nhận byte cao định thời TL2 Byte thấp định thời TH2 Byte cao định thời Địa Định địa bit 88H 89H 8AH 8BH 8CH 8DH C8H CAH CBH CCH CDH Có Không Không Không Không Không Có Không Không Không Không THANH GHI CHẾ ĐỘ ĐỊNH THỜI ( TMOD ): Thanh ghi TMOD (timer mode register) chứa hai nhóm bit dùng để thiết lập chế độ hoạt động cho định thời định thời 1.TMOD không định địa bit Một cách tổng quát,TMOD nạp lần phần mềm thời điểm bắt đầu chương trình để khởi động chế độ hoạt động định thời Sau định thời dừng, bắt đầu,v.v…bằng cách truy xuất ghi chức đặc biệt khác định thời Bit Tên Bộ Mô tả định thời GATE Bit điều khiển cổng.Khi set lên 1,bộ định thời hoạt động INT1 đảo mức cao Bit chọn chức đếm định thời C/ T = đếm kiện = định thời khoảng thời gian M1 Bit chọn chế độ thứ M0 Bit chọn chế độ thứ hai GATE Bit điều khiển cổng cho định thời Bit chọn chức đếm định thời cho C/ T định thời M1 Bit chọn chế độ thứ M0 Bit chọn chế độ thứ hai Thanh ghi chọn chế độ định thời Trang 28 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh M1 0 1 M0 1 Chế độ Mô tả Chế độ định thời 13 bit Chế độ định thời 16 bit Chế độ tự động nạp lại bit Chế độ định thời chia xẻ Các chế độ định thời THANH GHI ĐIỀU KHIỂN ĐỊNH THỜI ( TCON ): Thanh ghi TCON chứa bit điều khiển, bit trạng thái định thời định thời 1.Bốn bit cao TCON (TCON4 - TCON7) dùng để điều khiển cho định thời hoạt động, ngưng (TR0,TR1) để báo định thời tràn (TF0,TF1) Bốn bit thấp TCON(TCON0- TCON3) không dùng để điều khiển định thời,chúng dùng để phát khởi động ngắt Ký Địa Mô tả hiệu bit TCON.7 TF1 8FH Cờ tràn định thời 1.Cờ set phần cứng có tràn,được xóa phần mềm,hoặc phần cứng bô vi xử lý trỏ đến chương trình phục vụ ngắt TCON.6 TR1 8EH Bit điều khiển hoạt động định thời 1.Bit set xóa phần mềm để điều khiển định thời hoạt động hay ngưng hoạt động TCON.5 TF0 8DH Cờ tràn định thời TCON.4 TR0 8CH Bit điều khiển hoạt động định thời TCON.3 IE1 8BH Cờ ngắt bên 1.Cờ set phần cứng có cạnh âm( xuống),xuất chân INT1 đảo,được xóa phần mềm,hoặc phần cứng CPU trỏ đến chương trình phục vụ ngắt TCON.2 IT1 8AH Bit chọn ngắt thuộc loại tác động cạnh hay tác động mức.0:mức;1:cạnh TCON.1 IE0 89H Cờ ngắt bên (kích khởi cạnh) TCON.0 IT0 88H Bit chọn ngắt thuộc loại tác động cạnh hay tác động mức.0:mức;1:cạnh Bit Thanh ghi điều khiển định thời TCON Trang 29 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh CÁC CHẾ ĐỘ ĐỊNH THỜI VÀ CỜ TRÀN : Do ta có hai định thời chip 8051,kí hiệu “x” sử dụng để định thời định thời 1.Thí dụ : THx TH0 hay TH1 tùy theo định thời hay 4.1 Chế độ định thời 13 bit (chế độ 0) : Chế độ định thời chế độ định thời 13 bit cung cấp khả tương thích với vi điều khiển tiền nhiệm 8048.Chế độ không dùng cho thiết kế Byte cao định thời THx ghép cascade với bit thấp byte thấp định thời THx để tạo thành định thời 13bit Ba bit cao TLx không sử dụng Timer clock TLx(5 bit) THx( bit) TFx Overflow flag 4.2 Chế độ định thời 16 bit (chế độ 1) : Chế độ định thời 16 bit có cấu hình giống chế độ định thời 13 bit.Khi có xung clock định thời đếm lên : 0000H,0001H,0002H … FFFFH ( 65535 ) Một tràn xuất có chuyển số đếm từ FFFFH xuống 0000H, kiện set cờ tràn ( TFx = ) định thời tiếp tục đếm Bit có ý nghĩa lớn (MSB : Most significant bit) giá trị ghi định thời bit THx bit có ý nghĩa thấp (LSB : Least significan bit ) bit TLx Các ghi định thời ( THx,TLx) đọc ghi phần mềm thời điểm Timer clock TLx THx TFx 4.3 Chế độ tự nạp lại bit (chế độ 2): Chế độ chế độ tự nạp lại 8bit Byte thấp định thời (TLx) hoạt động định thời bit byte cao định thời lưu giữ giá trị nạp lại Khi số đếm tràn từ FFH xuống 00H không cờ tràn định thời set lên mà giá trị THx nạp vào TLx, việc đếm tiếp tục từ giá trị xảy lần tràn kế tiếp,v.v… Trang 30 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh TLx Timer clock TFx THx Reload 4.4 Chế độ định thời chia sẻ (chế độ 3) : Chế độ chế độ định thời chia xẻ có hoạt động khác cho định thời.Bộ định thời chế độ chia thành định thời bit hoạt động riêng lẻ TL0 TF1,mỗi định thời set cờ tràn tương ứng TF0 TF1 xảy tràn Bộ định thời không hoạt động chế độ khởi động bắng cách chuyển định thời vào chế độ khác.Giới hạn cờ tràn TF1 định thời không bị ảnh hưởng định thời xảy tràn TF1 nối với định thời TH0 Chế độ chủ yếu cung cấp thêm định thời 8bit nữa,nghĩa 8051 có thêm định thời thứ 3.Khi định thời chế độ ,bộ định thời hoạt động ngưng cách chuyển khỏi chế độ vào chế độ 3.Bộ định thời sử dụng port nối tiếp(lúc định thời làm nhiệm vụ tạo xung clock tốc độ baud)hoặc sử dụng theo cách không yên cầu ngắt (vì định thời lúc không nối với TF1) NGUỒN XUNG CLOCK ĐỊNH THỜI : Có khả tạo nguồn xung clock này,việc lựa chọn khả ta thiết lập bit C/ T (counter/timer) ghi TMOD hay định thời khởi động.Một nguồn xung clock dùng để định thời khoảng thời gian, nguồn xung clock lại dùng để đếm kiện 5.1 Định thời khoảng thời gian : Nếu C/ T =0,hoạt động định thời chọn nguồn xung clock định thời mạch dao động bên chip tạo Một mạch chia 12 tầng thêm vào để giảm tần số xung clock đến giá trị thích hợp với hầu hết ứng dụng.Lúc định thời dùng để định thời Trang 31 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh khỏang thời gian.Các ghi định thời (TLx/THx) đếm lên với tần số xung clock 1/12 tần số mạch dao động chip (nghĩa thạch anh 12MHz, tần số xung clock 1MHz) Bộ định thời tràn sau số xung clock cố định phụ thuộc vào giá trị ban đầu nạp cho ghi định thời( TLx/THx) 5.2 Đếm kiện : Nếu C/ T = 1,bộ định thời cung cấp xung clock từ nguồn tạo xung bên Trong đa số ứng dụng ,nguồn xung clock cung cấp cho định thời xung dựa việc xảy kiện định thời đếm kiện Số kiện xác định phần mềm cách đọc ghi định thời (TLx/THx), giá trị 16-bit ghi tăng theo kiện Hai chân port 3( P3.4 P3.5 ) trở thành ngõ vào xung clock cho định thời Chân P3.4 ngõ vào xung clock cho định thời (ta gọi chân T0 ngữ cảnh này), chân P3.5 ngõ vào xung clock cho định thời 1(T1) Trong ứng dụng đếm kiện, ghi định thời tăng xảy chuyển trạng thái từ xuống ngõ vào Tx (T0 T1) Ngõ vào Tx lấy mẫu suốt chu kỳ máy,vậy ngõ vào mức cao chu kỳ mức thấp chu kỳ kế,số đếm tăng Phải chu kỳ máy (2us) để nhận biết chuyển trạng thái từ xuống 0,tần số cực đại nguồn xung clock bên 500KHz ( với giả sử chip vi điều khiển hoạt động với thạch anh 12 MHz) KHỞI ĐỘNG,DỪNG VÀ ĐIỀU KHIỂN CÁC BỘ ĐỊNH THỜI : Cách đơn giản để khởi động dừng định thời sử dụng bit điều khiển hoạt động TRx ghi TCON.TRx xoá thiết lập hệ thống ;nghĩa định thời ngưng hoạt động Ngược lại ta set bit TRx nghĩa cho phép định thời hoạt động Do ghi TCON ghi định địa bit,ta dễ dàng khởi động dừng định thời chương trình Một phương pháp khác để điều khiển định thời sử dụng bit GATE ghi TMOD ngõ vào /INTx Bằng cách set bit GATE lên ta cho phép định thời điều khiển /INTx KHỞI ĐỘNG VÀ TRUY XUẤT CÁC THANH GHI ĐỊNH THỜI: Các định thời thường khởi động lần thời điểm bắt đầu chương trình để thiết lập chế độ hoạt động yêu cầu.Trong thân chương trình ,các định thời điều khiển hoạt động,dừng,kiểm tra bit cờ xoá,cá ghi định thời đọc cập nhật tuỳ theo yêu cầu ứng Trang 32 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh dụng.TMOD ghi khởi động trước tiên ghi thiết lập chế độ hoạt động Ex : Khởi động định thời hoạt động chế dộ 16-bit (chế độ 1),xung clock cấp từ mạch dao động chip (định thời khỏang thời gian) MOV TMOD,#00010000B Kết lệnh thiết lập M1=0 M0=1 để ấn định chế độ 1,C/T=0 GATE =0 để sử dụng xung clock chip,xoá bit chọn chế độ định thời 0.Dĩ nhiên thực tế định thời không bắt đầu công việc định thời bit điều khiển hoạt động TR1 set Trong trường hợp cần đến số đếm ban đầu, ghi định thời TL1/TH1 phải khởi động Cần nhớ định thời đếm lên thiết lập cờ tràn xảy tràn số đếm từ FFFFH xuống 0000H, khoảng thời gian 100us định thời cách khởi động TL1/TH1 chứa số đếm nhỏ 0000H lượng 100 nghĩa -100 hay FF9CH Các lệnh sau thực điều MOV TL1, #9CH MOV TH1,#0FFH Kế đến định thời bắt đầu hoạt động cách thiết lập bit điều khiển hoạt động sau : SETB TR1 Cờ tràn tự động sau khoảng thời gian 100us Phần mềm chứa vòng lặp trì hoãn thời gian 100us cách sử dụng lệnh rẽ nhánh lặp lại lệnh cờ tràn chứa set WAIT : JNB TF1, WAIT Khi định thời tràn ta cần dừng định thời xóa cờ tràn phần mềm : CLR TR1 CLR TF1 Đọc định thời hoạt động : Trong số ứng dụng ta cần phải đọc giá trị (nội dung) chứa ghi định thời hoạt động.Do ta phải đọc ghi định thời dòng lệnh liên tiếp ( lệnh đọc đồng thời hai ghi định thời ), sai pha xuất có tràn từ byte thấp chuyển sang byte cao hai lần đọc đọc giá trị cần đọc Giải pháp đưa trước tiên ta phải đọc byte cao đọc byte thấp đọc byte cao lần Trang 33 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh Nếu byte cao thay đổi giá trị, ta lặp lại thao tác đọc vừa nêu Các lênh sau đọc nội dung ghi định thời TL1/TH1, đưa vào ghi R6/R7 giải vấn đề vừa nêu: AGAIN : MOV A, TH1 MOV R6,TL1 CJNE A,TH1, AGAIN MOV R7,A Ex : Viết chương trình tạo sóng vuông 10KHz chân P0.0 cách sử dụng định thời ( Thạch anh 12MHz ) ORG 0030H ; thiết lập gốc chương trình MOV TMOD,#00000010B ;( #02H ) chế độ tự nạp lai MOV TH0,#206 ; TH0 chứa giá trị 206 =0CEH= -50 SETB TR0 ; cho phép định thời hoạt động LOOP: JNB TF0,LOOP ; chờ timer tràn CLR TF0 ; xóa cờ tràn chuẩn bị cho lần sau CPL P0.0 ; đổi trạng thái bit P0.0 SJMP LOOP ; nhảy nhãn LOOP , lăp lại END Ex : Viết chương trình tạo sóng vuông 1KHz chân P1.0 sử dụng định thời ORG 0030H ; thiết lập gốc chương trình MOV TMOD,#00000001B ; chế độ định thời 16 bit LOOP: MOV TH0,#0FEH ; nạp trước cho TH0 byte cao -500 MOV TL0,#0CH ; nạp trước cho TL0 byte thấp -500 SETB TR0 ; cho phép định thời hoạt động WAIT: JNB TF0,WAIT ; chờ timer tràn CLR TR0 ; dừng định thời CLR TF0 ; xóa cờ tràn CPL P1.0 ; lấy bù SJMP LOOP ; lặp lại END Trang 34 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh CHƯƠNG VI : HOẠT ĐỘNG NGẮT MỞ ĐẦU: Ngắt ( interrupt ) sảy điều kiện làm cho trương trình hành bị tạm ngưng điều kiên phục vụ chương trình khác Các ngắt đóng vai trò quan trọng việc thiết kế thực ứng dụng vi điều khiển Các ngắt cho phép hệ thống đáp ứng kiện theo cách không đồng xử lý kiện chương trình khác thực thi Một hệ thống điều khiển ngắt cho ta ảo tưởng làm nhiều công việc đồng thời CPU dĩ nhiên thực nhiều lệnh thời điểm CPU tạm ngưng việc thực thi chương trình để thực thi chương trình khác sau quay trở thực thi tiếp chương trình bị tạm ngưng Điều giống CPU rời khỏi chương trình gọi để thực chương trình bị gọi để sau quay chương trình gọi Chương trình xử lý ngắt gọi chương trình phục vụ ngắt ISR ( interrupt service routine ) ISR thực thi nhằm đáp ứng ngắt trường hợp tổng quát thực việc xuất nhập với thiết bị Khi ngắt xuất hiện, việc thực thi trương trình tạm thời bị dừng CPU thực rẽ nhánh đến trình phục vụ ngắt ISR CPU thực thi ISR để thực công việc kết thúc việc thực thi gặp lệnh “quay từ trình phục vụ ngắt” RETI.Ta nói chương trình thực thi mức ISR thực thi mức ngắt TỔ CHỨC NGẮT CỦA 8051 : Có nguyên nhân tạo ngắt 8051: hai ngắt bên ngoài, hai ngắt định thời ngắt port nối tiếp 8052 có thêm nguyên nhân ngắt thứ 6: định thời thêm vào, định thời thứ ba Khi ta thiết lập trạng thái ban đầu cho hệ thống , tất ngắt điều bị vô hiệu hóa sau chúng cho phép riêng rẻ phần mềm Khi xảy hai hay nhiều ngắt đồng thời xảy ngắt ngắt phụ vụ , ta có hai sơ đồ xử lý ngắt: sơ đồ chuổi vòng sơ đồ hai mức ưu tiên 2.1 Cho phép không cho phép ngắt: Mỗi nguyên nhân ngắt cho phép không cho phép riêng rẽ thông qua ghi chức đặc biệt định địa bit, ghi cho phép ngắt IE ( interrupt enable ) có địa byte 0A8H Mỗi bit ghi cho phép không cho phép nguyên nhân ngắt riêng Trang 40 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh rẻ, ghi IE đồng thời có bit toàn cục ( global ) cho phép không cho phép tất ngắt Thanh ghi cho phép ngắt IE Ký hiệu Địa bit Mô tả ( 0: không cho phép, 1: cho phép ) EA AFH Cho phép/không cho phép ngắt toàn cục AEH Không sử dụng ET2 ADH Cho phép ngắt định thời ES ACH Cho phép ngắt port nối tiếp ET1 ABH Cho phép ngắt định thời EX1 AAH Cho phép ngắt từ bên ( ngắt ) ET0 A9H Cho phép ngắt định thời EX0 A8H Cho phép ngắt từ bên ( ngắt ) Bit IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 Ex: Ngắt định thời cho phép cách dùng hai lệnh: SETB ET1 : Cho phép ngắt định thời SETB EA : set bit EA phép ngắt toàn cục : MOV IE,#10001000B 2.2 Ưu tiên ngắt : Mỗi nguyên nhân ngắt lập trình riêng rẻ để có hai mức ưu tiên thông qua chức ghi đặc biệt định địa bit , ghi ưu tiên ngắt IP ( interrupt priority ), ghi có địa byte 0B8H Bit IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0 Thanh ghi IP Ký hiệu Địa bit PT2 0BDH PS 0BCH PT1 0BBH PX1 0BAH PT0 0B9H PX0 0B8H Mô tả (1: mức cao, 0: mức thấp) Không sử dụng Không sử dụng Ưu tiên ngắt định thời Ưu tiên ngắt port nối tiếp Ưu tiên ngắt định thời Ưu tiên ngắt Ưu tiên ngắt định thời Ưu tiên ngắt Trang 41 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh Khi hệ thống thiết lập lại trạng thái ban đầu, ghi IP mặc định tất ngắt mức ưu tiên thấp Chương trình thực thi mức không kết hợp với ngắt nên luôn bị tạm dừng ngắt Nếu có hai ngắt xảy đồng thời ngắt có mức ưu tiên cao phục vụ trước 2.3 Chuỗi vòng : Nếu có hai ngắt có mức ưu tiên xuất đồng thời, chuỗi vòng cố định xác định ngắt phục vụ trước Chuỗi vòng là: ngắt 0, ngắt định thời 0, ngắt 1, ngắt định thời 1, ngắt port nối tiếp, ngắt định thời XỬ LÝ NGẮT : Khi có ngắt xuất CPU chấp nhận, chương trình bị ngắt Các thao tác sau sảy ra: -Hoàn tất việc thực thi lệnh hành -Bộ đếm chương trình PC cất vào stack -Trạng thái ngắt hành lưu giữ lại - Các ngắt chận lại mức ngắt - Bộ đếm chương trình PC nạp địa vector trình phục vụ ngắt ISR - ISR thực thi ISR thực thi để đáp ứng công việc ngắt Việc thực thi ISR kết thúc gặp lệnh RETI Lệnh lấy lại giá trị cũ đếm chương trình PC từ stack phục hồi trạng thái ngắt cũ 3.1 Các vector ngắt : Khi ngắt chấp nhận, giá trị nạp cho đếm chương trình PC gọi vector ngắt Vector ngắt địa bắt đầu trình phục vụ ngắt nguyên nhân ngắt tương ứng Ngắt Reset hệ thống Ngắt Ngắt định thời Ngắt Ngắt định thời Ngắt port nối tiếp Ngắt định thời Địa vector 0000H 0003H 000BH 0013H 001BH 0023H 002BH Trang 42 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh THIẾT KẾ CHƯƠNG TRÌNH SỬ DỤNG CÁC NGẮT: Khuôn mẫu đề nghị cho chương trình thực thi độc lập có sử dụng ngắt sau : ORG 0000H ; điểm nhập sau reset LJMP MAIN ; điểm nhập ISR ORG 0030H ; điểm nhập chương trình MAIN: ; chương trình bắt đầu END 4.1 Các trình phục vụ ngắt kích thước nhỏ: Các trình phục vụ ngắt phải bắt đầu gần đáy nhớ chương trình điạ qui định Mặc dù có byte điểm nhập trình phục vụ ngắt, dung lượng thường đủ để thực công việc yêu cầu quay trở chương thình từ trình phục vụ ngắt Điều có nghĩa trình phục vụ ngắt cho ngắt tương ứng thường không dài byte Nếu có nhiều ngắt dùng ta phải cẩn thận để đảm bảo ISR bắt đầu vị trí mà không tràn sang ISR kế Ex : ORG 0000H ; điểm nhập reset LJMP MAIN ORG 000BH ; điểm nhập ngắt định thời T0_ISR : ; bắt đầu ISR cho định thời MOV P2,#00001111B RETI ; trở chương trình MAIN : ; chương trình END ; kết thúc chương trình Trang 43 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh 4.2 Các trình phục vụ ngắt kích thước lớn: Nếu trình phục vụ ngắt dài byte cần đến, ta phải di chuyển phương trình đến nơi khác nhớ chương trình ta cho lấn qua điểm nhập ISR kế Điển hình ISR bắt đầu với lệnh nhảy đến vùng khác nhớ chương trình, ISR trãi rộng cần Ex: ORG 0000H ; điểm nhập reset LJMP MAIN ORG 000BH ; điểm nhập ngắt timer LJMP T0_ISR ; điểm nhập ngắt khác ( có ) ORG 0030H ; địa phía vector ngắt MAIN: ; chương trình T0_ISR: ; chương trình phụ vụ ngắt ; định thời RETI ; quay chương trình END Ex : Viết chương trình tạo sóng vuông có tần số 10KHz chân p1.0 sử dụng định thời ngắt định thời ORG 0000H ; điểm nhập reset LJMP MAIN ORG 000BH ; điểm nhập ngắt timer T0_ISR: ; ISR timer CPL P1.0 ; đảo bit P1.0 RETI ; trở chương trình MAIN: MOV TMOD,#00000010B; timer hoạt động chế độ (8 bit) MOV TH0,#-50 ; giá trị nạp lại tương ứng với 50us MOV IE,#10000010B ; cho phép ngắt định thời SETB TR0 ; bật timer SJMP $ ; nhảy chổ END Trang 44 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh Ex : Viết chương trình sử dụng ngắt để tạo đồng thời dạng sóng vuông có tần số 10KHz chân P1.0 500Hz chân P1.1 ORG 0000H LJMP MAIN ORG 000BH LJMP NGAT_T0 ORG 001BH LJMP NGAT_T1 ORG 0030H MAIN: MOV TMOD,#00010010B; timer chế độ 1, timer chế độ MOV TH0,#-50 MOV TH1,#HIGH(-1000) MOV TL1,#LOW(-1000) MOV IE,#10001010B SETB TR0 SETB TR1 SJMP $ NGAT_T0: CPL P1.0 RETI NGAT_T1: CLR TR1 MOV TH1,#HIGH(-1000) MOV TL1,#LOW(-1000) SETB TR1 CPL P1.1 RETI END Trang 45 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh 4.3 Các ngắt : Ngắt xảy có mức thấp có cạnh âm chân /INT0 /INT1 Việc chọn ngắt thuộc tác động cạnh hay ngắt loại tác động mức lập trình thông qua bit IT0 IT1 ghi TCON Vì chân ngắt lấy mẫu lần chu kỳ máy ngõ vào phải trì tối thiểu 12 chu kỳ dao động để đảm bảo việc lấy mẫu Nếu ngắt thuộc tác động cạnh nguyên nhân ngắt phải trì chân yêu cầu mức cao tối thiểu chu kỳ sau mức thấp tối thiể chu kỳ để đảm bảo việc chuyển trạng thái phát IE0 IE1 tự động xóa CPU trỏ tới trình phục vụ ngắt tương ứng Nếu ngắt thuộc loại tác động mức nguyên nhân ngắt phải trì trạng thái tích cực ngắt theo yêu cầu thực tạo Sau nguyên nhân ngắt phải trạng thái thụ động trước trình phục vụ ngắt thực thi xong trước có ngắt khác tạo Thông thường, công việc thực thi bên trình phục vụ ngắt làm cho nguyên nhân ngắt trả tín hiệu yêu cầu ngắt trở trạng thái không tích cực Trang 46 [...]... SJMP LOOP ; lặp lại END Trang 34 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh CHƯƠNG VI : HOẠT ĐỘNG NGẮT 1 MỞ ĐẦU: Ngắt ( interrupt ) là sự sảy ra của một điều kiện làm cho trương trình hiện hành bị tạm ngưng trong khi điều kiên này được phục vụ bởi một chương trình khác Các ngắt đóng vai trò quan trọng trong vi c thiết kế và thực hiện các ứng dụng của vi điều khiển Các ngắt cho phép hệ thống... chế độ thứ hai Thanh ghi chọn chế độ định thời Trang 28 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh M1 0 0 1 1 M0 0 1 0 1 Chế độ 0 1 2 3 Mô tả Chế độ định thời 13 bit Chế độ định thời 16 bit Chế độ tự động nạp lại 8 bit Chế độ định thời chia xẻ Các chế độ định thời 3 THANH GHI ĐIỀU KHIỂN ĐỊNH THỜI ( TCON ): Thanh ghi TCON chứa các bit điều khiển, bit trạng thái của bộ định thời 0 và bộ định thời... thanh ghi chức năng đặc biệt nữa để truy xuất bộ định thời này Trang 27 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh SFR của Mục đích bộ định thời TCON Điều khiển TMOD Chọn chế độ TL0 Byte thấp của bộ định thời 0 TL1 Byte thấp của bộ định thời 1 TH0 Byte cao của bộ định thời 0 TH1 Byte cao của bộ định thời 1 T2CON Điều khiển bộ định thời 2 RCAP2H Nhận byte thấp của bộ định thời 2 RCAP2L Nhận... dàng trình bày và hiểu chương trình hợp ngữ một cách hệ thống Lưu đồ thuật giải cho phép một yêu cầu được mô tả dưới dạng điều gì phải được thực hiện “ hơn là “thực hiện điều đó bằng cách nào” Các ký hiệu thường dùng nhất cho vi c lập lưu đồ bao gồm : Trang 23 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh : khối quyết định ,khối này thường đặt ra các câu hỏi cho các câu trả lời có ( Yes ) hay... kết thúc chương trình : chương trình con : kết nối qua trang Trang 24 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh Ex : Hãy vi t một chương trình xóa các thanh ghi trong RAM nội từ địa chỉ 50H-60H Begin Xóa dữ liệu 60H = 0 ? No Yes END Chương trình : MOV R0,#50H MOV A,#0 LOOP: MOV @R0,A INC R0 CJNE R0,#61H,LOOP END Ex : Hãy vi t chương trình kiểm tra một nút nhấn S liên tục , nếu nút nhấn được... mức.0:mức;1:cạnh TCON.1 IE0 89H Cờ ngắt bên ngoài 0 (kích khởi cạnh) TCON.0 IT0 88H Bit chọn ngắt ngoài 0 thuộc loại tác động cạnh hay tác động mức.0:mức;1:cạnh Bit Thanh ghi điều khiển định thời TCON Trang 29 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh 4 CÁC CHẾ ĐỘ ĐỊNH THỜI VÀ CỜ TRÀN : Do ta có hai bộ định thời trên chip 8051,kí hiệu “x” được sử dụng để chỉ hoặc bộ định thời 0 hoặc bộ định... nhận biết sự chuyển trạng thái từ 1 xuống 0,tần số cực đại của nguồn xung clock bên ngoài là 500KHz ( với giả sử chip vi điều khiển hoạt động với thạch anh 12 MHz) 6 KHỞI ĐỘNG,DỪNG VÀ ĐIỀU KHIỂN CÁC BỘ ĐỊNH THỜI : Cách đơn giản nhất để khởi động và dừng các bộ định thời là sử dụng bit điều khiển hoạt động TRx trong thanh ghi TCON.TRx được xoá khi thiết lập hệ thống ;nghĩa là các bộ định thời ngưng hoạt... interrupt priority register ) ở địa chỉ B8H.Cả hai thanh ghi này đều được định địa chỉ từng bit Trang 14 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh 5 Các cải tiến của 8052: Các vi mạch 8052 ( và các phiên bản CMOS ) có hai cải tiến so với 8051 Một là có thêm 128 byte RAM trên chip từ địa chỉ 80H-FFH Điều này không xung đột với các thanh ghi chức năng đặc biệt (có cùng địa chỉ) vì 128 byte Ram thêm... thời lưu giữ giá trị nạp lại Khi số đếm tràn từ FFH xuống 00H không chỉ cờ tràn của bộ định thời set lên 1 mà giá trị trong THx còn được nạp vào TLx, vi c đếm sẽ được tiếp tục từ giá trị này cho đến khi xảy ra lần tràn kế tiếp,v.v… Trang 30 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh TLx Timer clock TFx THx Reload 4.4 Chế độ định thời chia sẻ (chế độ 3) : Chế độ 3 là chế độ định thời chia xẻ và... phần mềm,hoặc bởi phần cứng khi bô vi xử lý trỏ đến chương trình phục vụ ngắt TCON.6 TR1 8EH Bit điều khiển hoạt động của bộ định thời 1.Bit này được set hoặc được xóa bởi phần mềm để điều khiển bộ định thời hoạt động hay ngưng hoạt động TCON.5 TF0 8DH Cờ tràn của bộ định thời 0 TCON.4 TR0 8CH Bit điều khiển hoạt động của bộ định thời 0 TCON.3 IE1 8BH Cờ ngắt bên ngoài 1.Cờ này được set bởi phần cứng .. .Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh CHƯƠNG I : GIỚI THIỆU I.Lịch sử xuất vi điều khiển 8051: Năm 1980 tập đoàn Intel giới thiệu chip 8051 vi điều khiển họ vi điều khiển. .. III Sự khác vi xử lý vi điều khiển : Trang N+2 N+1 N N-1 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh Cấu trúc phần cứng : Bộ vi xử lý Là CPU đơn chip Bộ vi điều khiển Là vi mạch đơn chứa... : Bộ vi xử lý Các lệnh vi xử lý hoạt động lượng liệu lớn ½ byte , byte , byte , byte Bộ vi điều khiển Tập lệnh chủ yếu cung cấp điều khiển xuất nhập sử dụng bit Trang Bài giảng Vi điều khiển