1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Giáo trình Thực hành vi xử lý - ĐH Sư Phạm Kỹ Thuật Nam Định

207 10 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

Tiêu đề Giáo Trình Thực Hành Vi Xử Lý
Tác giả Phạm Xuân Bách, Giản Quốc Anh, Trần Văn Hạnh
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Nam Định
Chuyên ngành Điện - Điện Tử
Thể loại Giáo Trình
Năm xuất bản 2011
Thành phố Nam Định
Định dạng
Số trang 207
Dung lượng 7,23 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • Bài 1: Sử dụng phần mềm EMU8086 viết chương trình cho Vi xử lý 80x86 (0)
    • I. Mục tiêu bài học (9)
    • II. Nội dung bài học (9)
      • 1. Hướng dẫn sử dụng phần mềm EMU8086 (9)
        • 1.1 Hướng dẫn cài đặt phần mềm EMU8086 (9)
        • 1.2. Sử dụng phần mềm EMU8086 (12)
          • 1.2.1. Khởi động chương trình và các menu của chương trình (12)
          • 1.2.2. Soạn thảo chương trình (17)
          • 1.2.3. Dịch và liên kết chương trình (20)
          • 1.2.4. Mô phỏng và chạy chương trình (23)
        • 1.3. Ví dụ và bài tập cơ bản lập trình cho vi xử lý 8086 (29)
  • Bài 2: Giao tiếp vi xử lý với các bộ chỉ thị (0)
    • 1. Sơ đồ phần cứng (37)
      • 1.1. Cấu trúc cổng song song (37)
        • 1.1.1. Sơ đồ khối bộ giao tiếp điều khiển cổng song song (37)
        • 1.1.2. Nhóm các tín hiệu giao diện song song (37)
        • 1.1.3. Các chế độ hoạt động của cổng song song (39)
      • 1.2. Giao tiÕp PC víi PC (42)
        • 1.2.1. Giao tiếp chế độ chuẩn (42)
        • 1.2.2. Chế độ mở rộng (43)
      • 1.3 Giao tiếp PC với thiết bị ngoại vi (44)
    • 2. Lập trình cho vi xử lý xuất dữ liệu qua cổng song song (46)
  • Bài 3: Giao tiếp vi xử lý với các bộ điều khiển (0)
    • 1. Động cơ một chiều (54)
      • 1.1 Cấu tạo động cơ một chiều (54)
      • 1.2 Phương pháp lựa chọn điều khiển động cơ (55)
      • 1.3. Sơ đồ nguyên lý mạch điều khiển động cơ một chiều (55)
      • 1.4. Lập trình ghép nối với bộ điều khiển động cơ một chiều (56)
    • 2. Động cơ bước (57)
      • 2.1 Cấu tạo động cơ bước (57)
        • 2.1.1. Động cơ nam châm vĩnh cửu (57)
        • 2.1.2. Động cơ bước có từ trở thay đổi (57)
        • 2.1.3. Động cơ bước hổn hợp (58)
      • 2.2. Đặc điểm chung của động cơ bước (61)
      • 2.3. Phương pháp điều khiển bước đủ và nửa bước (62)
        • 2.3.1 Phương pháp điều khiển bước đủ (62)
        • 2.3.2. Phương pháp điều khiển nửa bước (63)
      • 2.4. Lập trình điều khiển động cơ bước thông qua cổng song song (64)
  • Bài 4: Hướng dẫn sử dụng phần mềm Pinnacle 52 viết chương trình cho vi điều khiển họ 8051 (0)
    • 1. Hướng dẫn sử dụng phần mềm Pinnacle 52 (69)
      • 1.1 Giới thiệu về phần mềm Pinnacle 52 (69)
      • 1.2. Giao diện của Pinnacle 52 (70)
      • 1.3. Các bước viết chương trình trên Pinnacle 52 (71)
    • 2. Viết chương trình cho vi điều khiển (77)
      • 2.1 Giới thiệu Vi điều khiển 8051 (77)
        • 2.1.1. Sơ đồ cấu trúc (78)
        • 2.1.2. Các thông số cơ bản (79)
        • 2.1.3 Tổ chức bộ nhớ của 8051 (80)
      • 2.2 Sử dụng phần mềm Pinnacle 52 viết chương trình cho Vi điều khiển (84)
  • Bài 5: Lập trình 8051 ghép nối với các bộ chỉ thị (0)
    • 1. Lập trình điều khiển cổng làm chức năng vào/ ra (92)
      • 1.1. Giới thiệu về các cổng vào ra song song của vi điều khiển 8051 (92)
      • 1.2. Lập trình cho các cổng của vi điều khiển làm chức năng đầu ra (92)
      • 1.3. Lập trình cho các cổng của vi điều khiển làm chức năng đầu vào (98)
    • 2. Lập trình ghép nối Led 7 đoạn (105)
      • 2.1. Giới thiệu về phương pháp hiển thị dữ liệu trên Led 7 đoạn theo phương pháp quét (105)
      • 2.2. Giới thiệu về các bộ timer của vi điều khiển 8051 (110)
        • 2.2.1. Các thanh ghi điều khiển và trạng tháI của timer (111)
        • 2.2.2. Mô tả hoạt động của bộ Timer (113)
      • 2.3. Lập trình cho Timer của 8051 làm chức năng bộ đếm (114)
      • 2.4. Lập trình cho vi điều khiển ở chức năng bộ định thời (117)
      • 2.5. Lập trình điều khiển ngắt (120)
        • 2.5.1. Giới thiệu hoạt động của ngắt và các ngắt của vi điều khiển (120)
        • 2.5.2. Các thanh ghi điều khiển và trạng thái ngắt (121)
        • 2.5.3. Lập trình với ngắt Timer (122)
        • 2.5.4. Lập trình với ngắt ngoài (127)
    • 3. Giao tiÕp vi ®iÒu khiÓn víi LCD 16x2 (132)
      • 3.1. Giới thiệu LCD 16x2 (132)
      • 3.2. Hoạt động của LCD (133)
        • 3.2.1 Sơ đồ chân của LCD (134)
        • 3.2.2 Mô tả các chân của LCD (134)
        • 3.2.3 Các thành phần chức năng của LCD1602A (135)
        • 3.2.4 Đặc tính điện của chân giao tiếp (137)
      • 3.3. Lược đồ thời gian (138)
      • 3.4. LËp tr×nh cho vi ®iÒu khiÓn 89C51 giao tiÕp víi LCD 16x2 (140)
    • 4. Giao tiÕp vi ®iÒu khiÓn víi Led ma trËn (142)
      • 4.1. Giới thiệu Led ma trận (142)
      • 4.2 Phương pháp quét (0)
      • 4.2. LËp tr×nh cho vi ®iÒu khiÓn 89C51 giao tiÕp ma trËn Led (145)
  • Bài 6: Lập trình 8051 ghép nối với các bộ chuyển đổi (0)
    • 1. Giới thiệu (147)
      • 1.1 Lấy mẫu một tín hiệu tương tự (149)
      • 1.2. Định lý lấy mẫu (151)
      • 1.3. Lượng tử hóa tín hiệu biên độ liên tục (153)
    • 2. Giới thiệu các bộ chuyển đổi ADC, DAC thường dùng (155)
      • 2.1 Bộ chuyển đổi số tương tự sử dụng vi mạch DAC 0808 (155)
      • 2.2. Sơ đồ mạch nguyên lý DAC0808 (157)
      • 2.3. Viết chương trình cho vi điều khiển 89C51 chuyển đổi DAC (157)
    • 3. Giới thiệu ADC0809 (160)
      • 3.1. Sơ đồ mạch nguyên lý ADC0809 (162)
      • 3.2. Lược đồ thời gian hoạt động của ADC0809 (162)
      • 3.3. Viết chương trình cho vi điều khiển 8051 chuyển đổi ADC (163)
  • Bài 7: Lập trình 8051 điều khiển động cơ điện (0)
    • 1. Kết nối bộ điều khiển động cơ một chiều (168)
    • 2. Lập trình điều khiển chiều quay động cơ một chiều (170)
    • 3. Lập trình điều khiển tốc độ động cơ một chiều (172)
    • 4. Lập trình ghép nối với bộ điều khiển động cơ bước (175)
      • 4.1. Sơ đồ nguyên lý mạch điều khiển động cơ bước (177)
      • 4.2. VÝ dô (177)
  • Bài 8: Giao tiếp qua cổng nối tiếp (COM) (0)
    • 1. Cấu trúc cổng nối tiếp (181)
      • 1.1. Cấu tạo và phân bố các chân tín hiệu (181)
      • 1.2. Địa chỉ cổng và tốc độ truyền của cổng nối tiếp (183)
      • 1.3. Phương pháp truyền (184)
      • 1.4. Khung dữ liệu nối tiếp (185)
    • 2. Giao tiÕp PC víi PC (185)
    • 3. Giao tiếp PC với thiết bị ngoại vi (186)
    • 4. Lập trình cho vi điều khiển 8051 giao tiếp với PC điều khiển thiết bị ngoại vi sử dụng phần mềm Visual hoặc Delphi tạo ứng dụng và Pinnacle 52 lập trình cho 8051 (187)
      • 4.1. Lập trình truy xuất trực tiếp cổng (187)
      • 4.2. Lập trình truy xuất gián tiếp thông qua driver (187)
      • 4.3. Các ví dụ cơ bản lập trình cho PC giao tiếp với thiết bị ngoại thông qua 8051 (190)
  • Tài liệu tham khảo (207)

