1. Trang chủ
  2. » Giáo án - Bài giảng

Bai giang Vi xử lývi điều khiển

156 136 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 156
Dung lượng 2,57 MB
File đính kèm Bai giang VXL VDK1.rar (2 MB)

Nội dung

Bài giảng môn học: Vi xử lý ; Ch¬ng 1: KiÕn tróc hƯ vi lý 1.1 Tỉ chøc hƯ Vi lý 1.1.1 M¸y vi tÝnh Nh ta ®· biÕt vỊ kiÕn thøc cđa m¸y tÝnh nãi chung, máy tính (Computer) thông thờng bao gồm khối chức nh: khối xử lí trung tâm (CPU, central processing unit), bé nhí (M, Memory) vµ khèi phối ghép với thiết bị ngoại vi (I/O, input/output) Tuỳ theo quy mô phức tạp khối chức kể mà ngời ta phân máy điện tử sử dụng thành loại sau: - Máy tính lớn Máy tính lớn (mainframe) loại máy tính đợc thiết kế để giải toán lớn với tốc độ nhanh Nó thờng làm việc với số liệu từ 64 bit lớn đợc trang bị nhớ lớn Chính vËy m¸y tÝnh còng lín vỊ kÝch thíc vËt lý Chúng thờng đợc dùng để điều khiển hệ thống thiết bị dùng quân hệ thống máy móc chơng trình nghiên cứu vũ trụ, để xử lý thông tin ngành ngân hàng, ngành khí tợng, công ty bảo hiểm Tiêu biểu cho loại máy tính loại máy IBM 8341, honeywell DSP8 Loại máy lớn máy lớn đợc gọi supercomputer (nh loại máy YMP/832 Cray) - Máy tính Máy tính (minicomputer) d¹ng thu nhá vỊ kÝch thíc còng nh vỊ tÝnh máy tính lớn Nó đời nhằm thoả mãn nhu cầu sử dụng máy tính cho ứng dụng vừa phải mà dùng máy tính lớn vào gây lãng phí Do máy tính thờng làm việc với liệu có độ dài từ 32 bit với tốc độ chậm khả nhớ hạn chế Máy tính thờng đợc dùng cho tính toán khoa học kỹ thuật, gia công liệu quy mô nhỏ hay để điều khiển quy trình công nghệ Tiêu biểu cho nhóm loại máy VAX 6360 Digital Equipment Corporation MV/8000II Data genaral - Máy vi tính -1 Bài giảng môn học: Vi xử lý Máy vi tính (Microcomputer) loại máy tính thông dụng Một máy vi tính vi điều khiển (microcontroller) Chúng có khả làm việc với số liệu có độ dài bit, bit, bit, 16 bit HiƯn mét sè m¸y vi tính có tính so sánh đợc với máy tính con, làm việc với số liệu có ®é dµi tõ lµ 32 bit (thËm chÝ lµ 64 bit) Ranh giới để phân chia máy vi tính máy tính ngày không rỏ nét Một dặc điểm tiêu biểu để nhận biết máy vi tính chúng sử dụng xử lí trung tâm (CPU) đợc chế tạo công nghệ mạch vi điện tử với mức độ tổ hợp lớn, mạch VLSI (very large of integration) mà ngời ta quen gọi vi xử lý (microcomputer, àP) Các vi xử lý có tên thị trờng thờng đợc xếp theo họ phụ thuộc vào nhà sản xuất chúng đa dạng chủng loại Nổi bật họ vi xử lý họ nhà sản xuất hàng đầu tiếng lĩnh vực này, họ vi lý 80x86 cđa Intel vµ hä vi lý 680xx Motorola 1.1.2 Lịch sử phát triển máy vi tính - Thế hệ (1971-1973) Năm 1971, phát triển vi mạch dùng cho máy tính cầm tay, Intel cho đời vi xử lý 4004 ( bit ) Rockwell International, IPM-16 (16 bit) National Semiconductor Đặc điẻm chung vi xử lý hệ là: Độ dài từ thờng bit (cũng dài hơn) Công nghệ chế tạo PMOS với đặc điểm mật độ phần tử nhỏ, tốc độ thấp, giá thành rẻ có khả đa dòng tải nhỏ Tốc độ thực lệnh: 10-16às/lệnh với tần số đồng hồ fclk = 0,10,8 MHz Tập lệnh đơn giản phải cần nhiều mạch phụ trợ tạo nên hệ vi xử lý hoàn chỉnh - ThÕ hƯ (1974-1977) C¸c bé vi lý đại diện hệ vi xử lý bit 6502 cđa MOS Technology, 6800 vµ 6809 Motorola, 8080 8085 Intel đặc biệt vi xử lý Z80 Zilog Các vi xử lý có tập lệnh phong phú thờng có khả phân biệt địa nhớ với dung lợng đến 64KB Có số vi xử lý có khả phân biệt đợc 256 địa cho thiết -2 Bài giảng môn học: Vi xử lý bị ngoại vi (họ Intel Zilog) Chúng đợc sử dụng rộng rãi công nghiệp để tạo máy tính bit nỗi tiếng thời nh Apple II Commodore 64 Tất vi xử lý thời kì đợc sản xuất công nghệ NMOS ( Với mật độ điện tủ đơn vị diện tích cao so với công nghệ PMOS) CMOS ( tiết kiệm điện tiêu thụ) cho phép đạt đợc tốc độ từ 1-8 às/lệnh với tần số ®ång hå fclk = 1-5 MHz - ThÕ hÖ (1978 -1982) C¸c bé vi lý thÕ hƯ có đại diện vi xử lý 16 bit 8086/80186/80286 cđa Intel hc 86000/86010 cđa Motorola Mét điều tiến hẳn so với vi xử lý bit hệ trớc vi xử lý 16 bit có tập lệnh đa dạng với lệnh nhân, lệnh chia lệnh thao tác với chuổi kí tự Khả phân biệt địa cho nhớ cho thiết bị ngoại vi vi xử lý hệ lớn ( từ 1MB đến 16 MB cho nhớ tới 64 K địa cho thiết bị ngoại vi họ Intel) Đây vi xử lý đ ợc dùng máy IBM PC, PC/XT, PC/AT máy Macintosh Apple Phần lớn vi xử lý hệ đợc sản xuất công nghệ HMOS cho phép đạt đợc tốc độ từ 0,1-1às/lệnh với tần số đồng hồ fclk =5-10 MHz Trong thời kì xuất hiên máy vi tính bit vỏ nh 8048/49 6805R2 (mạch có thêm ADC 12 bit cho kênh đầu vào tơng tự) vi điều khiển bit vỏ nh MC 14500B vµ bit vá nh MC 141000 - ThÕ hƯ (1983-1999) C¸c bé vi xử lý đại diện hệ vi lý 32 bit 80386/80486 vµ 64 bit Pentium cña Intel 60-66MHz, Intel P6 - Pentium Pro 120133 MHz, Intel Pentium 150- 166 - 200 MHz víi c¸c mì réng cho multimedia, Intel Pentium II 233-450 MHz, Intel Pentium III 500-550 MHz Ngày thông số vi xử lí ngày đợc cải thiện : tốc độ ngày cao ( vi xử lí đại INTEL đạt tới tốc độ 800 MHz - 3GHz, độ rộng kênh thông tin liệu ngày lớn nh : 32, 64 bit Điều giúp cho toán thiết jkế toán thjiết kếcác hệ vi xử lí chuyên dung với tính rang lain trở nên dễ dàng Song song với hệ vi xử lí hãng INTEL, hãng Motola đa vi xử lý 32 bit 68020/68030/68040 vi xử lí 64 bit 68060/64 Ngày tốc độ vi xử lí đại hãng -3 Bài giảng môn học: Vi xử lý MOTOROLA đạt 3GHz Đặc điểm vi xử lý hệ có số lợng transistor lớn ( từ vài triệu đến 50 triệu transistor Phần lain vi xử lí thực lênh chu kỳ, thực tế taut chúng có đơn vị xử lí dấu phẩy động FPU (Floating-point Unit ) bên Chúng có ghi chung 16-32 bit Nhiều loại có phân biệt tệp nghi 32-bit ( register file ) cho đơn vị nguyên IU ( interger unit ) vaf teepj ghi 32- bit cho FPU Chúng có Cache memory bên với dung lợng lên tới 36 KB Đa số Cache memory bên phân đôi : dùng cho lệnh Icache dùng cho liệu Dcache Các vi xử lí công nghệ cao nay( advanced microprocessors) thoả mãn yêu cầu chế tạo máy tính lớn ( mainframes ) siêu máy tính ( supercomputers) Các vi xử lí thời có bus địa 32 bit ( phân biệt GB nhớ) có khả làm việc với nhớ ảo Ngời ta áp dụng chế cấu trúc đợc sử dụng máy tính lớn vào vi xử lí : chế xử lý xen kẽ liên tục dòng mã lệnh( pipeline), nhớ cache (bộ nhớ ẩn), nhớ ảo Các vi xử lý có quản lý nhớ(MMU) nhiều đồng xử lý toán học bên Chính nhờ cải tiến mà vi xử lý hệ có khả cạnh tranh đợc với máy tính nhỏ nhiều lĩnh vực ứng dụng Phần lớn vi xử lý hệ đợc sản xuất công nghệ HCMOS Bên cạnh vi xử lý vạn truyền thống thờng đợc dùng để xây dựng máy tính với tập lệnh đầy đủ ( complex instruction set computer, CISC) nói trên, thời gian xuất vi xử lý cải tiến dùng để xây dựng máy tÝnh víi tËp lƯnh rót gän (reduced instruction set computer, RISC) với nhiều tính so sánh với máy tính lớn hệ trớc Đó vi xử lý Alpha Digital, PowerPC tổ hợp hãng Apple- Motorola- IBM 1.1.3 Sơ ®å khèi cđa hƯ vi lý - S¬ ®å khèi cđa hƯ vi lý: Bus ®iỊu khiĨn Bus d÷ liƯu ALU CPU CU Bé nhí ROM - Bộ nhớ RAM Phối ghép vào (I/O) Thiết bị vào (Bàn phím, chuột,ổ Bài giảng môn học: Vi xử lý Các ghi Thiết bị (màn hình, máy in,ổ đĩa, máy vẽ ) Bus địa AX,BX,CX,DX - Chú thích: CPU: Central Processing Unit ( Đơn vị xử lý trung t©m - chÝp ) ROM: Read Only Memmory ( Bé nhí chØ ®äc ) RAM: Radom Acess Memmory (Bé nhí truy cËp ngÉu nhiªn ) I/O: Input/ Output: Thiết bị vào Address Bus: Bus địa Data Bus: Bus liệu Control Bus: Bus điều khiển 1.2 Chức 1.2.1 Đơn vị xử lý trung tâm CPU (Central Processing Unit) thành phần chủ đạo hệ thống máy tính, đợc gọi bé lý hay bé lý trung t©m CPU nơi thực phần lớn phép toán, phép tính số học, phép tính lôgic biến đổi mã tơng ứng máy vi tính ngày nay, CPU thờng đợc xây dựng vài vi mạch đóng chíp IC đợc gọi vi xử lý àP (microprocessor) Hai thành phần CPU là: đơn vị số học ALU (arithmetic logic unit) đảm nhiệm phép toán logic-số học đơn vị điều khiển CU (control unit) tiến hành chuyển lệnh từ nhớ, giải mã, thực lệnh hay chuyển tới ALU cần Bên cạnh đơn vị ALU, CU, CPU có tập hợp ghi 1.2.2 Bộ nhớ trung tâm Bộ nhớ (memory) hay gọi nhớ chính, bé phËn hÕt søc quan träng cđa hƯ m¸y tÝnh Bộ nhớ thực việc lu trữ thông tin -5 Bài giảng môn học: Vi xử lý phục vụ cho trình trao đổi thông tin Bộ nhớ máy tính thực chất nhớ để phân biệt với khái niệm nhớ mà nhiều tài liệu hay sử dụng để thiết bị lu trữ liệu từ tính nh đĩa cứng, đĩa mềm a Bé nhí RAM: ë c¸c hƯ m¸y vi tÝnh, ngêi ta sư dơng bé nhí b¸n dÉn bao gåm bé nhí truy cËp ngÉu nhiªn RAM (random-access memory) hay gọi nhớ ghi đọc Bộ nhớ cho phép lu trữ liệu tạm thời ( điện bị mát liệu ) b Bộ nhớ ROM: Bé nhí chØ ®äc ROM (read-only memory), bé nhí cho phép lu trữ liệu lâu dài ( thờng để lu cấu hình phần cứng nhà sản xuất thiết lập cho Main board ) Ngoài bé nhí RAM, ROM, c¸c hƯ m¸y tÝnh hiƯn có số dạng nhớ khác nh nhớ đọc lập trình đợc PROM (programmable read-only memory), nhớ PROM xoá đợc tia cực tím gäi lµ EPROM (erasable programmable read-only memory) vµ bé nhí PROM xoá đợc điện - EEPROM (electrically erasable programmable read-only memory) 1.2.3 Thiết bị xuất nhập thông tin I/O tạo khả giao tiếp máy tính giới bên Các thiết bị ngoại vi nh hình, bàn phím, máy in, biến đổi D/A, A/D, thiết bị đo lờng điều khiển liên hệ với máy tính qua phận mà cụ thể cho thiết bị cổng a Thiết bị xuất: Biến đổi mã bên máy tÝnh sau lý ®Ĩ ngêi cã thĨ hiểu đợc điều khiển thiết bị khác Thiết bị xuất thông dụng kể nh hình, máy in, faxmodem, máy vẽ, loa hay thiết bị điều khiển Tuy nhiên cần lu ý ranh giới thiết bị vào thiết bị rõ ràng Nhiều thiết bị vừa đảm nhiệm vai trò thiết bị vào song thực chức thiết bị ra, dụ nh faxmodem, CDROM đọc ghi, thiết bị đo-điều khiển b Thiết bị nhập : Thực biến đổi tín hiệu tự nhiên cho ngời sang dạng mã máy để vi xử lý thực Thiết bị vào thông dụng -6 Bài giảng môn học: Vi lý nhÊt cã thĨ kĨ nh bµn phÝm, chuột, máy quét scaner, thiết bị phân tích nhận d¹ng tiÕng nãi, CD-ROM 1.2.4 HƯ thèng Bus HƯ thèng bus cđa m¸y tÝnh Thùc hiƯn kÕt nèi c¸c khối chức hệ thống bus Trong máy tính có hai nhóm bus bus hệ thống, nối CPU với nhớ (trong máy đại ngày bus hệ thống đợc nối CPU vi mạch tổng hợp) bus vào nối ghép thiết bị ngoại vi tới CPU thông qua "cầu nối" hay gọi "cầu" Tham gia điều khiển bus có vi mạch điều khiển bus Các vi mạch trớc đợc nằm riêng lẻ thờng tích hợp vào vi mạch tổng hợp chipset Hệ thống bus bao gồm loại bus bus địa chỉ, bus liệu bus điều khiển a Bus địa chỉ: Phục vụ việc chọn ô nhớ thiết bị vào/ra Khi ghi/đọc nhớ thiết bị vào/ra, xử lý trung tâm đa lên bus địa thiết bị liên quan Đây bus chiều xuất phát từ CPU b Bus liệu: Đợc dùng để chuyển liệu thờng có từ 8, 16, 20, 24, 32 đến 64 đờng dây tuỳ thuộc vào CPU cụ thể BUS liệu loại chiều Các phần tử có đầu nối thẳng với bus liệu phải đợc trang bị đầu trạng thái để bảo đảm cho bus hoạt động đợc bình thờng c Bus điều khiển: Hỗ trợ cho việc trao đổi thông tin điều khiển trạng thái nh phân biệt thiết bị đợc CPU truy nhập nhớ hay thiết bị vào/ra, thao tác truy nhập đọc hay viết v.v Bus điều khiển thờng gồm hàng chục dây tín hiệu khác nhau, xét theo nhóm loại bus chiều Ch¬ng 2: Bé vi lý 80x86 Intel 2.1 CÊu trúc bên hoạt động vi xử lý 80x86 2.1.1 Giíi thiƯu vỊvi lý Intel 80x86: -7 Bài giảng môn học: Vi xử lý Sau tìm hiểu qua cấu trúc hệ vi xử lý Trong chơng ta sâu tìm hiểu vi xử lý cụ thể điển hình: vi xử lý Intel Lý học tìm hiểu vể vi xử lý Intel 80x86 mà vi xử lý hãng khác: + Thứ nhất, lµ bé vi lý nỉi tiÕng mét thêi thc họ 80x86 Intel, đợc sử dụng nhiều lĩnh vực khác nhau, máy IBM PC /XT Các vi xử lý thuộc họ đợc sủ dụng rộng rãi hàng chục năm nữa, vi tính kế thừa sản phẩm họ 80x86., chơng trình viết cho8088 chạy hệ thống tiên tiến sau + Thứ hai, góc độ s phạm vi xử lý đơn giản việc dạy hiểu tơng đối dể ngời bắt đầu thâm nhập vào lĩnh vực + Thứ ba, họ vi xử lý cã kh¸c nhng xÐt cho cïng còng cã nhiều điểm chủ yếu giống Do nắm đợc vấn đề kỷ thuật của8088, ta có sở để nắm bắt kü tht cđa c¸c bé vi lý kh¸c cïng họ Intel 80x86 họ khác 2.1.2 Giíi thiƯu vỊ cÊu tróc bªn cđa vi lý 8086/8088 a Sơ đồ cấu trúc: -8 Bài giảng môn học: Vi xử lý b Vai trò khối chức CPU 8086 - Khối BIU, EU: Bªn CPU 8086 cã khèi chÝnh: khèi phèi ghÐp ( bus interface unit, BIU ) vµ khèi thùc hiÖn lÖnh ( execution unit, EU ) ViÖc chia CPU thành phần làm việc đồng thời có liên hệ với qua đệm lệnh làm tăng đáng kể tốc độ xử lý CPU Các bus bên CPU có nhiệm vụ chuyển tải tín hiệu khối khác Trong số bus có bus liệu 16 bit ALU, bus tín hiệu điều khiĨn ë EU vµ bus cđa hƯ thèng ë BIU Trớc bus vào bus cđa bé vi lý c¸c tÝn hiƯu truyền bus thờng đợc cho qua đệm để nâng cao tính tơng thích cho nối ghép nâng cao phối ghép BIU đa địa chỉ, ®äc m· lƯnh tõ bé nhí, ®äc / ghi d÷ liệu từ vào cổng nhớ Nói cách khác BIU chịu trách nhiệm đa địa bus trao đổi liệu với bus Trong EU ta thấy cã mét khèi ®iỊu khiĨn ( control unit, CU ) Chính bên khối điều khiển có mạch giải mã lệnh Mã lệnh đọc vào từ nhớ đ ợc đa đến đầu vào giải mã, thông tin thu đợc từ đầu đợc đa đến mạch tạo xung điều khiển, kết tu thu đợc dãy xung khác ( tuỳ theo mã lệnh ) để điều khiển hoạt động phận bên bên CPU Trong khối EU có khối số học lôgic ( arithmetic and logic unit ALU ) dùng để thùc hiƯn c¸c thao t¸c kh¸c víi c¸c to¸n hạng lệnh Tóm lại, CPU hoạt động EU cung cấp thông tin địa cho BIU để khối đọc lệnh liệu, thân đọc lệnh giải mã lệnh Trong BIU có nhớ đệm lệnh với dung lợng byte dùng để chứa mã lệnh đọc đợc nằm sẵn để chờ EU xử lý ( tài liệu Intel đệm lệnh đợc gọi hàng đợi lệnh ) Đây cấu trúc đợc cấy vào vi xử lý 8086/88 việc Intel đa chế xử lý xen kẽ liên tục, dòng mã lệnh ( instruction pipelining ) vào øng dơng c¸c bé vi lý thÕ hƯ Pipeline chế đợc ứng dụng từ năm 60 từ máy lớn Nhân ta sÏ giíi thiƯu s¬ qua mét chót vỊ c¬ chế Trong vi xử lý hệ trớc ( nh 8085 chẳng hạn ), thông thờng hoạt động CPU gồm giai đoạn: ®äc m· lƯnh ( opcode fetch ), gi¶i m· -9 Bài giảng môn học: Vi xử lý lệnh ( decode ) vµ thùc hiƯn lƯnh ( execution ) Trong mét thời điểm định, CPU hệ thực ba công việc nói tuỳ theo giai đoạn có phận định CPU trạng thái nhàn rỗi Chẳng hạn, CPU giải mã lệnh thực lệnh không liên quan đến bus ( thao tác nội ) bus không đợc dùng vào việc dẫn đến tình trạng lãng phí khả chúng Trong tõ bé vi lý 8086/88, Intel sư dơng c¬ chế xử lý xen kẽ liên tục dòng mã lệnh CPU đợc chia thành khối có phân chia công việc cho khối: việc đọc mã lệnh khối BIU thực hiện, việc giải mã lệnh thực lệnh khối EU đảm nhiệm Các khối chức có khả làm việc đồng thời bus liên tục sử dơng: EU lÊy m· lƯnh tõ bé ®Ưm byte để giải mã thực thao tác nội BIU đọc mã lệnh từ nhớ đặt chúng vào nhớ đệm lệnh nói Bộ đệm lệnh làm viƯc theo kiĨu “ vµo tríc – tríc “ (first in-first out, FIFO ), nghĩa byte đợc cất vào đệm trớc đợc lấy xử lý trớc Nếu có vào/ra liên tục dòng mã lệnh đệm có nghĩa có phối hợp hoạt động hiệu hai khối EU BIU theo chế xử lý xen kẽ liên tục dòng mã lệnh để làm tăng tốc độ lý tỉng thĨ - C¸c ghi: Trong bé vi xử lý 8086 ta thấy có ghi 16 bit nằm hai khối BIU EU, ngoµi còng cã mét sè ghi 16 bit EU Ta lần lợt giới thiệu ghi nói chức chúng + Các ghi đa năng: AH BH CH DH bits cao (H) AL BL CL DL bits thÊp [L] AX: Accumulator BX: Base CX: Count DX: Data Trong khèi EU cã ghi ®a 16 bit AX, BX, CX, DX Điều đặc biệt cần chứa liệu bit ghi tách thành hai ghi bit cao thấp để làm việc độc lập, tập ghi AH AL, BH vµ BL, CH vµ CL, DH vµ DL ( H phần cao, - 10 Bài giảng môn học: Vi xử lý - Với ngắt cạnh xung ( sên xung ) thêng øng dơng ®Ĩ ®Õm xung ngoài, chọn đầu vào tác động phím bấm, công tắc hay cảm biến - Với ngắt mức xung thờng ứng dụng để lập trình cho vi ®iỊu khiĨn tÝnh thêi gian, tÝnh ®é réng hay tần số xung - dụ: Lập trình cho vi điều khiển 8051 đếm xung từ 0- 25 sử dụng ngắt ( INT0) Hiển thị số đếm led đoạn Anot chung Biết Port0 kết nối với đoạn: a,b,c h, Port2 làm nhiệm vụ quét led Giải: - ta phải chọn ngắt ngắt cạnh xung U1 19 - Chân đa xung đếm chân P3.2 18 Giải: - Vẽ sơ đồ sau Proteus: 29 30 31 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 XTAL2 RST P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 PSEN ALE EA P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 NOT 10 11 12 13 14 15 16 17 80C51 Bắt đầu Khai báo địa không ( ORG ) - Chuyển địa bảng mã vào DPTR - Cho phép ngắt (IE=10000001B) - Chọn ngắt cạnh xung ( IT0=1) Khai báo địa ngắt (ORG 03h) - Tăng biến đếm xung So sánh biến đếm xung với 25 =25 - Nạp giá trị cho biến đếm tràn =0 - Lu đồ giải thuật: - Tách giải mã biến đếm xung - Hiển thị mã đoạn vừa tách giải mã đ ợc - Xoá biến đếm xung - 142 KÕt thóc ng¾t ( Reti ) < 25 Bài giảng môn học: Vi xử lý - Chơng trình phần mềm: ;chuong trinh viet cho VDK 8051 dem xung ngoai su dung ngat ngoai ( INT0) ;chan cap xung dem p3.2 ;hien thi thoi gian tren led doan ; org 00h jmp main ;nhay toi chuong trinh chinh ; org 03h ;khai bao dia chi cua ngat ngoai ngat_ngoai0: inc r0 ;tang bien dem xung cjne r0,#26,thoat_ngat ;so sanh bien dm xung voi 26 neu chua bang thi thoat ngat mov r0,#0 ;dem lai tu - 143 Bài giảng môn häc: Vi xö lý thoat_ngat: reti ; -main: mov ie,#10000001b ;cho phep ngat ngoai mov dptr,#bang_ma ;tro DPTR toi dia chi dau tien cua bang ma setb it0 ;chon ngat ngoai ngat o canh xung mov r0,#0 ;bien dem xung lap: call tach_giai_ma call hien_thi jmp lap ; -;chuong trinh tach va giai ma bien dem xung tach_giai_ma: mov a,r0 ;tach bien dem mov b,#10 div ab movc a,@a+dptr mov 30h,a ;lay ma doan hang chuc ;cat hang chuc mov a,b movc a,@a+dptr ;lay ma doan don vi mov 31h,a ;cat hang don vi ret ; ;chuong trinh hien thi hien_thi: mov p0,31h mov p2,#11111110b ;hien thi don vi call delay mov p2,#0ffh ;chong lem mov p0,30h mov p2,#11111101b ;hien thi hang chuc - 144 Bài giảng môn học: Vi xử lý call delay mov p2,#0ffh ;chong lem ret ; ;chuong trinh tao tre de mat quan sat duoc delay: mov r7,#50 djnz r7,$ ret ; ;dinh nghia bang ma doan bang_ma: db 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h end Bµi tËp: Bµi tËp 1: ViÕt chơng trình cho vi điều khiển 8051 đếm xung từ 055 sử dụng ngắt ( INT1).Hiển thị thời gian led đoạn anốt chung Port nối với đoạn a,b, .g P2.0, P2.1 chọn led Bài tập 2: Viết chơng trình cho vi điều khiển 8051 đếm xung từ 250 sử dụng ngắt ( INT0).Hiển thị thời gian led đoạn anốt chung Port nối với đoạn a,b, .g P2.0, P2.1 chọn led Bài tập 3: Viết chơng trình cho vi điều khiển 8051 Lập đếm xung từ 0- 125 sử dụng ngắt ( INT1).Hiển thị thời gian led đoạn anốt chung Port nối với đoạn a,b, .g P2.0, P2.1 chọn led 6.8 Lập trình điều khiển cổng nối tiếp 6.8.1 Truyền thông nối tiếp vi điều khiển 8051 Cấu trúc cổng nối tiếp máy tính - 145 Bài giảng môn học: Vi xử lý a Cấu tạo phân bố chân tín hiệu Các máy tính tơng thức IBM đợc trang bị hai cổng giao diện tuần tự- RS232C RS-233C ( RS chữ viết tắt Referent Standart ) chuẩn hiệp hội công nghiệp điện tử EIA Chuẩn châu âu giao diện đợc gọi V.24 Chuẩn tơng tù nh chn IEEE 1284 cđa giao diƯn song song, quy định cấu trúc vật lý, tham số điện tín hiệu cho ổ cắm 25 chân nh giao diện song song Hãng IBM quy định thêm ổ cắm chân cho máy tính cá nhân 14 15 16 17 18 19 20 21 22 10 23 11 24 12 25 13 Loại 25 chân Loại chân - TiÕp ®Êt TD RD RTS CTS Vµo 6 DSR vµo TiÕp ®Êt DCD 20 DTR TÝn hiƯu Híng truyền Ra Vào Ra Vào Ra ý nghĩa Bảo vệ, tiếp đất Dữ liệu phát Dữ liệu nhận Yêu cầu phát Sẵn sàng nhận Bảo vệ, tiếp đất Phát có cáp dẫn Sẵn sàng Báo máy chủ ý nghĩa c¸c tÝn hiƯu quan träng : RTS: m¸y tÝnh ph¸t tín hiệu thiết bị ngoại vi báo chuẩn bị truyền liệu CTS: Tín hiệu đến từ thiết bị ngoại vi báo sẵn sàng nhận liệu máy tính nhận đợc liệu bắt đầu truyền liệu thiết bị ngoại vi Nh RTS CTS hai tín hiệu bắt tay máy tính thiết bị ngoại vi Cáp nối bắt chéo hai tín hiệu DCD: Trong trờng hợp thiết bị ngoại vi Modem nối đợc đờng truyền, bảo vệ máy tính tín hiệu DCD DCD trạng thái tích cực đờng dây đợc nối - 146 Bài giảng môn học: Vi xử lý DSR: Trong trờng hợp thiết bị ngoại vi Modem bảo vệ máy tính tín hiệu sau khởi động thành công sẵn sàng hoạt động DTR: Tín hiệu máy tính báo thiết bị ngoại vi Tín hiệu thờng đợc khởi động hay đóng mạch thiết bị ngoại vi DTR DSR có trách nhiệm chuẩn bị kết nối RI: Tín hiệu báo từ thiết bị ngoại vi máy tính Nếu thiết bị ngoại vi Modem, tín hiệu RI báo máy tính bị máy tính khác truy cập qua đờng điện thoại.DSRD ( ổ cắm 25 chân) cho phép thay tốc độ truyền Tín hiệu theo hai chiều, có nghĩa máy tính thiết bị ngoại vi có khả đổi tốc độ Tham số điện cổng nối tiếp: Giao diện RS232 cần điện tín hiệu cao mức TTL( 0V, 5V) để truyền tín hiệu đợc xa.Tham số điện RS232 đựoc quy ®Þnh nh sau Logic : +3V ®Õn +25V ( gọi Space) Logic : - 3V đến 25V ( gọi Mark) Mọi tín hiệu 3V +3V ý nghĩa tín hiệu máy tính có 0V 5V (TTL) hay thấp lên tín hiệu từ máy tính giao diện RS232 ngợc lại phải qua chuyển mức tÝn hiƯu Sư dơng vi m¹ch MAX232, hay MAX233 cã sơ đồ chân nh sau: 14 13 MAX233 MAX232 C1- C1+ T1OUT R1IN T2OUT R2IN T1IN R1OUT T2IN R2OUT 11 12 10 C2+ 14 19 18 VS+ VSC2- 17 12 VSbVSa- C2bC2a- VS+ C2b+ C2a+ R2IN T2OUT R1IN T1OUT R2OUT T2IN R1OUT T1IN C1- C1+ 13 10 16 15 11 20 - Các đặc tính kỹ thuật cổng nối tiếp - 147 Bài giảng môn học: Vi xử lý b Địa cổng tốc độ truyền cổng nối tiếp - Địa cổng yêu cầu ngắt Giao diện COM COM COM COM Địa sở 3F8H 2F8H 3E8H 2E8H Yêu cầu ngắt IRQ4 IRQ3 IRQ4 IRQ3 - Tốc độ truyền số chia tơng ứng giao diện Tốc độ Số chia ( D) Giá trị số chia cao Giá trị số chia thÊp ( H) (L) ( baud) 50 2304 300 384 600 192 2400 48 4800 24 9600 12 19200 38400 57600 115200 c Phơng pháp truyền 09 01 00 00 00 00 00 00 00 00 00 80 C0 30 18 0C 06 03 02 01 Phơng pháp truyền từ máy tính thiết bị ngoại vi Có ba phơng pháp: Truyền chiều ( Simplex) : liệu đợc truyền theo chiều :Từ máy tính vào máy tính Trong trờng hợp thứ liệu đợc truyền qua đờng TD,đờng RD không đợc nối Thiết bị ngoại vi không sử dụng đờng RTS tín hiệu DCD trạng thái không tích cực thiết bị ngoại vi nhận liệu Tín hiệu DSR tích cực Truyền hai chiỊu riªng biƯt ( haft duplex) : trun hai chiỊu riêng biệt máy tính thiết bị ngoại vi Trong trờng hợp TD TR làm việc thời điểm Tín hiệu bắt tay RTS CTS đợc sử dụng Nếu máy tính muốn truyền liệu, đa tín hiệu RT lên trạng thái tích cực đợi tín - 148 Bài giảng môn học: Vi xử lý hiệu ngoại vi trả lời qua tín hiệu CTS Nếu thiết bị ngoại vi muốn truyền liệu, đa tín hiệu DCD máy tính DSR không đợc dùng đến Máy tính báo sẵn sàng nhận liệu qua DTR cho phép hay cấm thiết bị ngoại vi ( Máy tính đảm nhiệm vai trò chủ trao đổi liệu) Hớng truyền liệu đợc thay đổi cách thay đổi hai tÝn hiƯu RTS vµ CTS TÝn hiĐu RI rÊt quan trọng biên truyền này, qua RI thiết bị ngoại vi báo thiết bị khác tìm cách kết nối với máy tính qua thiết bị ngoại vi dang hoạt động ( Modem) Truyền hai chiều lúc ( Full Duplex) : Dữ liệu đợc truyền theo hai chiều lúc Trong trờng hợp này, máy tính thiết bị ngoại vi đảm nhiệm chức máy phát máy nhận lúc Tín hiệu RTS CTS lúc ý nghĩa DTR đảm nhiệm việc chuyển mạch d Khung liệu nối tiếp - Khung liệu dạng TTL - Khung liệu truyền đi.(Ví dụ truyền chữ A ®· chun sang chn RS232 ) Trun th«ng nèi tiếp VĐK 8051 a Tốc độ baud 8051 8051 truyền nhận liệu nối nhiều tốc độ khác Tốc độ truyền lập trình đợc Điều ày thực nhờ trợ giúp - 149 Bài giảng môn học: Vi xử lý định thời Timer1 Trớc ta vào bàn cách làm điều nh ta xét quan hệ tần số thạch anh tốc độ baud 8051 Nh ta nói chơng trớc 8051 chia tần số thạch anh cho 12 để lấy tần số chu trình máy Trong trờng hợp XTAL = 11.0592MHz tần số chu trình 921.6kHz (11.0592MHz : 12 = 921.6kHz) Mạch điện UART truyền thông nối tiếp 8051 lại chia tần số chu trình máy cho 32 lần trớc đợc dùng định thời gian Timer1 ®Ĩ t¹o tèc ®é baud Do vËy, 921.6kHz : 32 = 28.800Hz Đây số ta dùng phần để tìm giá trị Timer1 để ®Ỉt tèc ®é baud Mn Timer1 ®Ỉt tèc ®é baud phải đợc lập trình chế độ làm việc mode2, chế độ ghi bít tự động nạp lại Để có tốc độ baud tơng thích với PC ta phải nạp TH1 theo giá trị cho bảngsau: Tốc độ baud 9600 TH1 (thập ph©n) -3 TH1 (sè Hex) FD 4800 -6 FA 2400 - 12 F4 1200 - 24 F8 b Thanh ghi SBUF SBUF ghi bít đợc dùng riêng cho truyền thông nối tiếp 8051 Đối với byte liệu cần phải đợc truyền qua đờng TxD phải đợc đặt ghi SBUF Tơng tù nh vËy SBUF gi÷ mét byte d÷ liƯu đợc nhận bở đờng RxD 8051 SBUF đợc truy cập ghi 8051 Khi byte đợc ghi vào ghi SBUF đợc đóng khung với bít Start Stop đờng truyền nối tiếp quan chân TxD Tơng tự nh vậy, bít đợc nhận nối tiếp từ RxD 8051 mở khung để loại trừ bít Start Stop để lấy byte từ liệu nhận đợc đặt vào ghi SBUF c Thanh ghi ®iỊu khiĨn nèi tiÕp SCON - Thanh ghi SCON ghi bít đợc dùng để lập trình việc đóng khung bít bắt đầu Start, bít dừng Stop bít liệu víi viƯc kh¸c SM0 SM1 SM2 REN thu TB8 RB8 T1 Dới mô tả bít chế khácđộ SCON: SCON.7 Số xác định làm việc cổng nối tiếp SCON.6 Số xác định chế độ làm việc cổng nối tiếp SCON.5 Dùng cho truyền thông bé vi lý (SM2 = 0) SCON.4 BËt/xo¸ b»ng phần mềm phép/ không cho SCON.3 SCON.2 SCON.1 Kh«ng sư dơng- 150 réng r·i Kh«ng sư dơng réng rãi Cờ ngắt truyền đặt phần cứng bắt đầu Bài giảng môn học: Vi xử lý SM0 Ri SM1 SM2 REN TB8 RB8 Ti - Chức bit Các bít SM0, SM1 Đây bít D7 D6 ghi SCON Chúng đợc dùng để xác định chế độ đóng khung liệu cách xác định số bít ký tự bít Start Stop Các tổ hợp chúng là: SM0 SM1 0 ChÕ ®é nèi tiÕp 0 Chế độ nối tiếp 1, bít liệu, Start, Stop ChÕ ®é nèi tiÕp 1 ChÕ ®é nèi tiÕp Trong chÕ ®é ta quan tâm đến chế độ 1, chế độ khác đợc giải thích Appendisk A3 Trong ghi SCON chế độ đợc chọn liệu đợc đóng khung gồm bít liệu, bít Start, bít Stop để tơng thích với cổng COM IBM PC PC tơng thích khác Quan trọng chế độ nối tiếp cho phép tốc độ baud thay đổi đợc thiết lập bëi Timer1 cđa 8051 Trong chÕ ®é nèi tiÕp ký tự gồm có 10 bít đ ợc truyền có bít đầu bít Start, sau bít liệu cuối bÝt Stop BÝt SM2 BÝt SM2 lµ bÝt D5 cđa ghi SCON Bít cho phép khả đa xử lý 8051 nằm phạm vi trình bày chơng Đối với ứng dụng đặt SM2 = ta không sử dụng 8051 môi trờng đa xử lý Bít REN Đây bít cho phép thu (Receive Enable), bít D4 ghi SCON Bít REN đợc tham chiếu nh SCON.4 SCON ghi đánh - 151 Bài giảng môn học: Vi xử lý địa theo bít Khi bít REN cao cho phép 8051 thu liệu chân RxD Và kết ta muốn 8051 vừa truyền nhận liệu bít REN phải đợc đặt lên Khi đặt REN thu bị cấm Việc đặt REN = hay REN = đạt đợc lệnh SETB SCON.4 CLR SCON.4 tơng ứng Lu ý lệnh sử dụng đặc điểm đánh địa theo bít ghi SCON Bít đợc dùng để khống chế việc nhận liệu nối tiếp nã lµ bÝt cùc kú quan träng ghi SCON BÝt TB8 vµ RB8 BÝt TB8 lµ bÝt SCON.3 bít D3 ghi SCON Nó đợc dùng chế độ nối tiếp Ta đặt TB8 không đ ợc sử dụng ứng dụng Bít RB8 (bít thu 8) lµ bÝt D2 cđa ghi SCON Trong chÕ độ nối tiếp bít nhận cđa bÝt Stop mét d÷ liƯu bÝt đợc nhận Bít nh bít TB8 đợc sử dụng Trong ứng dụng ta đặt RB8 = đợc sử dụng cho chế độ nối tiếp Các bít TI RI Các bít ngắt truyền TI ngắt thu RI bít D1 D0 ghi SCON Các bít quan trọng cđa ghi SCON Khi 8051 kÕt thóc trun mét ký tự bít bật TI để báo sẵn sàng truyền byte khác Bít TI đợc bật lên trớc bít Stop Còn 8051 nhận đợc liệu nối tiếp qua chân RxD tách bít Start Stop để lấy bít liệu để đặt vào SBUF, sau hoàn tất bật cờ RI để báo nhận xong byte cần phải lấy kẻo bị cờ RI đợc bật tách bít Stop Trong dụ dới nói vai trò bít TI RI 6.8.2 Lập trình cho vi điều khiển trao đổi liệu nối tiếp với PC Sơ đồ giao tiếp VĐK với máy tính truyền thông qua cổng COM ( Serial Port ) Ta phải sử dụng vi mạch chuyển đổi MAX232 để chuyển thành vào TTL cho chân RD TD vi điều khiển tơng thích mức TTL , giao tiếp với PC qua hai chân RXD ( nhận ) TXD ( phát ) - 152 Bài giảng môn học: Vi xử lý D8 D7 D6 D5 D4 D3 D2 D1 LED-RED LED-RED LED-RED LED-RED LED-RED LED-RED LED-RED LED-RED 100 OUT INDICATOR L1 R2 100 L2 R3 100 L3 R4 100 L4 R5 100 L5 R6 100 L6 R7 100 L7 R8 100 L8 R9 C5 U2 39 38 37 36 35 34 33 32 8051 AND PC INTERFACE C1 TO PC 1uF RD TD 11 12 10 C1+ C1- T1IN R1OUT T2IN R2OUT T1OUT R1IN T2OUT R2IN CONN-D9F VS+ VS- MAX232 C2+ C2- C2 L1 L2 L3 L4 L5 L6 L7 L8 U1 14 13 C3 1uF C4 1uF P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 21 22 23 24 25 26 27 28 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 10 11 12 13 14 15 16 17 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD XTAL1 XTAL2 19 18 1u X1 CRYSTAL R1 10k RST IN PSEN ALE EA P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 29 30 31 AT89C51 1uF IN TEST dụ: Viết chơng trình cho VĐK 8051 nhËn d÷ liƯu nèi tiÕp tõ mét giao diƯn máy tính hiển thị ký tự nhận đợc led đơn nối với PORT2 biết: - Khung d÷ liƯu cã 10 bÝt: bit start, bit data, bít stop - Tốc độ truyền 1200 - Tần số thạnh anh sử dụng 11.0592Mhz - Truyền thông nối tiếp qua cổng COM1 Giải: Trớc tiên ta cần phải tạo giao diện máy tính §Ĩ t¹o giao diƯn ta cã thĨ sư dơng nhiỊu phần mềm khác nh: Delphi, Visual Basic, C++ giới thiệu tạo giao diện Visual Basic * Tạo giao diện - Khởi động Visual Basic më dù ¸n míi - LÊy Label, Text box, Command button để tạo giao diện nh sau: - 153 Bài giảng môn học: Vi xử lý - Để thay tổi tên đối tợng giao diện ta chọn vào đối tợng sau chọn caption hộp thoại Properties bên phải phần mềm - Thay đổi cớ chữ, Font chữ ta chọn Font Properties - Để phục * Viết lệnh cho đối tợng giao diện - Để viết lệnh cho đối tợng ta nháy đúp chuột vào đối tợng ®ã Private Sub Command1_Click() 'su kien nhan nut truyen MSComm1.Output = Text1.Text 'gui gia tri tai text1 cong com End Sub Private Sub Command2_Click() 'su kien nhan nut thoat MSComm1.PortOpen = False 'dong cong com - 154 Bài giảng môn học: Vi xử lý End 'ket thuc chuong trinh End Sub Private Sub Form_Load() ' Su kien load form MSComm1.CommPort = 'chon cong com MSComm1.Settings = "1200,n,8,1" 'chon toc truyen la 1200, khong kiem tra chan le ‘ mot bit dung MSComm1.PortOpen = True 'chon mo cong Text1.Text = "" 'gan text1 bang mot khoang trang End Sub - Sau ®ã ta chän File/Make project1.exe la có đợc file chạy nh sau: * Viết chơng trình cho VĐK ;chuong trinh viet cho VDK 8051 nhan du lieu noi tiep tu may tinh ;va gui cac led don noi voi port2 ;tan so anh su dung la 11.0592 ;khung du lieu la: 1200,n,8,1 ;chuong trinh su dung ngat noi tiep de nhan ; -org jmp start ; - khai bao dia chi vec to ngat noi tiep org 23h mov a,sbuf ;doc du lieu tu bo dm noi tiep vao A mov p2,a ;dua A port2 clr ri ;xoa co nhan reti ; -start: mov ie,#10010000b ;cho phep ngat noi tiep mov scon,#01010000b ;du lieu noi tiep 8bit UART va cho phep nhan - 155 Bài giảng m«n häc: Vi lý mov tmod,#00100000b;chon timer1 mode bit tu dong nap lai mov th1,#0e8h ;to la 1200 voi crystal=11.0592Mhz setb tr1 ;khoi dong timer1 mov p2,#0 ;tat led jmp $ ;dung tai cho end * Lóc ta nạp chơng trình cho VĐK kết nối với máy tính để chạy thử nghiệm Khi ta truyền ký tự led đơn nèi víi Port sÏ cã m· ASCII cđa ký tù ®ã - 156 ... MHz - ThÕ hÖ (1978 -1982) Các vi xử lý hệ có đại diện vi xử lý 16 bit 8086/80186/80286 Intel 86000/86010 Motorola Một điều tiến hẳn so với vi xử lý bit hệ trớc vi xử lý 16 bit có tập lệnh đa dạng... hệ vi xử lý hoàn chỉnh - Thế hệ (1974-1977) Các vi xử lý đại diện hệ vi xử lý bit 6502 cđa MOS Technology, 6800 vµ 6809 cđa Motorola, 8080 8085 Intel đặc biệt vi xư lý Z80 cđa Zilog C¸c bé vi. ..Bài giảng môn học: Vi xử lý Máy vi tính (Microcomputer) loại máy tính thông dụng Một máy vi tính vi điều khiển (microcontroller) Chúng có khả làm vi c với số liệu có độ dài bit,

Ngày đăng: 30/09/2018, 22:07

TỪ KHÓA LIÊN QUAN

w