Nội dung

Nội dung giáo trình được chia làm 8 bài, được trình bày chi tiết như sau: Sử dụng phần mềm EMU8086 viết chương trình cho vi xử lý 80x86; lập trình giao tiếp vi xử lý với các bộ chỉ thị; lập trình giao tiếp vi xử lý với các bộ điều khiển; sử dụng phần mềm Pinnacle 52 viết chương trình cho vi điều khiển họ 8051.

Sử dụng phần mềm EMU8086 viết chương trình cho Vi xử lý 80x86

Mục tiêu bài học

- Cài đặt được một số phần mềm lập trình hợp ngữ

- Sử dụng thành thạo phần mềm EMU8086 để soạn thảo, hợp dịch, sửa lỗi và mô pháng cho VXL 80x86

- Vận dụng làm các ví dụ, bài tập cho vi xử lý trên EMU8086

Yêu cầu vật tư thiết bị

- Máy tính cài đặt hệ điều hành Windows XP

- Bộ cài đặt phần mềm EMU8086

Nội dung bài học

1 Hướng dẫn sử dụng phần mềm EMU8086

1.1 Hướng dẫn cài đặt phần mềm EMU8086

Để bắt đầu cài đặt EMU8086, hãy nháy đúp chuột vào tệp Setup.exe trong bộ cài Một cửa sổ chào mừng sẽ xuất hiện, thông báo rằng chương trình đang chuẩn bị cài đặt Để tiếp tục, bạn cần chọn nút Next.

Hình 1.1 Cửa sổ chào mừng của phần mềm cài đặt EMU8086

- Tiếp theo phần mềm đưa ra thông báo yêu cầu người sử dụng đọc kỹ trước khi tiến hành cài đặt tiếp, để tiếp tục bạn chọn Next

Hình 1.2 Các thông tin sử dụng phần mềm

Hộp thoại tiếp theo sẽ yêu cầu người cài đặt xác định đường dẫn cho thư mục cài đặt chương trình Bạn nên giữ thiết lập mặc định và nhấn Next để tiếp tục.

Hình 1.3 Thông báo lựa chọn đường dẫn cài đặt

- Hộp thoại kế tiếp báo chương trình đã sẵn sàng cài đặt, bạn tiếp tục chọn Install

Hình 1.4 Các thông tin cài đặt

- Khi đó chương trình sẽ tiến hành cài đặt lên máy bạn

Hình 1.5 Tiến trình cài đặt

- Sau khi cài đặt xong chương trình hiện lên hộp thoại thông báo quá trình cài đặt đã hoàn tất, để kết thúc chọn Finish

Hình 1.6 Thông báo kết thúc quá trình cài đặt

- Bắt đầu sử dụng chương trình chọn: Start/Program/Emu8086/emu8086 khi đó chương trình hiện lên hộp thoại

Hình 1.7 Yêu cầu cập nhật phần mềm Để tiếp tục chọn Later

- Đăng ký bản quyền phần mềm chọn About trên thanh công cụ, khi đó chương trình hiện lên hộp thoại

Hình 1.8 Thông tin bản quyền phần mềm

To enter the CD key, click on “Click here to enter the registration key ” which will prompt a dialog box where you can input your username and the license code.

- Khi đăng ký hoàn tất chương trình đưa lên hộp thoại cho biết phần mềm đã được đăng ký cũng như phiên bản của phần mềm

1.2 Sử dụng phần mềm EMU8086

1.2.1 Khởi động chương trình và các menu của chương trình

Khởi động chương trình EMU8086 bằng cách nhấp vào biểu tượng trên màn hình hoặc truy cập từ Start/Programs/EMU8086 Sau khi khởi động, hộp thoại sẽ hiện ra cho phép người dùng lựa chọn các tùy chọn cần thiết.

Hình 1.9 Các tùy chọn làm việc với EMU8086 Các menu chính của chương trình

+ New : cho phép mở bài mới dạng *.COM, *.EXE, dạng Bin và dạng Boot

+ Examples : cho phép mở các ví dụ có sẵn của chương trình

+ Open : cho phép mở các bài tập đã được ghi vào trong máy hay trên đĩa

+ Save : cho phép ghi lại chương trình hiện tại đang làm

+ Save as : cho phép ghi lại chương trình đang làm với tên khác hoặc đường dẫn khác đi

+ Export to HTML : cho phép bạn xuất file của chương trình đang làm thành file có đuôi HTML

Hình 1.10 Menu FILE của chương trình

Hình 1.11 Menu EDIT của chương trình + Undo: phục hồi lại một lệnh mà bạn vừa thao tác

+ Redo: phục hồi lại một lệnh vừa thao tác về phía trước

+ Cut: xoá một đoạn chương trình được bôi đen

+ Copy: sao chép một đoạn chương trình được bôi đen

+ Paste: dán lại phần vừa thực hiện lệnh copy hay lệnh cut

+ Select all: lựa chọn toàn bộ chương trình (đánh dấu)

+ Find: tìm kiếm ký tự hay đoạn văn bản trong chương trình

+ Find next: tìm kiếm các ký tự tiếp theo từ vị trí con trỏ hiện hành

+ Replace: tìm kiếm một hay nhiều ký tự và thay thế nó bởi ký tự mới

+ Go to line: đưa con trỏ tới dòng được nhập từ bàn phím

Ngoài ra trong tap menu này còn một số tính năng khác

- Menu Bookmark: đánh dấu các đoạn chương trình đang viết

Hình 1.12 Menu BOOKMARK của chương trình

- Menu Assembler: chứa các tính năng sau

Hình 1.13 Menu ASSEMBLER của chương trình + Compile: hợp dịch chương trình

+ Compile and load in the emulator: hợp dịch chương trình và nạp file chạy của chương trình vào vùng mô phỏng

+ Set output directory: đặt đường dẫn cho đầu ra

Hình 1.14 Menu EMULATOR của chương trình + Show emulator : cho phép quan sát của sổ mô phỏng của chương trình

+ Asssemble and load in the emulator: hợp dịch chương trình và tải chương trình vào vùng mô phỏng

- Menu math: cho phép thực hiện một số phép toán số học

Hình 1.15 Menu MATH của chương trình + Multi base calculator: cho phép quan sát kết quả của quá trình mô phỏng dưới dạng các hệ đếm

+ Base convertor : chuyển đổi các hệ đếm như hệ thập phân, nhị phân, hexa

Menu mã ASCII cho phép người dùng xem mã ASCII tương ứng của các ký tự trên bàn phím máy tính cùng với các ký tự đặc biệt khác Người dùng có thể dễ dàng chuyển đổi giữa các định dạng số Hexa và thập phân bằng cách nhấp chuột vào màn hình để thay đổi.

Hình 1.16 Menu ASSCII của chương trình

Menu HELP của chương trình cung cấp hướng dẫn chi tiết về cách sử dụng, lập trình với tập lệnh 8086, các ngắt, và một số bài tập mẫu Ngoài ra, các thanh công cụ của chương trình cũng được giới thiệu để hỗ trợ người dùng trong quá trình làm việc.

+ Open: mở bài đã có

+ Examples: mở các bài ví dụ có sẵn của chương trình

+ Save: ghi lại bài đang làm

+ Compile: hợp dịch chương trình

+ Emulate: chuyển chương trình sang chế độ mô phỏng

+ Calculator: quan sát kết quả dưới dạng các hệ đếm khác nhau

+ Convertor: chuyển đổi các hệ đếm

+ Option: tuỳ chọn các tính năng ứng dụng của chương trình

+ About : cung cấp các thông tin cơ bản về phần mềm EMU8086

Khi viết chương trình cho vi xử lý 8086, có hai dạng khung chương trình chính là COM và EXE Việc lựa chọn khung chương trình phụ thuộc vào dung lượng và quy mô của ứng dụng Nếu sử dụng phần mềm khác để phát triển chương trình, cần khai báo khung cho chương trình Phần mềm EMU8086 cung cấp cấu trúc sẵn có cho các khung chương trình này.

+ Chọn khung chương trình dạng COM (cho các ứng dụng nhỏ) Chọn mở bài mới và chọn vào tùy chọn COM

Hình 1.18 Lựa chọn khung chương trình Khi đó chương trình sẽ cho ta khung của chương trình dạng COM như sau:

Hình 1.19 Khung chương trình dạng COM Viết nội dung chương trình chính vào vị trí được bôi đen “Add your code here”

+ Chọn khung chương trình dạng EXE (cho các ứng dụng từ nhỏ tới lớn) Chọn mở bài mới và chọn vào tùy chọn EXE

Chương trình mở ra một file mới có giao diện như sau:

Hình 1.20 Khung chương trình dạng EXE Viết nội dung chương trình chính vào vị trí được bôi đen “Add your code here”

Sau khi xác định cấu trúc khung cho chương trình hợp ngữ, chúng ta sẽ tiến hành biên soạn chương trình cho vi xử lý (VXL) của ứng dụng.

Khi soạn thảo chương trình, cần tuân thủ các quy ước lập trình hợp ngữ liên quan đến cấu trúc dòng lệnh, tên nhãn, lệnh, toán hạng và chú thích Đảm bảo rằng chương trình chính và các chương trình con được viết đúng cấu trúc là điều quan trọng.

Khi soạn thảo chương trình, cần đảm bảo việc sử dụng chữ hoa hoặc chữ thường một cách nhất quán trong toàn bài Tránh sử dụng phông tiếng Việt trong quá trình lập trình Ngoài ra, nên phân biệt rõ giữa chương trình chính và chương trình con bằng cách sử dụng chú thích hoặc gạch nối, điều này sẽ giúp dễ dàng quan sát và sửa lỗi khi cần thiết.

Trước khi bắt đầu soạn thảo, hãy ghi lại chương trình để phòng tránh rủi ro do mất điện hoặc treo máy Bạn có thể lưu lại bằng cách chọn "Save" trên menu hoặc thanh công cụ Đường dẫn mặc định của chương trình là C:\EMU8086\Mysource.

Khi đặt tên file, hãy chú ý không nên vượt quá 8 ký tự và tránh sử dụng dấu chấm hay dấu gạch giữa các ký tự Đây là quy định của chương trình hợp dịch hợp ngữ.

1.2.3 Dịch và liên kết chương trình

Để thực hiện hợp dịch chương trình, bạn cần chọn tùy chọn "compile" trong Menu Assembler trên thanh công cụ Sau đó, chương trình sẽ hiển thị hộp thoại yêu cầu bạn nhập tên file chạy (.exe hoặc com) mà trình hợp dịch sẽ tạo ra.

Để lưu chương trình hợp dịch, bạn cần chọn đường dẫn và đặt tên cho ứng dụng mà bạn muốn tạo ra Bạn có thể giữ nguyên đường dẫn mặc định của chương trình và sử dụng tên trùng với tên đã đặt cho file nguồn trước đó.

Nếu chương trình không gặp lỗi cú pháp như lỗi đánh máy hay sai cấu trúc dòng lệnh, máy tính sẽ thông báo rằng quá trình biên dịch đã thành công và cung cấp dung lượng của chương trình được tạo ra.

Giao tiếp vi xử lý với các bộ chỉ thị

Sơ đồ phần cứng

1.1 Cấu trúc cổng song song

1.1.1 Sơ đồ khối bộ giao tiếp điều khiển cổng song song

Hình 2.1 Sơ đồ giao tiếp điều khiển cổng song song

1.1.2 Nhóm các tín hiệu giao diện song song

Giao diện song song nối 8 bit thấp của bus dữ liệu kết nối với các thiết bị ngoại vi, sử dụng chín tín hiệu bus địa chỉ cùng với hai tín hiệu /IOR và /IOW để xác định các thanh ghi giao diện và chiều truyền dữ liệu Các tín hiệu giao diện được phân chia thành ba nhóm chính: nhóm dữ liệu với 8 đường vào, nhóm trạng thái với 5 đường vào, và nhóm điều khiển với 4 đường ra.

Sơ đồ chân và mô tả các chân tín hiệu của cổng song song

Hình 2.2 Sơ đồ mô tả các chân của cổng song song

Các địa chỉ thanh ghi của cổng song song trên máy tính PC (Desktop PC)

(LPT) Địa chỉ thanh ghi dữ liệu Địa chỉ thanh ghi trạng thái Địa chỉ thanh ghi ®iÒu khiÓn

Hình 2.3 Địa chỉ thanh ghi của cổng song song

Cổng song song gồm 8 đường dữ liệu, 4 đường điều khiển và 5 đường trạng thái, được tổ chức thành 3 thanh ghi cơ bản: thanh ghi dữ liệu, thanh ghi trạng thái và thanh ghi điều khiển.

- Thanh ghi dữ liệu ( hai chiều ) :

Tên của tín hiệu Chân số

Auto Linefeed (tự động nạp dòng) 14

Select Input (lựa chọn lối vào) 17

1.1.3 Các chế độ hoạt động của cổng song song

Các chế độ hoạt động của cổng song song được chia ra làm 5 chế độ hoạt động nh sau:

- Chế độ tương thích (Compatibility) Chế độ tương thích truyền giữ liệu theo các giai đoạn sau :

- Máy chủ báo sẵn sàng nhận bằng cách đưa HostBusy về 0

- Thiết bị ngoại vi báo byte đầu tiên lên dây dữ liệu

- Thiết bị ngoại vi báo byte có giá trị bắng cách đặt PtrClk về 0

- Máy chủ đưa Hot Busy lên 1, báo đã nhận được byte và chưa sẵn sàng cho byte khác

- Thiết bị ngoại vi chứa PtrClklên 1 để báo cho máy chủ , máy chủ đưa HostClk lên 1 để trả lời

Bước 1 cho đến 5 được lặp lại cho các byte sau

Chế độ nible là phương thức phổ biến nhất để truyền dữ liệu từ thiết bị ngoại vi đến máy tính, kết hợp với chế độ cơ bản tạo thành giao diện song song truyền dữ liệu hai chiều Giao diện cơ bản sử dụng 5 tín hiệu để thông báo trạng thái của thiết bị ngoại vi, cho phép truyền một byte dữ liệu về máy tính qua hai chu kỳ, mỗi chu kỳ xử lý một nibble.

Từ thế hệ máy PS/2 của IBM, bộ khuếch đại dữ liệu được ngắt mạch để sử dụng 8 tín hiệu dữ liệu theo chiều ngược lại, cho phép thiết bị ngoại vi truyền 8 bit về máy chủ cùng một lúc, thay vì hai lần như chế độ nibble Chế độ này có tốc độ gần bằng chế độ tương thích và được gọi là chế độ cổng hai chiều cải tiến (enhanced bi-directional port).

- Chế độ EPP (Enhanced Parallel Port)

Phiên bản cải tiến EPP của giao thức truyền cổng song song được thiết kế bởi các hãng Intel, Xircom và Zenith Data Systems Phiên bản này được tích hợp vào các vi mạch Chipset của Intel trước khi tiêu chuẩn 1284 được ra mắt Chế độ EPP hỗ trợ bốn chu kỳ truyền dữ liệu.

- Chu kỳ đọc dữ liệu

- Chu kỳ ghi địa chỉ

- Chu kỳ đọc địa chỉ

Chế độ EPP yêu cầu nhiều thanh ghi hơn, bổ sung thêm 3 thanh ghi với địa chỉ lệch từ 3 đến 7 Địa chỉ của các cổng này được tính bằng cách cộng địa chỉ lệch với địa chỉ cơ sở của cổng song song 378H (278H) Khi dữ liệu được ghi ra cổng 37CH (27CH), phần cứng tự động quản lý tín hiệu bắt tay trong chu kỳ ghi Ghi lên các cổng cơ bản 378H - 37AH sẽ nhận được phản ứng từ giao diện song song chuẩn SPP Chu kỳ đọc/ghi địa chỉ cũng được thực hiện khi ghi hoặc đọc cổng 37BH (27BH).

Các nhà sản xuất vi mạch SuperIO sử dụng các thanh ghi có địa chỉ lệch từ 5 đến 7 một cách linh hoạt, cho phép chúng được cấu hình làm cổng vào ra 16.

Chế độ EPP ghi dữ liệu theo các giai đoạn sau :

- Chương trình thực hiện lệnh ghi ra thanh ghi dữ liệu EPP

- Tín hiệu WRITE xuống 0 và dữ liệu được chuyển ra đường dữ liệu

- Tín hiệu DATA STB xuống 0 trong khi WAIT cũng xuống 0

- Cổng EPP đợi tín hiệu nhận từ thiết bị ngoại vi (WAIT =1)

- Tín hiệu DATA STB lên 1 và chu kỳ kết thúc

- Chu kỳ đọc /ghi của bus ISA trong máy tính kết thúc

- Tín hiệu WAIT xuống 0 , báo chu kỳ tới có thể bắt đầu

Quá trình truyền dữ liệu qua EPP diễn ra trong chu kỳ đọc/ghi của bus ISA, cho phép máy tính truyền dữ liệu với tốc độ từ 500Kbyte đến 2 Mbyte mỗi giây Nhờ đó, thiết bị ngoại vi có thể hoạt động nhanh chóng như một mạch cắm ISA bên trong máy tính.

- Chế độ ECP (Extended Capabilities Port)

Cổng khả năng mở rộng ECP (Extended Capability Port) do Hewlett Packard và Microsoft phát triển nhằm nâng cao hiệu suất truyền dữ liệu giữa máy chủ, máy in và máy quét Chế độ EPP hỗ trợ hai chu kỳ truyền dữ liệu theo hai hướng: chu kỳ dữ liệu và chu kỳ lệnh.

Chu kỳ lệnh được chia thành hai loại :

- Đếm chiều dài chạy (run- length count ),

- Kênh địa chỉ (channel address )

Khác với EPP, phiên bản ECP do Microsoft đề xuất đã đạt được tiêu chuẩn với các tính năng vượt trội mà IEEE 1284 không cung cấp, bao gồm mã chiều dài chạy RLE (run length encoding), khả năng nén dữ liệu, bộ đệm FIFO cho hai hướng, DMA và cổng vào ra có thể lập trình.

RLE cho phép nén dữ liệu trong thời gian thực với tỷ lệ lên đến 64:1, rất hữu ích cho máy in và máy quét xử lý dữ liệu bitmap có nhiều lặp lại Để sử dụng RLE, cả thiết bị ngoại vi và máy chủ cần được cài đặt phương pháp này.

Phương pháp định địa chỉ kênh của ECP khác biệt so với EPP, cho phép truy cập nhiều kênh trong một thiết bị vật lý duy nhất, như máy đa chức năng FAX, máy in, và MODEM Điều này cho phép nhiều thiết bị trong máy đa chức năng hoạt động đồng thời và trao đổi dữ liệu với máy tính thông qua một giao diện song song duy nhất.

Chu kỳ truyền dữ liệu bao gồm hai loại: chu kỳ dữ liệu khi HostAck lên 1 và chu kỳ lệnh khi HostAck xuống 0 Dữ liệu được truyền có thể là số đếm RLE hoặc địa chỉ kênh Bit 7 trong dữ liệu đóng vai trò là cờ phân biệt nội dung; nếu Bit 7 bằng 0, các bit từ 0 đến 6 sẽ đại diện cho số đếm RLE (từ 0 đến 127), còn nếu Bit 7 bằng 1, các bit này sẽ chỉ định địa chỉ kênh từ 0 đến 127 của thiết bị ngoại vi.

Chế độ ECP ghi dữ liệu của các giai đoạn sau:

- Máy chủ đặt dữ liệu lên đường dữ liệu và đưa HostAck lên một báo chu kỳ dữ liệu (0 cho lệnh )

- Máy chủ đưa HostClk xuống 0 báo dữ liệu có giá trị

- Thiết bị ngoại vi chấp nhận dữ lệu bằng cách đưa PeriphAck lên một

- Máy chủ đưa HosttClk lên một, bắt đầu truyền dữ liệu

- Thiết bị ngoại vi đưa PeriphAck xuống không báo sẵn sàng cho Byte tới Chu kú tiÕp tôc

Chế độ ECP nhận dữ liệu theo các giai đoạn sau:

- Máy chủ đặt đưa RevertRequest xuống không báo hướng vào

- Thiết bị ngoại vi AckReserve xuống 0 chấp nhận yêu cầu chuyển hướng

- Thiết bị ngoại vi đưa dữ liệu lên đường dữ liệu và báo chu kỳ dữ liệu bằng cách đưa PeriphAck lên một ( 0 cho chu kỳ lệnh)

- Thiết bị ngoại vi đưa PeriphClk xuống 0 báo dữ liệu có giá trị

- Máy chủ chấp nhận bằng cách đưa HostAck lên 1

- Thiết bị ngoại vi đưa PeriphClk lên 1 và bắt đầu truyền dữ liệu về máy chủ

- Máy chủ đưa HostAck xuống 0 báo sãn sàng nhận byte tiếp theo

Chu kỳ tiếp tục từ 1 đến 7

Giao diện ECP định nghĩa nhiều chế độ làm việc cho các thanh ghi của nó Mô hình các thanh ghi ECP tương tự như SPT

1.2 Giao tiÕp PC víi PC

1.2.1 Giao tiếp chế độ chuẩn

Hình 2.4 Sơ đồ giao tiếp chế độ chuẩn

- Các chân chức năng như sau:

Hình 2.5 Chức năng các chân giao tiếp chế độ chuẩn 1.2.2 Chế độ mở rộng

Hình 2.6 Sơ đồ giao tiếp và chức năng các chân của chế độ mở rộng 1.3 Giao tiếp PC với thiết bị ngoại vi

Sơ đồ các Card giao tiếp thiết bị ngoại vi với PC

- Card giao tiếp 5 đường vào số 12 đường ra số Card sử dụng IC đệm 74244

5 D IG IT A L IN _ 1 2 D IG IT A L O U T

Hình 2.7 Sơ đồ Card giao tiếp thiết bị ngoại vi với máy tính

- Card giao tiếp 16 đường vào số 16 đường ra số Card sử dụng IC đệm 74244 ,

IC chốt 74373, IC giải mã 74138 và IC đệm 7404.

Lập trình cho vi xử lý xuất dữ liệu qua cổng song song

Lập trình điều khiển 8 LED đơn kết nối với cổng máy in (LPT) của máy tính để bàn yêu cầu các LED này chớp tắt liên tục Địa chỉ của thanh ghi dữ liệu là 378H, với đầu ra tích cực ở mức cao.

SO DO DIEU KHIEN 8 LED DO N Q UA THANH G HI DATA

Bước 1: Vẽ lưu đồ giải thuật

- Lưu đồ giải thuật có thể tham khảo như sau:

Xác lập các khai báo Nạp địa chỉ cổng LPT Nạp AL =0 Xuất ra cổng LPT Tạo trễ Nạp AL FH Xuất ra cổng LPT Bắt đầu

;Chuong trinh viet dang EXE

.MODEL small ;khai báo quy mô sử dụng chương trình là nhỏ

.DATA ;khai bao doan du lieu du_lieu db "chop tat 8 led don $"

.CODE ;khai bao doan ma

Main Proc ;bắt đầu chương trình chính

Để nạp địa chỉ dữ liệu vào thanh ghi, sử dụng lệnh `mov ax, data` và `mov ds, ax` Tiếp theo, sử dụng `lea dx, du_lieu` để nạp dữ liệu vào thanh ghi DX Để xuất dữ liệu từ DS ra màn hình, cần thiết lập `mov ah, 9` và gọi ngắt `int 21h`, với điều kiện dữ liệu phải kết thúc bằng ký tự `$`.

The provided code snippet demonstrates a basic assembly language program that continuously sends data to a printer port It initializes the printer by moving specific values into registers and utilizes a delay function to control the timing of operations The program loops indefinitely, sending a sequence of commands to the printer until terminated, at which point it exits the operating system gracefully.

Lập trình điều khiển 8 LED đơn kết nối với cổng máy in (LPT) của máy tính để bàn yêu cầu các LED này chớp tắt liên tục Địa chỉ của thanh ghi dữ liệu là 378H, với đầu ra tích cực ở mức cao.

Bước 1: Vẽ lưu đồ giải thuật

- Lưu đồ giải thuật có thể tham khảo như sau:

Xác lập các khai báo Nạp địa chỉ cổng LPT

- Tắt các led đầu ra

- Xoay thanh ghi AL qua cê C

;Chuong trinh viet dang EXE

.MODEL small ;khai báo quy mô sử dụng chương trình là nhỏ

.DATA ;khai bao doan du lieu du_lieu db " 8 led don sang dan $"

.CODE ;khai bao doan ma

Main Proc ;bắt đầu chương trình chính

Để nạp địa chỉ dữ liệu vào thanh ghi, ta sử dụng câu lệnh "mov ax, data" và sau đó "mov ds, ax" để thiết lập thanh ghi dữ liệu Tiếp theo, dùng "lea dx, du_lieu" để nạp dữ liệu vào thanh ghi DX Để xuất dữ liệu từ DS ra màn hình, ta đặt "mov ah, 9" và thực hiện ngắt "int 21h", lưu ý rằng dữ liệu cần phải kết thúc bằng ký tự '$'.

; ngat cho doi nhan phim lap: mov dx,378h mov al,0 out dx,al call delay nhan:

Rcl al,1 out dx,al call delay

The program begins with the instruction to terminate the operating system using `mov ax, 4ch` followed by `int 21h` It includes a delay loop that initializes `cx` with `0fffh`, creating a nested loop structure The outer loop pushes `cx`, sets it to `0ffffh`, and continues looping until completion Finally, the program concludes with the `ret` instruction, marking the end of the assembly routine.

Lập trình điều khiển LED 7 đoạn kết nối với cổng máy in (LPT) của máy tính bàn nhằm đếm từ 0 đến 9 Địa chỉ thanh ghi dữ liệu là 378H và thanh ghi trạng thái là 37Ah, với đầu ra tích cực ở mức cao.

.MODEL small ;khai báo quy mô sử dụng chương trình là nhỏ

.DATA ;khai bao doan du lieu du_lieu db " Dem lent tu 0 - 9 $"

.CODE ;khai bao doan ma

Main Proc ;bắt đầu chương trình chính

Đoạn mã này sử dụng lệnh `mov` để nạp địa chỉ dữ liệu vào thanh ghi AX và sau đó chuyển giá trị của AX vào thanh ghi DS Tiếp theo, lệnh `lea` được sử dụng để nạp địa chỉ của biến `du_lieu` vào thanh ghi DX Lệnh `mov ah, 9` thiết lập ngắt để xuất dữ liệu từ DS ra màn hình, với điều kiện dữ liệu phải kết thúc bằng ký tự `$` Cuối cùng, lệnh `int 21h` được gọi để thực hiện việc xuất dữ liệu.

The program initializes by setting the control register with the command `mov dx, 37Ah` and selects the unit LED with `mov al, 00010101b` It enters a loop where it outputs various codes to the LED, starting with `mov al, 0C0h` for the number 0 and continues through to `mov al, 90h` for the number 9, each followed by a call to a delay function The delay function utilizes a loop to create a pause, ensuring each number is displayed for a brief moment before moving to the next The program concludes with `mov ax, 4ch` to exit the operating system and `int 21h` to terminate the program This structured approach effectively manages the LED display while incorporating essential delays for visibility.

Một số lỗi thường gặp

Thanh ghi điều khiển 37Ah có 3 bit đầu tiên có mức tích cực như sau:

C2: Initialize Printer(Reset) (không đảo mức)

Do đó, trong quá trình lập trình xuất dữ liệu cần phải lưu ý đến đặc điểm này để ghi dữ liệu phù hợp

Bài tập 1: Viết chương trình cho vi xử lý điều khiển các led đơn thực hiện theo yêu cầu sau:

- Một điểm sáng một điểm tối xen kẽ nhâu

- Sáng từ giữa ta, tắt từ giữa ra

- Sáng từ 2 bên vào, tắt từ 2 bên vào

Bài tập 2: Viết chương trình cho vi xử lý điều khiển các led đơn sáng dần 2 lần tắt dần 3 lần, chớp tắt 4 lần rồilặp lại

Bài tập 3: Viết chương trình cho vi xử lý điều khiển các led đơn thực hiện theo yêu cầu sau:

- Bấm phím A thì các led đơn chớp tắt

- Bấm phím B thì các led đơn sáng dần

Bài tập 4: Viết chương trình cho vi xử lý điều khiển led 7 đoạn thực hiện theo yêu cầu đếm lên từ 0 – 9 rồi đếm xuống từ 9 - 0

Bài tập 5: Viết chương trình cho vi xử lý điều khiển 2 led 7 đoạn đếm lên từ 00 -

Giao tiếp vi xử lý với các bộ điều khiển

Động cơ một chiều

1.1 Cấu tạo động cơ một chiều

Stator là phần tĩnh của động cơ, bao gồm các cực từ được tạo ra bởi nam châm vĩnh cửu hoặc nam châm điện Rotor là phần quay, có các cuộn dây quấn, cổ góp và chổi điện, tạo ra chuyển động và năng lượng điện.

Động cơ DC loại nhỏ, thường được sử dụng trong dân dụng, hoạt động ở điện áp tối đa 24V Một trong những cách hiệu quả để điều khiển tốc độ của động cơ này là thông qua mạch điều chế độ rộng xung (PWM - Pulse Width Modulation).

1.2 Phương pháp lựa chọn điều khiển động cơ Động cơ điện 1 chiều là động cơ điện hoạt động với dòng điện 1 chiều Động cơ điện một chiều ứng dụng rộng rãi trong các ứng dụng dân dụng cũng như công nghiệp Thông thường động cơ điện một chiều chỉ chạy ở một tốc độ duy nhất khi nối với nguồn điện, tuy nhiên có thể điều khiển tốc độ và chiều quay của động cơ với sự hỗ trợ của các mạch điện tử bằng phương pháp PWM Động cơ điện một chiều trong dân dụng thường là các dạng động cơ hoạt động với điện áp thấp, dùng với những tải nhỏ Trong công nghiệp, động cơ điện một chiều được sử dụng ở những nơi yêu cầu moment mở máy lớn hoặc yêu cầu thay đổi tốc độ trong phạm vi rộng

Bộ phận chỉnh lưu là một thành phần quan trọng trong động cơ điện một chiều, có chức năng đổi chiều dòng điện trong cuộn Rotor khi Rotor quay liên tục Thông thường, bộ phận này bao gồm cổ góp và chổi than tiếp xúc với cổ góp Tuy nhiên, nhược điểm lớn nhất của động cơ điện một chiều là sự phức tạp trong cấu tạo do cổ góp, dẫn đến chi phí cao, độ tin cậy kém và nguy hiểm trong môi trường dễ nổ, yêu cầu nguồn điện một chiều hoặc bộ chỉnh lưu để hoạt động.

1.3 Sơ đồ nguyên lý mạch điều khiển động cơ một chiều.

Card giao tiếp PC điều khiển động cơ DC 12V quay thuận nghịch

Card giao tiếp bao gồm IC đệm 74244 các transistor làm nhiệm vụ điều khiển đảo chiều quay cho Motor Nguồn cấp cho mạch là + 5V và +12V

Hình 3.2 Mạch điều khiển động cơ một chiều 1.4 Lập trình ghép nối với bộ điều khiển động cơ một chiều.

Lập trình điều khiển động cơ một chiều kết nối với cổng máy in (LPT) trên máy tính để bàn yêu cầu động cơ quay theo chiều thuận Địa chỉ của thanh ghi dữ liệu được xác định là 378H, với đầu ra tích cực ở mức cao.

;Chuong trinh viet dang EXE

.MODEL small ;khai báo quy mô sử dụng chương trình là nhỏ

.DATA ;khai bao doan du lieu du_lieu db " Dong co mét chiÒu quay thuan $"

.CODE ;khai bao doan ma

Chương trình chính bắt đầu với việc nạp địa chỉ dữ liệu vào thanh ghi bằng lệnh `mov ax,data` và sau đó thiết lập thanh ghi dữ liệu `ds` với giá trị của `ax` Tiếp theo, dữ liệu được nạp vào thanh ghi `dx` thông qua lệnh `lea dx,du_lieu` Để xuất dữ liệu ra màn hình, lệnh `mov ah,9` được sử dụng, yêu cầu ngắt 21h để hiển thị dữ liệu cho đến khi gặp ký tự kết thúc `$` Sau đó, chương trình gửi tín hiệu ra cổng `378h` với lệnh `mov dx,378h` và `mov al,00000001b` Cuối cùng, lệnh `mov ax, 4ch` được thực hiện để thoát khỏi hệ điều hành, kết thúc quá trình biên dịch chương trình.

Động cơ bước

2.1Cấu tạo động cơ bước

 Động cơ bước được phân thành ba loại chủ yếu sau :

2.1.1.Động cơ nam châm vĩnh cửu

Động cơ bước vĩnh cửu, hay còn gọi là động cơ bước kiểu tác dụng, thường được chế tạo với cực móng Động cơ này có góc bước thay đổi từ 6° đến 45° trong chế độ điều khiển bước đủ, với mômen hãm từ 0,5 đến 25 Ncm Tần số khởi động lớn nhất đạt 0,5 kHz, trong khi tần số làm việc lớn nhất ở chế độ không tải là 5 kHz.

1 và 2) Hai nửa Stator có dạng cực móng được từ hóa với cực N và S xen kẽ nhau;

3) Hai cuộn Stator (một cuộn điều khiển đơn cực và một cuộn điều khiển lưỡng cực) được đặt ở bên trong hai nửa stator;

4) Rotor nam châm vĩnh cửu có các cực từ xen kẽ

2.1.2 Động cơ bước có từ trở thay đổi

Động cơ phản kháng, hay còn gọi là động cơ bước, hoạt động trong góc từ 1,8° đến 30° với mômen hãm từ 1 đến 50 Ncm Tần số khởi động tối đa đạt 1 kHz và tần số làm việc tối đa trong điều kiện không tải là 20 kHz Stator được thiết kế theo dạng răng với bước cực βs, trong khi cuộn dây pha (2) được quấn trên 2 hoặc 4 răng đối xứng Rotor của động cơ cũng có cấu trúc dạng răng với bước cực βr.

Hình 3.4 Cấu tạo động cơ bước có từ trở thay đổi

1) Stator được chế tạo thành dạng răng; 2) Cuộn dây pha; 3) Rotor có từ trữ thay đổi được chế tạo thành dạng răng

2.1.3 Động cơ bước hổn hợp :

Động cơ bước cảm ứng, còn gọi là động cơ bước, có góc bước thay đổi từ 0,36 đến 15 độ trong chế độ bước đủ, với mô men hãm từ 3 đến 1000 Ncm và tần số khởi động tối đa lên đến 40 kHz Trong số các loại động cơ bước, động cơ bước hỗn hợp được ưa chuộng hơn cả, vì nó kết hợp ưu điểm của động cơ nam châm vĩnh cửu dạng cực móng và động cơ có từ trở thay đổi.

Động cơ bước thay đổi hỗn hợp kết hợp giữa động cơ bước nam châm vĩnh cữu và động cơ bước có từ trở thay đổi Stator của động cơ này được cấu tạo giống như Stator của động cơ bước có từ trở thay đổi, với các cuộn dây pha được đặt trên các cực của Stator Mỗi cuộn dây pha có thể được quấn thành 4 cuộn dây hoặc 2 cuộn dây xen kẽ, tạo thành các cực cần thiết cho hoạt động của động cơ.

N và S đồng thời đối diện với mỗi cực của bối dây là răng của Rotor và cũng được đặt xen kẽ giữa hai vành răng số 3 của Rotor

- Động cơ hổn hợp cũng được chế tạo với 2, 4 và 5 pha, động cơ 2 và 4 pha thường cho góc bước từ s = 0,9 0 - 15 0 , động cơ 5 pha thường có có góc bước từ s = 0,18 0 - 0,27 0

- Bước răng của Rotor được xác định bằng biểu thức sau:

Hình 3.5 Quá trình điều khiển bước đủ

1) Hai pha điều khiển lưỡng

3) Cuén d©y pha ®iÒu khiÓn lưỡng cực

4) Hai vành răng ngoài của Rotor Nam châm vĩnh cửu được

Trong đó: Zr là số răng của Rotor

Góc bước của động cơ là tỷ số giữa bước răng r và số pha m của động cơ khi cuộn dây được điều khiển lưỡng cực : m r s 

Hình 3.6 Động cơ nhiều tầng

- Động cơ hỗn hợp có tần số bước và độ phân giải cao, có mômen quay và mômen hãm lớn

Trong chế tạo động cơ bước, bên cạnh ba loại chính, còn có động cơ bước từ trở thay đổi nhiều tầng nhằm đạt được góc bước rất nhỏ Kết cấu của loại động cơ này được minh họa trong hình.

Động cơ bước từ trở thay đổi thường có cấu trúc 2, 3 hoặc 4 tầng Trong mỗi tầng, số răng của Stator và Rotor là giống nhau Vị trí răng của ba Stator được cố định trên trục Rotor nhưng lại được đặt lệch nhau 1/3 bước răng.

- Góc lệch giữa hai tầng kề nhau được xác định bằng biểu thức sau:

Nếu Rotor có Zr = 12 răng thì góc lệch nhau giữa hai tầng kề nhau là 10 0

Khi xung dòng điện điều khiển được áp vào tầng 1, răng của Rotor và Stator sẽ đối đỉnh nhau do từ thông khép kín tại vị trí có từ trở nhỏ nhất Tại tầng 2, răng của Rotor và Stator lệch nhau 10 độ, trong khi ở tầng 3, độ lệch là 20 độ Khi cắt xung dòng điện vào tầng 1 và kích hoạt các xung ở tầng 2, Rotor tầng 2 sẽ quay 10 độ để đỉnh răng của nó trùng với đỉnh răng của Stator Lúc này, răng của Rotor và Stator ở tầng 3 sẽ lệch nhau 10 độ so với tầng 2 Quá trình điều khiển sẽ tiếp tục cho đến khi trở lại tầng 1, tạo thành chu trình điều khiển 1-2-3-1.

2.2 Đặc điểm chung của động cơ bước Động cơ bước thực chất là động cơ đồng bộ hoạt động dưới tác dụng của các xung rời rạc và kế tiếp nhau Khi một xung dòng điện hoặc điện áp đặt vào cuộn dây phần ứng của động cơ bước, thì Rotor (phần cảm) của động cơ sẽ quay đi một góc nhất định và được gọi là bước của động cơ, khi các xung dòng điện đặt vào cuộn dây phần ứng liên tục thì Rotor sẽ quay liên tục

Vị trí của trục động cơ bước được xác định thông qua số lượng xung, với vận tốc của động cơ tỷ lệ thuận với tần số xung, được đo bằng số bước/giây Tính năng làm việc của động cơ bước được đặc trưng bởi bước thực hiện, đặc tính góc và tần số xung giới hạn, đảm bảo rằng các quá trình quá độ có thể dừng lại trước khi bắt đầu bước tiếp theo Tính năng mở máy của động cơ được xác định bởi tần số xung tối đa mà không làm mất đồng bộ Rotor Tùy thuộc vào cấu trúc của từng loại động cơ, tần số hoạt động có thể dao động từ 10 đến 10.000 Khz.

Bước của động cơ, tức là giá trị góc giữa hai vị trí ổn định kề nhau của Rotor, càng nhỏ thì độ chính xác trong điều khiển càng cao Giá trị này phụ thuộc vào số cuộn dây phần ứng, số cực của Stator, số răng của Rotor và phương pháp điều khiển bước đủ hoặc điều khiển nữa bước Tùy theo yêu cầu về độ chính xác và kết cấu của động cơ, bước của động cơ có thể thay đổi trong khoảng từ 0,18° đến 180° Cụ thể, động cơ bước nam châm vĩnh cửu dạng cực móng có từ trở thay đổi từ 6° đến 45°, động cơ bước có từ trở thay đổi có góc bước từ 1,8° đến 30°, và động cơ bước hỗn hợp có góc bước từ 0,36° đến 15° Các giá trị góc này được tính trong chế độ điều khiển bước đủ.

Chiều quay của động cơ bước không bị ảnh hưởng bởi chiều dòng điện trong các cuộn dây phần ứng, mà phụ thuộc vào thứ tự cấp xung điều khiển cho các cuộn dây này, nhiệm vụ này được thực hiện bởi bộ chuyển phát.

Động cơ bước được chế tạo với số cuộn dây phần ứng từ 2 đến 5 cuộn dây pha, được đặt đối diện nhau trong các rãnh ở Stator Khi sử dụng hai cuộn dây, động cơ chỉ có thể điều khiển lưỡng cực với cực tính thay đổi Trong khi đó, với bốn cuộn dây, động cơ có thể hoạt động ở cả hai chế độ điều khiển lưỡng cực và đơn cực.

2.3 Phương pháp điều khiển bước đủ và nửa bước

2.3.1 Phương pháp điều khiển bước đủ

Hình 3.7 minh họa quá trình điều khiển ba tầng của động cơ bước nam châm vĩnh cửu với các cực từ xen kẽ Nguyên lý hoạt động của động cơ bước dựa vào sự tương tác giữa từ trường của Stator và Rotor, tạo ra mômen điện từ để quay Rotor theo một góc nhất định Khi dòng điện được cung cấp cho cuộn dây pha AA', Rotor sẽ quay đến vị trí mà trục từ trường của nó trùng với trục từ trường của pha A.

Khi cắt xung dòng điện vào pha A và tác động xung dòng điện vào cuộn dây pha BB', vectơ từ hoá của dòng điện sẽ quay một góc 18 độ Kết quả là rotor cũng quay một góc 18 độ để trục từ trường của rotor trùng với trục từ trường tổng.

Sau khi cắt xung tác động vào pha B, ta tiếp tục cung cấp xung dòng điện cho pha A nhưng với dấu hiệu ngược lại Kết quả là Rotor sẽ quay thêm một góc 18 độ Tính từ điểm khởi đầu, Rotor đã quay tổng cộng 36 độ.

Hướng dẫn sử dụng phần mềm Pinnacle 52 viết chương trình cho vi điều khiển họ 8051

Hướng dẫn sử dụng phần mềm Pinnacle 52

1.1 Giới thiệu về phần mềm Pinnacle 52

Pinnacle 52 là phần mềm lập trình cho họ vi điều khiển 8051 bằng ngôn ngữ Assembly chạy trong môi trường Windows (tương thích window98, winme) Pinnacle 52 là môi trường phát triển tích hợp IDE (Intergrate Developmet Environment) gồm các tiện ích cho phép người lập trình tiến hành soạn thảo, dịch, liên kết và mô phỏng hoạt động chơng trình trên máy tính

Người dùng có thể tải phiên bản dùng thử của Pinnacle 52 tại http://www.vaultbbs.com/pinnacle Phiên bản này cho phép dịch và mô phỏng các chương trình với dung lượng tối đa là 2kb.

Để làm quen với các công cụ trong phần mềm, cách hiệu quả nhất là thực hiện một bài tập cụ thể Qua đó, bạn sẽ hiểu rõ chức năng và cách sử dụng của từng thành phần trong phần mềm.

Nói chung khi viết chương trình trên Pinnacle 52 có các bước cơ bản sau:

1 Khởi động Pinnacle 52, tạo một file rỗng

3 Dịch và liên kết chương trình, sửa lỗi cú pháp

4 Mô phỏng hoạt động trên máy tính, sửa lỗi giải thuật

Giao diện chính của phần mềm Pinnacle 52 bao gồm nhiều thành phần quan trọng như thanh tiêu đề, menu chính, thanh công cụ, thanh trạng thái mô phỏng, cửa sổ soạn thảo và thanh trạng thái, tạo nên môi trường phát triển tổ hợp hiệu quả.

Pinnacle 52 cung cấp các menu như File, Edit, View, Windows và Help, giúp người dùng mở và ghi file, cũng như điều chỉnh cách hiển thị cửa sổ và thanh công cụ Ngoài ra, menu chính còn bao gồm các mục như Project, Execute, Simulator và Option, cho phép người dùng tạo dự án, thực hiện mô phỏng chương trình và chọn chế độ mô phỏng vi điều khiển.

Thanh công cụ cung cấp các nút truy cập nhanh đến các lệnh thường dùng, bao gồm tạo file mới, mở file có sẵn, in ấn, khởi động lại chương trình trong chế độ mô phỏng, và các chức năng mô phỏng như bắt đầu (RUN – F5), dừng (STOP), mô phỏng từng lệnh (F8) và mô phỏng chương trình con (Shift + F8).

Thanh trạng thái mô phỏng cho biết vị trí con trỏ chương trình, mã thực hiện, chú thích, thời gian thực hiện, số chu kỳ đã thực hiện

Không gian làm việc là khu vực nơi người dùng có thể hiển thị cửa sổ soạn thảo, thanh ghi và cửa sổ mã trong quá trình viết và mô phỏng chương trình.

Thanh trạng thái ở dưới cùng hiển thị vị trí của con trỏ và loại vi điều khiển đang được chọn, đồng thời cung cấp các giải thích ngắn gọn hoặc gợi ý lệnh tùy thuộc vào vị trí hiện tại của con trỏ màn hình.

1.3 Các bước viết chương trình trên Pinnacle 52

Bước 1: Khởi động chương trình: Start > Program > Pinnacle > Pinnacle 52 hoặc nháy kép vào biểu tượng của chương trình Pinnacle 52 trên màn hình

Để tạo một cửa sổ soạn thảo cho mã chương trình, hãy mở menu File và nhấp vào “NEW” Nếu bạn đã có mã chương trình trong một file trước đó, chỉ cần nhấp vào “Open” để mở file đó.

Hình 4.3 Cửa sổ soạn thảo chương trình Bước 2: Nhập mã chương trình vào cửa số soạn thảo

Chương trình điều khiển các LED gắn với cổng P0 sẽ sáng dần từ phải qua trái Đầu tiên, chương trình được khởi tạo từ địa chỉ đầu tiên trong ROM với nhãn "start" Giá trị 8 được nhập vào thanh ghi r0, và cổng P0 được xóa Thanh ghi A cũng được xóa và sau đó gọi chương trình con để tạo độ trễ Trong vòng lặp, cờ C trong thanh ghi trạng thái được đặt lên mức cao, thanh ghi A được quay trái qua cờ C, và nội dung của thanh ghi A được chuyển ra cổng P0 Cuối cùng, chương trình con trễ được gọi để mắt có thể quan sát sự thay đổi.

;đổi trạng thái của các led djnz r0,loop ;giảm nội dung thanh ghi R0 một đơn vị và so sánh với 0, nếu

;R0=0 ;thì thực hiện lệnh tiếp theo, nếu R0 khác 0 thì nhảy

;đến địa chỉ “loop” để thực hiện jmp start ;lặp lại quá trình

;chương trình con trễ làm nhiệm vụ trễ một khoảng thời gian nhất định để mắt

Trong đoạn mã này, người dùng có thể phân biệt các trạng thái thay đổi của cổng p0 Đầu tiên, nội dung của thanh ghi R0 được lưu vào ngăn xếp bằng lệnh "push 0", sau đó nội dung của thanh ghi R1 cũng được lưu vào ngăn xếp với lệnh "push 1" Tiếp theo, giá trị 250 được nạp vào thanh ghi R0 và R1 Vòng lặp bắt đầu với nhãn "nhan1", nơi giá trị 250 được nạp vào thanh ghi R1 Cuối cùng, lệnh "djnz r1,$" giảm giá trị của R1 xuống một đơn vị và kiểm tra xem nó có khác 0 hay không.

;không thì tiếp tục trừ R1, nếu R1 =0 thì thực hiện lệnh

;tiÕp theo djnz r0,nhan1 pop 1 ;lấy lại nội dung thanh ghi R1 pop 0 ;lấy lại nội dung thanh ghi R0 ret end

Màn hình soạn thảo có dạng

Để lưu mã chương trình vào bộ nhớ, trong menu File, chọn "Save As" Tiếp theo, chọn ổ đĩa lưu trong ô "Drivers" và nháy kép vào thư mục cần lưu trong "Folders" Cuối cùng, trong mục "File name", nhập tên cho chương trình mà không cần thêm đuôi.

Khi lưu chương trình soạn thảo asm, hãy nhấn nút “OK” để hoàn tất Lưu ý rằng bạn nên lưu chương trình ngay sau bước đầu tiên và thường xuyên để tránh mất dữ liệu do sự cố về nguồn điện hoặc treo máy Tên file cần ngắn gọn, không quá 8 ký tự, và không được chứa dấu cách hay ký tự đặc biệt.

Bước 4: Mở menu “Project” và click vào “Compile & Link FILENAME”, trong đó “FILENAME” là tên chương trình vừa tạo ra (chương trình sẽ tự động chèn tên filename vào)

Cũng có thể dùng phím nóng Ctrl+F2 để thực hiện bước này Sau đó, chương trình sẽ tiến hành dịch, thông báo các lỗi trong chương trình nếu có

Nếu quá trình "Compile & Link" hiển thị thông báo lỗi, hãy đóng cửa sổ thông báo và quay lại cửa sổ soạn thảo để sửa các lỗi đã được chỉ ra Cửa sổ thông báo lỗi cung cấp thông tin về vị trí của lỗi ở dòng nào và gợi ý nguyên nhân gây ra lỗi đó.

Hình 4.6 Thông báo kết quả quá trình hợp dịch và liên kết

Sau khi đã sửa, làm lại thao tác của bước 4, quá trình lặp lại cho đến khi có thông báo: Build complete 0 error(s), 0 warning(s)

Khi nhận được thông báo này, chương trình đã hoàn tất kiểm tra cú pháp và có khả năng mô phỏng hoạt động Nó tự động tạo ra các tệp cần thiết như lst, map, hex và obj, trong đó tệp hex chứa mã máy sẽ được nạp vào bộ nhớ chương trình.

Viết chương trình cho vi điều khiển

2.1 Giới thiệu Vi điều khiển 8051

Hiện nay, nhiều hãng sản xuất vi điều khiển nổi tiếng như Atmel, Philips và Intel Trong số đó, các họ vi điều khiển phổ biến bao gồm 8051, AVR và PIC Bài viết này sẽ tập trung vào vi điều khiển họ 8051 và lý do vì sao nó được ưa chuộng.

Họ vi điều khiển này đã tồn tại từ năm 1981 và vẫn được sử dụng rộng rãi cho đến nay, với nhiều biến thể phù hợp cho các ứng dụng khác nhau.

+ Vi điều khiển họ 8051 có số các công cụ phát triển lớn, dễ dàng tìm kiếm tài liệu hướng dẫn

+ Học được vi điều khiển 8051 rất thuận lợi để học tiếp các vi điều khiển khác

- Lịch sử ra đời của vi điều khiển họ 8051:

Vào năm 1981, hãng Intel giới thiệu một số bộ vi điều khiển được gọi là

Bộ vi điều khiển 8051 là một hệ thống trên chíp với 128 byte RAM và 4K byte ROM, bao gồm hai bộ định thời, một cổng nối tiếp và bốn cổng I/O rộng 8 bit Là một bộ xử lý 8 bit, 8051 chỉ xử lý dữ liệu 8 bit tại một thời điểm, và dữ liệu lớn hơn sẽ được chia thành các phần 8 bit để xử lý Mặc dù có khả năng hỗ trợ tối đa 64K byte ROM trên chíp, nhưng các phiên bản xuất xưởng chỉ có 4K byte ROM.

Vi điều khiển 8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản xuất khác sản xuất và bán các phiên bản của 8051, miễn là chúng tương thích với mã gốc Điều này đã dẫn đến sự ra đời của nhiều phiên bản 8051 với tốc độ và dung lượng ROM khác nhau, được cung cấp bởi hơn nửa số nhà sản xuất Mặc dù có nhiều biến thể về tốc độ và dung lượng nhớ, tất cả đều tương thích với lệnh của 8051 ban đầu Do đó, chương trình viết cho một phiên bản nào đó có thể chạy trên các phiên bản khác với một số thay đổi nhỏ, bất kể nhà sản xuất.

- Sơ đồ cấu trúc tổng quát của họ vi điều khiển 8051:

Hình 4.11 Sơ đồ cấu trúc vi điều khiển 8051

CPU, hay còn gọi là đơn vị xử lý trung tâm, là bộ não của vi điều khiển Trong trường hợp của vi điều khiển 8051, CPU là bộ vi xử lý 8 bit với tốc độ xử lý đạt vài MHz.

Khối điều khiển ngắt (INTERRUPT Control) nhận tín hiệu ngắt từ bên ngoài, như ngắt ngoài 0 và ngắt ngoài 1, cũng như từ bên trong, chẳng hạn như ngắt timer, và sau đó truyền tín hiệu này đến CPU để thực hiện các tác động cần thiết.

ROM, hay còn gọi là bộ nhớ chỉ đọc của vi điều khiển (VĐK), là bộ nhớ chương trình có chức năng lưu trữ các chương trình được lập trình viên nạp vào VĐK.

+ RAM: bộ nhớ truy cập ngẫu nhiên của VĐK Bộ nhớ này bao gồm các thanh ghi, ngăn xếp, RAM bit, RAM nháp Dung lượng RAM là 128 byte

Các thanh ghi có chức năng đặc biệt (SFR) trong vi điều khiển (VĐK) đóng vai trò quan trọng trong việc điều khiển hoạt động của CPU và các thiết bị ngoại vi Trong số đó, bộ định thời 16 bit là một thành phần quan trọng, với nhiều ứng dụng, bao gồm chức năng đếm và định thời.

Khối OSC (Oscillator) tạo ra xung nhịp cho CPU của vi điều khiển (VĐK) bằng cách áp điện vào tinh thể thạch anh, tạo ra dao động Tần số dao động này sau đó được chia cho 12 để cung cấp xung nhịp cho CPU và các chức năng khác của VĐK.

+ BUS Control: khối điều khiển BUS, khối này có nhiệm vụ giúp cho VĐK trao đổi dữ liệu với bộ nhớ ngoài hoặc các thiết bị ngoại vi

+ I/O Port: Đây là các cổng vào ra song song của VĐK VĐK 8051 gồm có 4 cổng 8 bit: P0, P1, P2, P3 Các cổng này cho phép trao đổi dữ liệu song song 8 bit

Cổng Serial Port, hay còn gọi là cổng truyền thông dị bộ USART, cho phép vi điều khiển (VĐK) trao đổi dữ liệu nối tiếp không đồng bộ với máy tính hoặc các thiết bị ngoại vi Các thông số cơ bản của cổng này rất quan trọng để đảm bảo quá trình truyền nhận dữ liệu diễn ra hiệu quả.

+ Số bit dữ liệu: 8 bit

+ Số cổng vào ra song song: 4 cổng 8 bit (từ Port0 đến Port3)

+ Số cổng nối tiếp: 1 cổng USART

+ Dung lượng bộ nhớ ROM, RAM

+ Số nguồn ngắt: 6 nguồn ngắt bao gồm 2 ngắt ngoài, 2 ngắt timer/counter và 2 nguồn ngắt của cổng nối tiếp (ngắt truyền và ngắt nhận)

+ Sè bé timer: 2 bé timer 16 bit

+ Kiểu đóng gói: phổ biến là DIP40 ( kiểu hai hàng chân và có 40 chân )

+ Nguồn cấp: 3VDC đến 5VDC, max 5,5VDC

Chú ý: Với các thành viên khác thì các thông số như: ROM, RAM, Ngắt,Timer có thể khác đi

2.1.3 Tổ chức bộ nhớ của 8051

Bộ nhớ của vi điều khiển 8051 bao gồm bộ nhớ chương trình ROM và bộ nhớ dữ liệu, trong đó bộ nhớ chương trình có thể được sản xuất bằng các công nghệ như EEPROM và Flash Ngoài ra, 8051 còn có bộ nhớ RAM nhỏ gọn.

Bộ nhớ RAM (Random Access Memory) hay còn gọi là bộ nhớ dữ liệu, bao gồm các thanh ghi và ngăn xếp, với các phần như RAM định địa chỉ bit và RAM nháp.

- Dung lượng bộ nhớ RAM của vi điều khiển phụ thuộc vào từng thành viên, nhưng 128 byte đầu tiên là giống nhau

- Xét 128 byte tổ chức bộ nhớ RAM:

Địa chỉ từ 00H đến 1FH bao gồm 32 byte, được phân bổ cho 4 băng thanh ghi từ R0 đến R7 Các byte này có thể được truy cập trực tiếp hoặc thông qua tên của các thanh ghi.

Cả 4 băng thanh ghi đều được đánh tên các thanh ghi từ R0 đến R7 Mặc định khi chạy chương trình thì VĐK sẽ truy cập băng 0 Muốn chuyển băng thanh ghi ta tác động tới hai bit RS0, RS1 trong thanh ghi trạng thái chương trình PSW theo bảng trạng thái sau:

RS1 RS0 Băng thanh ghi được chọn

Từ 08H là địa chỉ mặc định bắt đầu của vùng ngăn xếp, với nguyên tắc hoạt động là vào trước ra sau FILO (First In Last Out)

Địa chỉ từ 20H đến 2FH bao gồm 16 byte, tương ứng với vùng RAM định địa chỉ bit của VĐK, với 16x88 bit RAM Các bit này được đánh địa chỉ từ 00 đến 127 (00H - 7FH), cho phép truy cập theo địa chỉ bit hoặc theo vị trí của bit trong byte.

+ Địa chỉ từ 30H đến 7FH: Vùng RAM còn lại này được dùng cho mục đích lưu trữ tạm thời hay còn gọi là RAM nháp

Lập trình 8051 ghép nối với các bộ chỉ thị

Lập trình 8051 ghép nối với các bộ chuyển đổi

Lập trình 8051 điều khiển động cơ điện

Giao tiếp qua cổng nối tiếp (COM)

Ngày đăng: 15/05/2021, 09:32

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Nguyễn Tăng Cường, Phan Quốc Thắng (2004), “Cấu trúc và lập trình họ vi diều khiển 8051”, NXB Khoa học và Kỹ thuật Sách, tạp chí
Tiêu đề: Cấu trúc và lập trình họ vi diều khiển 8051
Tác giả: Nguyễn Tăng Cường, Phan Quốc Thắng
Nhà XB: NXB Khoa học và Kỹ thuật
Năm: 2004
2. Nguyễn Tăng Cường, (2003), “Máy tính cấu trúc và lập trình”, (tập 1+2), NXB Khoa học và Kỹ thuật Sách, tạp chí
Tiêu đề: Máy tính cấu trúc và lập trình
Tác giả: Nguyễn Tăng Cường
Nhà XB: NXB Khoa học và Kỹ thuật
Năm: 2003
3. Đỗ Xuân Tiến, (2003), “Kỹ thuật vi xử lý và lập trình ASSEMBLY cho hệ vi xử lý”, NXB Khoa học và Kỹ thuật.TiÕng anh Sách, tạp chí
Tiêu đề: Kỹ thuật vi xử lý và lập trình ASSEMBLY cho hệ vi xử lý
Tác giả: Đỗ Xuân Tiến
Nhà XB: NXB Khoa học và Kỹ thuật
Năm: 2003
4. Barry B Bray (1995), “The Intel Microprocessor 32 bit”, Prentice Hall . 5. Daniel tabak (1995), “Advanced Microprocessor”. McGrow Hill Sách, tạp chí
Tiêu đề: The Intel Microprocessor 32 bit”, Prentice Hall . 5. Daniel tabak (1995), “Advanced Microprocessor
Tác giả: Barry B Bray (1995), “The Intel Microprocessor 32 bit”, Prentice Hall . 5. Daniel tabak
Năm: 1995
6. Ayala, K. J.(1991), “The 8051 Microcontroller: Architecture, Programming, and Applications”,West Publishing Company, 1991 Sách, tạp chí
Tiêu đề: The 8051 Microcontroller: Architecture, Programming, and Applications
Tác giả: K. J. Ayala
Nhà XB: West Publishing Company
Năm: 1991

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w