“Cucciieg Ded Higa mec Phqet KE ÿ "?/,xật 4
ĐỀ CƯƠNG THỰC TẬP ĐIỆN Tử NÂNG CAO MÃ mơn bọc: 340380 — Số tín chỉ 6 — _Số tiết thực hành: 27
^
Chia lầm 2 phần: Vì mạch số + vi mạch tương tự + vì xử H hoặc vi điều kiiển (135 tiếu
Kỹ thuật truyền thanh + truyễn bình (135 tiếp Mastek eae sk aa aka ae aie ae
PHÂN VI MACH: SỐ + TƯƠNG TỰ PHẦN Vĩ XỬ LÍ HOẶC VI ĐIÊU KHIỂN
Phan A: Vi Mach 86 (Digital): 35 tiết Bab dt: ernest aS, — Ta wet ae beet vat a7 ae ee ee b Mai 5: ww ao mc oN ]— aft pe yee % ~è oo Sử đụng bộ thí nghiệm vi mach Mục đích: hướng dẫn học Viên biết cách sử dụng bộ thí nghiệm, sử dụng tcstbhoard, sử dụng dao động ki để làm các bài thí nghiệm IDụng cụ thực bành: Bộ thí nghiệm ví mạch, các bo mạch thí nghiệm, dao động kí Thời gim: Mach dém Johnson
Mục đích: kho sát mach đếm Johnson, ting dung mach dém để chia tẤn số tín hiệu, tạo tin hiệu lệch pha, điển khiển đèn giao thơng
Dung cu thye tap: bd thi nghiém vi mach, các bo thí nghiệm ví mạch 4017, dao ding ki "Phời giun:
Thanh ghi
Mục đích: khảo sát các thanh ghi, thanh ghi dịch trái dịch phải, ứng dụng thanh chí,
Đừng cụ thực tập: bộ thú nghiệm ví mạch, các bo thí nghiệm vị mạch 74164 - 741194, dao động kí,
res
Phat sian:
te ae Bsb fh +
Rạch đếna, giải mã và biển thị,
Mục dích: khảo sát các mạch đếm nhị phân, đếta BCD, mạch củi
led 7 đoạn, Các mạch đếm 10, 160, 1000, mach đếm giây, đếm phúi, đếm gIỜ TĐụịng cụ thực tập: bộ thí nghiệm vì mạch, cdc bo thi nghiém vi mach 7490 ~ 740
4511 led 7 đoạn, dao động kí
"Thời gian:
Mạch đếm lê n - xuống và đặt trước số đếm
Mục đích: khảo sất các mạch đếm đặt trước số đếm, đếm lên đếm xuống
Đụng cụ thực tập: bộ thí nghiệm vi mạch, các bo thí nghiệm vị mạch 74190 ~ 74190 74193, dae
động kí,
Thời gian:
Khao sdt mach giai ma mach da hop
Mục đích: khảo sát vì mạch giải mã, mạch đa hợp kênh va ting dung
Dụng cụ thực tập: bộ thí nghiệm vị mạch, các bo thi nghiGm vi mach 74138 - 74051, dao dang ki Thời gian:
Khảo sát bộ đếm
Mục đích: khảo sát các bộ đếm 10 bit, 12 bit vA tng dụng trong việc chia tần số,
Dụng cụ thực tập: bộ thí nghiệm vi mach, các bo thi nghiém vi mach 4020 - 4040, dao déug kf
i tin số, mạch giải mã 7 doạn 8 ‘ Mat, šộ nhớ ram, eprom
Mục đích: khảo sát bộ nhá, cách đọc đữ liệu chứa trong bộ nhớ EPROM, Cách ghi va doc đữ liện
đối với bộ nhớ RAM
Dụng cụ thực tập: bệ thí nghiệm vi mach, các bo thí nghiệm vi mạch 2764 - 6264, dao đồng kí,
Thời giam:
+ xe a on a 4
Trang 2m5
TPrecdug Pac Hac Su Pham KY Wade
Phan B: Vi Mạch Tương Tự (Analog): 35 tiết _
Bài 9: Mạch khuếch đại đảo - Mạch khuếch đại khơng đảo
a Mục đích: khảo sát các mạch khuếch đại,
b Dụng cụ thực tập: bộ thí nghiệm | vi mạch, các bo thí nghiệm ví mạch 741 C “Thời gian:
Bài 10: Mạch khuếch đại cộng - Mạch khuếch đại ví NHỈ
a Mục đích: khảo sát các mạch khuếch đại cộng nhiều tín hiệu, mạch khuếch đại ví sai b IĐụng cụ thực tập: bộ thí nghiệm vi mạch, các bo thí nghiệm vi mạch 741
c Thời gian:
Bài II: Mạch tích phân — Mạch vi phan
, a Mục dích: khảo sát các mạch vi phân - tích phân dùng opamp để biến đổi dạng xung
b Dung cụ thực tập: bộ thí nghiệm \ vi mạch, các bo thí nghiệm vỉ mạch 74 c Thời gian:
Bài 12: Bộ so sánh — Mạch đơn Ổn
a, Mục đích: khảo sát các mạch so sánh điện áp ding opamp — mach tao xung dd Gn dding opamp b Dung cụ thực tận: bộ thí nghiệm vị mạch, các bo thí nghỉ ém vi mach 741
c Thời gian,
Bài 13: Trigper schmit— Mạch tạo xung vuơng
a - Mục dích: khảo sát các mạch biến đổi tín hiệu thành tín hiệu xung vuơng, mạch đao động dùng opamp,
b Dụng cụ thực tập: bộ thí nghiệm vi mạch, các bo thí nghiệm vị mạch 741 ce Phời gian:
Bài 14: B6 biến đổi logarH - Bộ biến đổi hầm mũ
a Muycdich: st’ dung opamp để thực hiện các phép biến dổi hầm mũ b Dung cu thực tập: bộ thí nghiệm vi mạch, các bo thí nghiệm ví mạch 741 c Thời pin:
Bai tS: Maty phat xung tổng hợp
a Muc dich: si’ dung opamp dé tao ra các xung vudng — xung tam giác, b Dụng cụ thực tập: bộ thí nghệm vi mach, các bo thí nghiệm vỉ mạch 741 .„ © Phời gian:
Bai 16: Mach dao động - Mạch đơn ổn ding IC 555,
a Mục đích: khảo sát vi mạch 555 và ứng dụng đỂ tạo xung vuơng — xung đơn én b Dụng cụ thực tập: bộ thí nghiệm vỉ mạch, các bo thí nghiệm ví mạch 555 cC Thời gian:
Trang 3“Tnutug Dat Wee Sa Pham KRG Phedt 3
Phân C: Vi xử lí hoặc vi điều khiển: 65 tiết
Phân 1: ng dụng các lệnh đơa giản đỂ điều liiỂn các port làm quen với cách thức lập trìn h Bài 1-1: Giới thiệu về bộ thí nghiệm Vi điều khiển~ cách thức biên soạn chương trình
Bài 1-2: Chương trình điểu khiển port 1 sáng tất, -
1-3: Chương trình đếm nhị phân § bít hiển thị ở portl 1-4: Chương trình điểu khiển port1 sáng dẫn và tắt hết
1 -Š5: Chương trình điểu khiển port1 sáng dẫn và tất dần ˆ
Sài 1-6: Chương trình điểu khiển porti va port 4 (kết hợp 16 bit) sáng dân và tắt dan Bài 1-7: Chương trình điểu khiển port 1 sáng dồn ` -
Bài 1 -8: Chương trình điều khiển port 1 và port 4 (kết: hgp 16 bit) sáng d dồn Bài 1 -9: Chương trình tổng hợp các chương trình đã viết -
Phẩn 11: dug dụng các bộ thmer làm bộ dịnh thời và cách thức tính tốn các thơng số thài gian
Hài 2-1: Chương trình sáng tất port 1 sử dụng timer làm bộ định thời 65535 micro giây
Bài 2-2: Chương trình sáng tắt port Í sử dụng timer làm bộ định thời delay 250 micro siÂy
Bai 2-3: Chương trình sáng tất port L' sử dụng tìmer làm bộ định thời delay 5 giây
Bài 2-4: Chương trình sáng tất port 1' sử dụng chương trình con delay 1 giây nhưng khơng sử dung finicr cĩ trình bầy cách viết và tính tốn chính xác và cách thử
Phần HH: tíng dụng điều khiển dộng eđ
Bài 3 ~1: Khảo sát bộ thí nghiệm điều khiến động cơ bước — Điều khiển động cơ bước bằng tay
—_ Điều khiển động cơ bước bằng xung CLK
—_ Đăng vi diều khiến viết chương trình tạo xung clk để điều khiển động cơ bước —_ Điều khiến trực tiếp động cơ bước,
—_ Khảo sát cẩm biến quang tạo xung đếm khi động cơ quay, Bài 3 -2: Chương trình điểu khiển động cơ bước cĩ Start / Stop
Bài 3 -3: Chương trình điều khiển động cơ bước cĩ Start / Stop va c6 đảo chiều,
Bài 3-4: Chương trình điểu khiển động cơ bước cĩ Start / Stop và cĩ đảo chiêu đồng thời đếm xune từ cẩm
biến hiển thị kết quả đếnn trên các led đơn
Phần IV: ng dụng diều khiển led 7 đoạn và ma trận quơi phơm
Bài 4-1: Khảo sát bộ thí nghiệm giao tiếp với bed 7 đoạn: ` ¬ ~ Phan tích so dé mach giao tiếp với led 7 đoạn theo phương pháp quét
—_ Thiết lập các mã điêu khiển led hiển thị các số —_ Nguyên lý điều khiển các led sáng
—_ Chương trình điểu khiển một led sáng led
—_ Phân tích sơ đồ mạch của ma trận quét bàn phím,
—_ Nguyên lý tạo mã quét và trình tự kiểm tra mã, lưu đơ điều khiển
Bai 4-2: Chương trình điều khiển 8 led sáng
Bài 4-3: Chương trình điểu khiến 8 led sáng cải tiến Bài 4-4: Chương trình đếm giây
Bài 4-5: Chương trình quét phím và tạo mã cho phím — hiển thị mã phím trên các led 7 đoạn
Bai 4-6: Chương trình điểu khiển động cơ bước cĩ Start/ Stop và cĩ đảo chiều đồng thời đếm xung từ cần:
biến hiển thị kết quả đếm trên các led 7 đoạn giống như bài 3-4
Phần V: tìng dụng các ngất cúng
Trang 4“hườaa Dat Hoe Su Pham KG Thede 4
Bài 5-3: Chương trình đếm giờ ~ phút ~ giây sử dụng timer, sử dụng ngắt để đếm chính xác về thời gian Bài 5-4: Chương trình đếm giờ — phút — giây sử dụng timer, sử dụng ngất để đếm chính xác về thời gian Sử dụng các ngắt cứng để điều chỉnh giờ phút
xe 5 ` , + a a e ~ *
BaiS-5: Chương trình điều khiển động cơ bước cĩ hiển thị số bước đã thực hiện Bài 5-6: Chương trình vừa điều khiển động cơ vừa đếm giây chính xác
Phần VI: ứng dụng truyền dữ liệu: giao tiếp giữa 2 vỉ diu khiển, giữa vi điều khiển với máy tính
Bài 6 -Í: Chương trình truyền một bytc dữ liệu từ bộ thí nghiệm A đến bộ thí nghiệm B Bải 6-2: — Chương trình truyền một chuối bytc dữ liệu từ bộ thí nghiệm A đến bộ thí nghiệm B Bài 6-3: Chương trình truyền đỡ liệu giao tiếp với máy tính
Bài 6-4: — Chương trình điểu khiển quang báo
a
Baig-5: Chudng trinh diéu khién doc Eprom
BaiG-6: Chương trình điều khiển nạp Eprom bài 6-7: — Chương trình điểu khiển kiểm tra Bprom
Hài 6-8: Chương trình tổng hợp các chương trình của bài 6-5, 6-6, 6-7
Bài 6-0: Chương trình diéu khiển đọc Eprom nội của vi điều khiển Bai 6-10: Chương trình điều khiển nạp Eprom nội của vi điều khiển
Bài 6-11: Chương trình diễu khiển kiểm tra Eprom nội của vi điều khiển Bài 6-12: Chương trình tổng hợp các chương trình của bài 6-9, 6-10, 6-11
Bài 6-12: 'Phiết kế hệ thống điểu khiển đùng vỉ điều khiển
Bài 6-13: Viết chương trình hệ thống
Bài 6-14: Viết chương trình hệ thống điều khiển chuơng báo giờ học cho trường ĐHSPKT
Phdn VU: tug dung ADC vd DAC
Bai7-l: Khao sdét mach DAC, nguyén lý chuyển đổi, các thơng số liên quan
Viết chương trình chuyển đổi số sang tương tự và cách đo kết quả xuất hiện Ở ra Hài 7-2: — Khảo sátmạch ADC, nguyên lý chuyển đổi, các thơng số liên quan
Viết chương trình chuyển đổi tưởng tự sang số và hiển thị kết quả chuyển đổi trên các led 7 đoạn,
Phân VIII: tứng dụng vì diều khiển kết hợp với mạch diều khiển xa
lãi 8-1: — Khảo sát các vi mạch thu - phát diều khiển bằng tỉa hồng ngoại
lài 8-2: Kếnối các mạch điện giao tiếp giữa khối thu với vi điều khiển và viết các chương trình điều
khiển :
bài 8-3: — "Thiết kế một hệ thống phân cứng gdm vi diéu khién — IC thu phat va viết chương trình điều
khiển từ xa các thiết bị đĩng ngắt :
Một số mạch phân cứng kèm theo và một số tng dung s sinh vién làm guen với phần củng để cĩ thể
tự thiết kế mực diều khiểm :
Người soạn đỂ cương:
Trang 5Vraebug Dai Wee Se Pham Ki Vhudt 3
Kết quả ta được thêm một file 1A baimothex — file nay chứa các mã lệnh dạng sư hẹx
Đến dây bạn đã hồn tất việc soạn thảo — chương trình h này vẫn cịn ni
Vv Giới thiệu về phần mềm Term: 7
Chương trình “FERM.EXE” cĩ chức năng truyền các mã lệnh cĩ trong file baimot.hex sang Microcontroller board Để thực hiện bạn bay đánh:
CAphu\Werm
Rén ấn enter,
HỞ máy tính
Trên mần hình sẽ hiển thị các câu lệnh như sau: ‘Term V3.60 installed atcom2 9600 baud (C) Phytec Messtechnik 1993
1 - Exit Term
F2 - Input from file 3 - - Quipuf tư filo
14 ‘ Quit command file
Bạn hãy ấn phim “reset” trên Microcontroller Board (phím mầu đỏ) để bất dầu thực biện việc kết nối giữa máy tính và board vi điều khiển
Để truyền file bạn hãy ấn phím F2 khi đĩ một câu thơng báo sẽ xuất hiện: yêu cầu bạn nhận
tên file cần truyền Sau khi nhập đúng tên file với phần mở rộng hex rồi nhấn enterskhi do file sc, được truyễền ĐỂ chạy chương trình bạn hãy đánh chữ "G địa chỉ bất đầu của chương, trình ví đụ với chương trình trên bạn hãy đánh (4000 }ự ihfin enter i we ne 1a Kec Vi Các bài thực hành Kea bh 1 Bai 2 Chương trình sáng tất port 1 id Lưu ¿ 1Ơ: Tat port 1 | Ỷ Delay Ỷ Tất port 1 qua, ¥ Delay Chương trình: a ”~ org 4000h ks ef ena đt đứa
xt: moy p},#00h snap OO vào por(1 để tắt 8 led - ° ` ị lcaH de delay” ;gøo1 chương trình con dolay rap VU aA os mov Ni ; nạp PE vào portl để sáng 8 led at `
lcạl delay xắn s201 chucng trinh con delay NO sữnp KĨ ›snhây lại lầm lại từ dầu
„ Ab Z
Trang 6Tratug Dat Hace Sa Pham KE "7đ‹ật 4
delay: mov R6#0ffh snap hing sd delay PPH vio thanh ghi R6
del2: — movr7/#Offh ;nạp hằng số delay FEFH vào thanh ghi R6
deli; dịnz r7,del ;giảm thanh phí R7 đi † và nhảy về đel1 khi R7 khác 00 dịnz :6,del2 ;giẩm thanh ghi R7 dil va nhay vé dell khi R7 khác O0 ret ;thốt khỏi chương trình con
cid
Bai tip:
|lãy viết chương trình sáng tất port4
[lãy viết chương trình sáng tẤt cả 4nen 4 và 4,
Hãy viết chương trình sáng port † tắt port 4 rỗi sau đĩ sáng port 4 tắt portl l9 | yk “q uw 29h 4 » +) a ` €csS h ora ACOA Kế meyy Ply C4 h ““ move b, ) of Sol Lea © dela Sjm Pe Ry
' delay © Mey re, af opeh
Trang 7Tratug Dat Hoe Su Pham kG Vhadt |
Bài 1,
GIỚI THIỆU HỆ THONG VA CHUONG TRINH I Cau hinh Microcontroller Board:
Microcontroller Board 1a một bo mạch gồm: e Vidiéu khién 80C535
Bộ nhé EPROM, EEPROM, RAM
Chuyển đổi Analog/ Digital và Digital/Analog
Hai port 1O được kết nối ra 16 led hiển thị Một port điều khiển hiển thị trên 8 led IL Phần mềm soạn thảo:
Để viết một chương trình cho,vi điểu khiển ta cĩ thể dùng các chương trình soạn thảo chạy trên mơi trường DOS như cdit của NC, pascal
Đễ sử dụng nhất là bạn vào màn hình NC: Nếu đang ở màn hình windows thì hãy nhấn vào biểu tượng NC, Khi đĩ màn bình NC sẽ xuất hiện Nếu muốn trở về lại Windows hãy ấn phím F10
TY man hinh NC bạn hãy trở ra thư mục C\ rồi vào thư thục tên PHU - đã cĩ sẵn trên máy cĩ chứa đầy đủ các chương trình biên dịch Bạn hãy ấn tổ hợp phím “Shift + F4”- một màn hình yêu cầu bạn đặt tên cho file
Đặt tên cho file tùy ý với phần mở rộng là ;asm — ví dụ là: _baimot asm
Sau đĩ ấn enter để vào màn hình soạn thảo :
Bạn hãy viết chương trình của mình rồi ấn “E2” để lưu ee trình Để thốt khỏi raằn hình soạn thảo bằng cánh ấn phím “ esc”
Muốn trở lại chương trình soạn thảo để hiệu, chỉnh hoặc xem: lại thì tại mần hình NC bạn dời - thanh sáng lựa chọn đến đúng tên của chương trình rỗi ấn phím “E4”,
iil Cách soạn thảo Í chương trình điều khiển cho 80C 535: Hãy xem chương trình mẫu “bạimot.asm” % ¢ ¢ @ ;chuong trinh tat port 1 1:
2: Xt org 4000h _ ;khai bao dia chỉ bat dau -
3: mov p1,#00h ;uap 00 vao port 1 nen cac led cua port tai
4: sjmp $ ;lenh ket thuc
5: end S CimD2y
Chú ý các con số “1:” đến “5;:” khơng cĩ trong chương trình, chỉ thêm vào để mỉnh họa cho
việc giả! thích
Hang số 1: trình bầy nội dung của chương trình - phần này cĩ trình bày hoặc khơng cũng dược, nhưng nếu cĩ trình bầy thì phải thêm dấu “;” ở đầu hãng,
Hàng số 2: bắt đầu bằng chữ org”: là khai báo địa chỉ bắt đầu của chương trình, co sỐ “400017” chính là địa chỉ của chương trình Khi muốn viết chương trình tại địa chỉ 5000H thì thay cho 4000H
Hàng số số 3 và hàng thứ 4 bắt đầu là các lệnh của chương trình Các bạn muốn viết chương trình
thì phải học phần tập lệnh
Hàng số 5: là lệnh ° 'end” báo cho chương trình biên dịch biết rằng chương trình soạn thảo đến đây là hết Chú ý:đấu nhầy của con trổ phải nằm ngay sau chữ nhự “end_” (cĩ nghĩa là hàng bên dưới chữ end chưa dùng đến) - nến khơng khi biên dich sẽ bị lỗi
IV — Giới thiệu về phần mềm biên dịch
Sau khi đã soạn xong chương trình và lưu trên đĩa thốt về thư mục PHU Đùng chương irình biên dịch ASM51.EXE để dịch chương trình baimot.asm Cách thực hiện như sau:
CNPHU\asm51 baimot.asm - Rồi đánh enter
Chương trình biên dịch sẽ kiểm tra lỗi cú pháp và biên dịch ra 2 file cùng tên nhưng phân mở
rộng là baimot,lst và baimot Obj Cĩ thơng báo lỗi của chương trình: nếu khơng cĩ lỗi thì câu thơng
Trang 8“Pratiug Dat Hoe Se: Pham KG Wucde 2
bao sé la: “ASSEMBLY COMPLETE, NO ERRORS FOUND”, con n@u cé 13: th) sễ hiển thị bao nhiêu lỗi, muốn xem bạn hãy tạm thời thốt khảo mân hình NC bằng cách ấn tổ hợp phím “Ctrl +0”
Sau khi xem xong bạn cũng ấn lại tổ hợp này dể trở về mần hình trước đĩ Hoặc cĩ thể mở file
baimot.lst để xem lỗi ,
Nếu chương trình cĩ lỗi thì bạn phải xem và hiệu chỉnh lại chương trình sao cho hết lỗi
Các lỗi thường xây ra là do cú pháp lệnh đánh khơng đúng, các con số đánh nhầm chữ ví dụ số
Z0” dánh chữ "O”, Các con số hex nếu bắt đầu từ số “Ar đến “F” ví dự A7H thì phải thêm số khơng
trước con số này: 0A7H, nếu là con số 7AIT thì khơng cần thêm số khơng Các lệnh nhảy khơng dúng nhãn, nhiều nhãn cùng tên hoặc thiếu tên, chương trình con cĩ khai báo nhưng chưa viết hoặc vượt quá tầm nhay cho phép quy định của lệnh,
ĐỂ xem lỗi xảy ra ở dâu trong chương trình bạn mở file “baimotlst “ bằng cách chon file rồi ấn
phím I4 để xem để hiết vị trí lỗi nằm ở lệnh nào — cĩ thể phi ra giấy rỗiu thốt khỏi chương trình nầy IĐỂ sửa lỗi bạn phải quay lại chương trình baimot.asm và hiệu chỉnh nĩ Rồi biên dich lại cho đến khi hết lỗi, Hay xem chương trình baimot, lst \SSEMBLI IKE l3 BY:
lây giờ chương trình đã hết lỗi bạn hãy dùng chương trình biên dịch OH.EXE để biện dịch file baimot.obj Cách thực hiện như sau:
CAPHUNoh baimot.obj Rồi danh enter,
Trang 9Taina Dat Wee Su Pham Ky Make te 5
Bai 3
Chương tr inh, đếm nhị phân 8 bit hiển thị ở port Í
Chương trình: | | : Lưu đồ: | 2 ni Oly
org 4000h _ mov pl,#00h xi; - kall deláy
incpl '.- _ ;tăng nội dung của PI lên 1 sjmp xi: delay: mov R6,#0ffh del2: mov r7,#0fth dell: djnz r7,del1 , địnz r6,del2 ret end Bai tap:
Hay viét chương trình đếm nhị phân biển thị ở bort 4
Trang 10“Tradug Dai Hoe Sue Phan KE Wheat 6
_ BÀi4
Chương trình port 1 sắng đần và tất hết schuong trinh port | sang dan len va tat het
org 4000h
K3 mov a#00h snap OO vao thanh ghi A xh: mov pla ;gởi nội dụng thanh ghi A sang port |
leall delay: ;goi chương trình con
sebc the Ce I ;iệnh fam cho bit C =
, rlea lénh Koay nội dung thanh ghỉ A sang trái
( khả c > đầy) ~~ jne xi ;nhầy về nhân xI để thực hiện tiếp »Š ` gimp x2 ;sau khi 8 lcd sáng hết thì quay lại từ đầu dclay: — mov RG,#Offh dc]2: ĐIỌV r7,#0Íh dell: djnz c7 dell djnz r6,del2 ret end
- Ciải thich: để led sáng dẫn lên ta phải địch mức † vào thanh ghi A, mức 1 dude chita trong bít Cy, lệnh xoay thanh phí A sang trái sẽ dịch mức 1 từ C vào bịt Ao của thanh ghỉ A Bít A; sẽ dịch sang bil Cy ‘Trong 8 lin dịch đầu tiên thì sau khi dich bit Cy luơn bằng 0 — nên ta dùng lệnh nhãy cĩ điều © kiện khi C= Ĩ thì nhảy dể quay lại tiếptục thực hiện
Cho đến lần xoay thứ 9 thì C = † thì lệnh nhảy “Sjmp x2” mới dược thực hiện để lầm lại từ đầu
Bai tap: :
Trang 11boy gh
“Trctiug Dat Wee Sa Pham KG Vedat 7
foo Bai 5,
Chương trình port 1 sáng dân và tắt dần
;chuong trinh port 1 sang dan len va tat đan org 4000h x2: mov a,#00h 4 i h xl: mov pi,a a Icall delay pS setb a x3: cÏr c mov pl,a Icall delay _jcx3 pure Tộc Mek Cn 4 sjmp x2 delay: mov R6,#0fth del2: mov ¢7,#0ffh dell: dịnz r7,del địnz r6,del2 ret của Bo 5 Bài tập: BEB oe /
1, Hãy viết chương trình port 4 sáng dân và tắt dân
Trang 12Trabug Dac Hee Se Phan RG Whedt 8 Bài 6, Chương trình port Í và porL 4 sáng đần và tất dain p4 _ 0e8h [u09Đ; 3091, / equ org 4000h mov r2,#O0h ew tNOV r3,#00h moy p4,r3 Ỉ mov, pl r2 8 Icall delay ™ seth ¢ Mov a, 3 fF Phos rlea foe fg fy mov r3,a i 2 La , q ' mov a, rẽ N rlea Ễ CoA He ey ra nhà âu pine x] | pty ne Pa gn xy circ me Re Cyne aH x3: mov a,r3 rÌc a ¬ mov r3,a “hogs, mov a,r2 one Tia tÍc a mov r2,a mov p4,r3 on c mov pl,r2 Icall delay je x3 sjmp x2 Chi mov R6,#Offh mov r7,#0ffh địnz r7,del1 địnz r6,del2 ret ‘delay: del2: dell: end „Bài tập: ữ mì ì sườn h / ⁄ Poy Ty yt ;dinh nghia tén cho port4 c6 dia chi là E8H 6001 put
Hay viet chương trình giếng như bài đã viết nhựng lcd sáng dần và tắt dẫn theo chiểu ngược I Hãy cho biết chức năng của 2 thanh phủ R2 và R3 2?
2 Cĩ thể thay'2 thanh g ghỉ nầy bằng các thanh ghỉ nào ? 3 Hãy vẽ lại lưu dỗ của chương trình ?
4, lai
5,
chiéu ngược lại “7c tàu we dééce bhibe
lIãy viết chương trình giống như bài đã viết nhưng led sáng dẫn cùng chiều nhưng tắt dẫn theo
†
Trang 14Trcbug Dac Wie See Phan KG Tedt Bai tap: p4 b73: b72: dclay: del: dell: end <\ mov Ä rộ Chương trình port 4 sáng đồn 6 6° cqu ymov 12,#00h mov r4,#08 vl ử mov r3,04h ¬„ g mov 13,#00h mov ayr3 orl a,r2 mov pla Icall delay setbc ° XN Đa "ta g 8b rea / LẾC mov raat 9 orl ne ; Mov pelyar? Icall delay, THOV rl, dịn?z rt, bh72 simp b73 ˆ mov R6#Oth mov r74#Ofth djnz r7,dell djnz r6,de12 ret A ee f 10 | HBÀI 7, ¬" Ỷ i Oc8h ss 1 org 4000h Tịnh, zaWA( ;
“shvu trang théi ban đấu ‘
;biến đếm số lần dịch chuyển của led ne
;chuyển biến đếm từng led \
snap 0 vao R3 , ;chuyển R3 sang A
;Or với nội dung chính lưu trong R2
;pởi ta Port4 để hiển thị 24
dâm cho C= Í ——-
;Xoay nội dung A qua cy
;cất lại vào R3 để luư cho lần xử lí kế
;lấy kết quả đĩ or với R2 rỗi gởi ra P4
dần này th2 phải xĩa Cy để chỉ địch 1 led đi
;giảm RNẾ nếu chưa bằng O thì quay về lại
;CẤt nội dụng chính sau cằng sau khi đã dịch chuyển led sgiẩm biến đếm để xử lí lẫn kế
mhầy về lầm lại từ đầu +
! Hãy diều chỉnh chương trình trên để sáng cho các led cửa Port I 2 Hãy viết lại luư đồ của chương trình trên
3, _Hãy diều chỉnh chương trình trên để sáng theo chiễu ngược lại
Trang 15“~netiug Dat Woe Su Pham KG Vhadt 14 - 4 , ee Bai 8 o Chương trình port 1, port 4 sáng dồn từ dưới lên ve p¢ cạu ss OB _ org 4000h 1 b83: mov r2,#00h ` ;uu tru trang thai ban dau port 4 mov r1,#00h * sport] movr4#16, .- ;biendem
b82: mov r5,04h._ Í $ ;chuyen bien dem vao R5
mov r3,#0O0h ˆ — ;nap 00 vao R3 luu tru tam cho port 4 mọov r0,#00h snap 00 vao RO luu tru tam cho port 1
° mov a,r3 *# ;chuyen R3 sang a
Ẹ orlar2 9 Â â | jor voi noi dung chinh mov p4,a ' sroi goi P4de hien thi ˆ:
mov.a,rl “> schuyen R1 sang a orl a,rO - ;0F voi noi dung chỉnh
mov pl,a —_ ¡toi goi P4 de hien thi , : cÍ ; lcal delay - ¬ ' “ setb c¿: ST ;lam cho C = Í ` B81: mov R13 na , tie a ; Ơ Se ;XOAYy a sang trai thong quacy _ , 1 db ig, 3 movr3a* gi Jai cho R3 orlarZ oy uc , mov páa 9 es geet ` và ye, ae KT NA ah mov ard sh |
flea Ce ;XOAY a gang trai thong qua cy
mov 10,4 \s ;goi lai cho RO a mov pla’ # a 7: Icall delay ce clre 7 djnz r5,b8L 50 — car Ab ` : movar3 A:z°“ orl a,r2 mov 12,4 cĩ ou & k _ XO 9
mov a,r0 gare ` , : 7? `, `” œ7 ˆ Vo œ
Trang 16
“Thường Tạt Tục Sư Pham KG Wedt 12
delay: mov R6,#Offh del2: mov £7,#0f th del]; djnz r7,dell djnz r6,del2 ret end Bai tap:
I Hãy điều chỉnh chương trình trên để sáng cho các led sáng theo chiều ngược lại 2 Hãy viết lại luư đỗ của chương trình trên ~
Bài 9,
Trang 17“trùng Tạu Thực Sứ Ph ai AG Ted 13
ret /
XN NANXN HANA NARI AEN RAK RX AR NARA AI ;chưong trinh port | sang don va tat dan
Chú ý: để tiết chương trình trên một cánh nhanh nhất ta ditng edif cia ac để vift Mở các files b73: mov r2,#00h vin tru trang thai-ban dau
my rÍ,/08 sbicn dem
b72: mov 1r5,04h chuyen bien đếm vao R5
mov r3,200h snap OO vao R3 mov a,r3 ;chuyen R3 sang a orla,r2 ;or voi nơi dựng chính mov pla vot cot P4 de hien thí leall delay
seth ec sJaincho C = 1
b7 I: mov ay
rea vxoay a sang trai Kong qua cy mov raya spol lai cho R3 orla,r2 mov pla loall delay clrc djnz r5,b71 mov r2.a djnz r4,b72 ret delay: mov RO,#OFfh del2: mov £7,#0ffh dell: djnz r7,del! djnz r6,del2 ret end th cĩ
ra copy chúng về bai9.asmt rỗi hiện chỉnh lại nhự trên
“Để kết nối các chương trình thành 1 chương trình ta cĩ 2 cách kết nổi:
+ Kết nối theo kiểu nối đuơi: lệnh cuối của chương trình 1 bổ di và tiếp theo đĩ là hốt dẫn của chương trình thứ 2; lệnh cuối của chương trình 2 bổ đi và tiếp
chương trình thứ 3,
theo đĩ là bắt đầu của và lệnh cuối của chương trình cuối cùng thì nhảy về lệnh dân của
chương trình L,
viết thành
+ Kết nối theo kiểu chương trình con: ta điều chỉnh các chương trình chính đã
các chương trình con, sau dé ta xây dựng | chung trình chính để quần HỆ tt e2 các chương trình con đồ, Với chương, trình trên ta đã thực biện theo cách 2
Bait v
1 IHấy cho biết chương trình não là chương trình chính và cĩ bao nhiêu chương trình cơn? 2 Để số lần chĩp tất là 10 (các phần khác khơng đổi t hì phải thực hiện ra sao?
3 Để chương trình sáng dẫn lên tí Ổi tắt hết được thực hiện 10 lần (ác ic phin khác khêng any thy
phải thực hiện ra sao? :
4 TiỂ chương trình sáng dần lên rồi tắt dẫn được thực hiện 10 lẫn (các phẦn khác khốc 5â) th
Trang 18“Tuchug Dac Hee See Phau KE Weedt 14 5,
ra sao?
6 'Tất cả đều được thực hiện 10 lÂn thì phải thực hiện như thế nào?
Hãy thêm vào chương trình trên 3 chương trình cĩ chiều ngược lại gồm sáng dẫn lên rồi tắt hốt, sáng dẫn lên.rỗi tắt dẫn, sáng dồn
§ IHãy viết chương trình cĩ chức năng như trên nhưng | theo cách 1
cir nh ¢ 0c| port sáng, đấn tạ œ cuc va garde cou dtd fet tu Ngo.» te org 3070 db cocco ccco b @.4 AC + 04 40 : Ab 446 ` A Aan 4 ¬ O4°44 40 : Ad AA , AAAI 04 144444 6 44 444444° ‘ Đ444A4ÁO ’ A OAAAAOA 0444400 0464 4164 Q 4G04 4004 Ĩ0€4 4000 9 OdFO Baas ofos 2010 34 G204 ) ỊỊO@6 ðo°@ ory HOGoh tết hết sary x hed big ¬ mov clptC , 4 26001 h | ra) đụ ch 3000h vo ph MéV Í) „ @`- ) WON 8: “4 Đ ‘di chủ thap Move ow ) @ á*+ dato 5 ly Mile Woy Dry A Nels detory 4C: nh ene Đ #00 py Symp Ray ane mov (¢, #5 Ack : Mov S2 HO 7 ei “2< trẻ “ke Si of ding” ry 4 Nz cy al dit ` ? Ady ree ond,
Khaa din ~ 68 mau deen te
Trang 19
Tuutug Dae Hoe Sa Pham kG Whedt 15
“Trong vi điều khiến 80535 cĩ 3 timer ta cĩ thể sử các timer | nay để làm các bộ định thời hay dùng để đếm xung từ bên ngồi đưa đến ' Bài 10 Chương trình sáng LẮt por dì sử dụng timer làm bộ định thời delay 65535 micro giây org 4000h nộ ụ " * - BSTBS 4 BPP F bli: mov p1,#00h cĩ ¬ Hs ï , EY 2 ay Ske hk Icall delay 1 365535 micro giay (S3 mov p1,#0ffh - Icall delay sjmp bi1 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;chuong trinh con delay 65535 micro giay
delay: ch tfO ;xĩa cờ ngắt của timer0 ˆ
mov tl0,#0 snap 0 vao TLO mov th0,#0 : _' nạp 0 vào THƠ
mov tmod,#5(h); khGi tao timer TO mode 1 dém 16 bit
setb trO ;cho phép timer0 bắt.đầu đếm xung £ we XBR ĐƠ
del2: © jnb tf0,del2 :kiểm tra cờ ngắt nếu ngắt là đã đếm được từ 0000 dén EEHE tà =.L cbesk ret studng ứng với 65535 pis và kết thúc chương trình con trở về
;chương trình chính © S SAO x aS
end " ,
Bài 10 giống như bài đã làm trước › đây chỉ khác là thay chướng trình delay bằng một chương trình sử dụng timer để việc tính tốn thời gian dể dàng hơn -
ï_ Với chương trình bài 10 thi timer t0 sẽ đếm từ giá trị nạp ban đầu 0000H đến FFFFH kết qua sé xung đếm được là FFFFH — 0000H = FFFFH (65535) xung va méi xung cĩ chu kì lhs nên lượng thời gian mà timer 10 đếm được là 65535 Hs,
Để đếm với lượng thời gian nhỏ hơn ta hãy xem chương trình bài 11 Bài 11 Chương trình sáng tắt port1 sử dụng timer làm bộ định thời delay 250 micro gi Ay org 4000h xl: movpl,#09h = Go lcall delay ` ;65535 micro giay mov p1,#0ffh : Icall delay - §Hmp xI ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;chuong trinh con delay 250 micro giay
delay: clr tf0 - xĩa cờ ngắt của timer0.ˆ mov tiO,#05h snap 05 vao TLO
movth0#OFFh - ;nạp FF vào THƠ
mov tmod,#5 th ;khởi tao timer TO mode 1 dém 16 bit
setb tr0 ;cho phép timer0 bắt đầu đếm xung
del2: job tf0,del2 :kiểm tra cỡ ngắt nếu ngắt Ì là đã đến được từ 0000 dén FFFF ret ;tudng tng vGi 65535 ps va: kết thúc chương trình con trở về
;chương trình chính end
Trang 20“Viabug Dae Hee Sa Pham Ke Whedt 16
Bài F1 giống như bãi 1Ị nhưng lượng thời gian dclay chỉ cĩ 250ns: vì giá trị ban đầu nạp cho Hmeor là P0511 nên khi đếm đến FEPEH kết số xung dém dudc PFFFH — FFOSH = OOFAH (250) và mỗi xung cĩ chủ kì 1s nên lượng thời gian mã timer 10 đếm dudc 18 250 ps
Để đếm với lượng thời gian lớn hơn ta hãy xem chương trình bài 12
Bài 12
Chương trình sáng tắt port1 sử dụng thmer làm bộ định thời đelay 5 giây
org 4000h x1: mov pi,#00h
Icall delay 565535 micro giay
mov p1,#0fth Bae SPemece Icall delay sjmp x! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;chưong trình con đelay gs 5 4y sy Hae delay: — ch tU ee mov r7,#100 | ` mov imod,#5th 2 A =
-deli: mov HO AR OE ao 2S Ar
cv mov tho HAE 2 ` + hO +o seth tr0 del2: jnb tf0,del2 iS536 — 3¢ BO hee clr trO — clr (f0 djnzr7,dell ret =k cnd org 4000h Bai tap:
I [lãy viết chương trinh delay 10 gidy
2 Ilãy cho biết thanh phí R7 cĩ chức năng gì và thơng số nạp vào thanh ghỉ này được tính tốn
như thế nào 7 tương tự đối với các giá trị nạp vào các thanh ghỉ của timer ) Hãy viết chương trinh delay 1 gid 7
-4.- Hãy viết chương trình chớp tlt port 1 với chủ kỳ 2ms, Lầm thế nào để biết được sự chính xác ?
Trang 21
“Txchug Dac Wee Su Pham KG Whaat 17 ae
Bai 13 ,
Chương trình điển khiển động cơ bước
Hãy quan sát “stcpping board” cĩ gắn một động cơ bước và 3 phương pháp giao tiếp dể diều
khiển động cơ -
+ Phương pháp điều khiển động bang cdc switch:
Trình tự thực hiện: dùng 4 dây nối lần lượt các chốt theo bảng sau:
Nối chốt S1 với AI Nối chốt S33 với BI Nối chốt a với ngõ ra của điện trở Rs (bên trái) Nối chốt S2 với A2 Nối chốt S4 với B2 Nối chốt b với ngỡ ra của điện trở Rs (bên phai)
Y⁄_ Chuyển đổi các SW theo thứ tự từ trái sang phải của bảng sau: Yo es SI 2 S4 v 1 0" , 0 0 — 0 0 y 0 0 0 1 1 1Ĩ ; 1 1, : 1 1 i I 0 ) + ị 1` 0
- _ Hãy cho biết số chu kỳ thực hiện là bao nhiêu trạng thái:
- Hãy cho biết chiều xoay của động cơ thuận chiễu kim đồng hổ hay ngược chiêu:
- _ Nếu thực hiện sai trình tự trên thì hãy cho biết động cơ cĩ xoay được hay khơng:
- Ban hay cho biét s6 trang thái là bao nhiêu khi động cơ xoay đúng l vịng - hãy lấy chiểu
kim trén motor lam mốc ' Che
- Hay cho biét mét budc 1A bao nhiéu dé: ` cố vˆ Hãy chuyển đổi các SW theo thứ tự từ phải sang trái của bảng sau: œ ~ OO fe peep OO LOO 0 t I I 1 0 0 0 0
- Hay cho.biét chiéu xoay cha déng co thuan chiéu kim déng bé hay ngược chiểu:
Trang 22“lrabug Dat Wee Se Phawe KG Phedt Bai tap: 18 1 Ding 4 dây nối lẫn lượt các chốt theo bẳng sau: Nối chốt S2 với A2 Nối chốt S1 với B1 Nối chốt S3 với AI Nối chốt S4 với B2 Nối chốt a với ngõ ra của điện trở Rs (bên trái) Nối chốt b với ngõ ra của điện trở Rs (bên phải) vs Ilãy chuyển đổi các SW theo thứ tự sao cho động cơ quay cùng chiều kim đồng hỗ rồi điển các trạng thái vào bằng: ^ S2 33 ` 4
2 lùng 4 dây nối lân lượt các chốt theo bằng sau:
Nối chốt S1 với B2 Nối chốt S3 với A2 Nối chốt a với ngõ ra của điện trở Rạ (bên trái) | Nốt chốt S2 với AI Nối chốt S4 với BI Nối chốt b vei ngõ ra của điện trở Rs (bên phải) ⁄ 1H 2 4s 4 TA ¬ wid tt đẲnG ĐỂ cổ: điề v“_ 1lãy chuyển đổi các SW theo thứ tự sao cho động cc: quay ngược chiều kim đồng hồ rỗi điển các trạng thái vào bảng: e©_ Phương pháp điều khiển động gián tiếp bằng 1 xung clk: Trình tự thực hiện: dùng các đây nối lần lượt các chốt theo bằng sau: Nối chốt A1 với AI Nối chốt B1 với Bl Nối chốt a với ngõ ra của điện trở Rs (bên trái) | Nối chốt A2 với A2 Nối chốt 32 với B2 Nối chốt b với ngõ ra của điện trở Rs (bên phải)
“đực đàn tê 4c ềo, sổ N6i bit PLOY board vi điều khiển với chốt CLIK
Nối 0V của board vi diéu khién vdi OV cia stepping board
Trang 23
"Jrắug Dac Wee Sua Pham Sỹ (vớt "49
_ Hãy viết chương trình chĩp tắt bịt P1.0 hoặc Port 1 (bài số 2) rồi chạy chương trình quan sát động cơ làm việc và cho biết:
A Chú ý: chương trình delay với thời gian nhỏ quá thì động cơ sẽ khơng đáp ứng được và nĩ sẽ khơng quay và khơng nên để ở trạng thái này quá lâu
Chiêu quay của động cơ:
Bao nhiêu xung thì quay được một vịng:
Khi động cơ quay tương ứng với khi led sáng hay tất: ; lại SaO:
Để đảo chiều động cơ hãy dùng một dây nối 0V chốt cĩ tên TTL:
Để hở tương ứng với mức 1 nên quay thuận chiều kim đồng hỗ,
Nối 0V thì quay ngược chiều kim đồng hồ
Hãy thử và cho biết đúng hay sai:
2 chốt cĩ tên STOP:
Hãy thử và cho biết đúng hay sai: Hãy thử và cho biết cái gì thay đổi:
R an “ x tA 4 X ny » ` a n nN
ĐỂ ngừng động cơ cĩ thể thực hiện bàng cánh ngừng cung cấp xung hoặc dùng một dây nổi
Hãy dùng một dây nối 2 chốt cĩ tên HALF-STEP:
¢ Phuong pháp diéu khiển động trực tiếp các pha: ;
Trình tự thực hiện: dùng các dây nối lần lượt các chốt theo bảng sau: 1 Nối chét Al vdi Al Nối chốt B1 với BI Nối chốt A2 với A2 Nối chốt B2 với B2
Nối chốt a với ngõ ra của điện trở Rs (bên trái)
Nối chốt b với ngõ ra của điện trở R; (bên phải)
Nối các bit từ PI.0 đến PI.3 từ board vi điều
Trang 24“Treciug Dat Hee Su Pham KG Wade 20 dịnz r2,b131 2 772i l2 Đền simp b132 ye" Ỉ + ¬ " ¬ delay: tpt diy clr tye _mov r5,#0f0h “ `) wxev + ,#42 5 } À
dcl2: — nưv r6,#Offh Idd : mov Tp | AVG,
de]l: djnz r6,dell wev tmook, fe RL }-
địnz r5,del2 Aoki - ywroy vt LS, ae ObOW
ret mov tho, of Ach
end, so trở
AM: jn HO, oul Z
¥ Chay chudng trinh quan sat d6ng cd [Am viéc va cho biét: Vr ro
- - Chiểu quay của động cơ:
- - lHãy cho biết các dữ liệu 09H, 0111, 0511, Trong 8 lệnh đầu tiên của chương trình ở đầu ra ” Ai n2 FF 7 Au Ls `\ — io Als Tet Be “HAY gidi thich boat động của chương trình: Bai tap:
1 Hãy viết chướng trình để động cơ quay theo chiều ¡ngược lại bài trên (khơng được thay đổi các _— vị trí của đây đã nối)
2 llãy viết chương trình điểu khiển động ed quay theo chiểu kim đồng hỗ đúng một vịng rồi: ngừng
3 Ilãy viết chương trình diéu khién dong cd quay ngược chiều kim đồng hd aang 2 vong réi vi ngừng
s 4 Hãy viết chương trình diễu khiển động cơ quay thuận l vịng ngừng 2 giây rồi quay ngược chiêu kim déng hỗ 0 đúng 1 vịng rỗi ngừng hẳn
Trang 25
Pratug Dat Woe Sa Pham Ky TWhudt 21
l Bài 14
Chương trình điều khiển động cơ bước cĩ điều khiển start - stop
s;chuong trinh dieu khien step motor co dieu khien start/stop = p4.0 ;start/stop = p4.0 = 1/0: p4.0 = 0 thi Stop; p4.0 = 1 thi Start, p40 equ | Oe8h p4i equ 0e9h org 4000h _ ¬ thợ 8 vã mov 70h,#09h wei Pee bối “oe ~ £ 1 mov 71h,#01h ve \ ¬ Ao mov 72h,#05h Mã pees i mov 73h,#07h mov 74h,#06h mov 75h,#0eh — mov 76h,#0ah "4
mov 77h, #08h phi " Quy đà rie bet
skiem tra on /off
bl4l: jb p40,bl4i = Thect | tia von lop o8 =0
ý bind: 'b prey § $ i Ctr s ake Stor / Cop “tua he /
-mov r0,#Ÿ0h ‘ab pho, ‹
mov 12,#08h J z duley: mev: my gp Crp
ị gỐ blk, MoV a, Gi er Ị cp
b142: | mov pl, @r0 ` ˆ ank aya Ib khi 7 mar rg AC i" 4
Liner) a acl ay OM cola rey 1) PP
địnz r2,b142 MON YO, & Avy: i fep
s simp b141 mov Di @ fÐ ) boa re m a Ð
; : (6
delay: lenth deter ˆ » ony {3 (~~ " “2 (a,
mov 17,#05h j Puo , bht- cụ "n S7 AND
del3: mov r5,#0ffh ‘ay ahd $ oly f\ } {~ di Aw 2 del2: mov r6,#0ffh * ị 5 đ— dell: djnzr6delt Cjmp bih3 tu linz r5,del2 1 4 4 wl — bi: ec Gane G | ee: địnz r7,del3 Ộ Cy mp b def A ret end
Khi chay chương trình phải dùng một dây nối một đầu với 0V và đầu dây cịn lại nối với bịt P4.0 khi đĩ động cơ mới bắt đầu quay
Chương trình này vẫn cịn mội lỗi nhỏ là khi STOP (rit day ra khỏi bit P4.0 1h) phải chờ thực hiện xong một chu kỳ thì nĩ mới ngừng quay
Ilãy điều chỉnh lại chương trình này sao cho Khi STOP thì nĩ phải ngừng ngay lập tue Lam bên phai của chương trình trên,
Bài tập:
1 Hãy viết lại lưu đồ của chương trình trên
2 Hãy viết lại chương trình trên sau cho bit P4.0 cĩ vai trị cũng là Start/Stop nhưng là mỘt: contact thường hở:
Trang 26Trctug Dac Woe Se Phas KG Vude 22
ee
Trang 27“Sratug Dat Hee Sua Pham KG Theat 23 Bài 15
Chương trình điều khiển động cơ bước cĩ điều khiển start ~ stop, cĩ thay đổi chiên ;Chương trình điều khiển step motor cé diéu khién start/stop = p4.0
Trang 28Thutug Dae Woe Sam KG Vhedt 24
Co hương trình này vẫn cịn một lỗi nhỏ là khi SFOP (rút đây ra khỏi bit P4.0 thì phải chờ thực hiện xong một chủ kỳ thì nĩ mới ngiing quay va contact dao chiéu citing phai chd thuc hién xong mét chu ky 8 xung,
- Hãy điều chỉnh lại chương trình này sao cho khi STOP thi né phai ngừng ngay lập tức và đảo
chiều thì phải đảo chiều tức thời,
Bài tập:
1 Hãy viết lại lưu để của chương trình trên
2 Hãy viết lại chương trình trên sau clio bit P4.1 cĩ vai trd cũng la F/R nhưng là một contact thường hở
Trang 29“‘lnabug Dat Hoe Sa Phau KG Vat 25 Giới thiệu về giao tiếp với LED 7 đoạn:
Microcontroller board cĩ 2 port ngõ ra giao tiếp với LED đơn, các port này cĩ thé dùng để
dưa tín hiệu ra bên ngồi để điểu khiển và dã thực hiện điều khiển động cơ bước Ở dây trình bày
& Xv tơ R ox ^ x 2 2 AN : ta’
phần giao tiếp giữa các port với các leđ 7 đoạn để tăng thêm khả năng biển thị số - sơ đồ giao Hiếp như sau: ,
Kiểu giao ti€p voi LED 7 doan bang phương pháp quét do TỔ 74138 - khi đĩ 3 ngõ vào Á, H:
C được nối đến các bit P4.0 - P4.1 - P4.2 Các dường điều khiển các đoạn a, b, c, d, c, F, ø p dược
nối với cả Portltheo thứ tự P1.0 đến P1.7
Chú ý sự kết nối giữ các đường điều khiển cĩ thể thay đổi nhưng hãy theo cách kết nổi trân
tì các bài thực hành san này đều viết cho kiểu kế! nội trên
Đo cĩ 8 led nên ta phải qui định LED thứ nhất tinh từ bên trái và led thứ 8 tính từ bên phải
Để hiển thị dữ liệu trên 8 led thì đữ liệu được gởi ra Port 1 và mã điều khiển được gởi ra các
bit cua port 4 nhu sau:
Trang 30“Trường TĐạc Thạc S« Phan KE Wheat 28 W Mã quét | +) Thirty Led P42 | P44 | P40 0 _0 0 Led 1 0 0 Led 2 0 1 0 Led 3 0 1 4 Led 4 1 0 0 Led 5 1 0 1 Led 6ˆ HN, i 1 0 Led 7 % I I Led 8
Trang 31“‘Inatug Dat Hoe Se Pham KY “WMadt 27
Bài 16
Chương trình thử led 8 sáng số0 ˆ
p40 equ Oe8h
org 0000h / :
mov p4,#11111111b ;gdi m& quét bing 111 dé cho phép led 8 mov p1,#11000000b_ ;gdi ma sé Ora p1
sjmp $ ;lệnh nhảy tại chổ dấu $ thay cho nhãn
end
Bài tập: Ộ
1 Muốn sáng số 1 ở led thứ 3 thì thay đổi gì trong chương trình trên ?
2 Trong trường hợp nào thì nhiễu led sáng cùng một lúc cùng một đữ liệu? Bai 17 Chương trình thi? 8 led sang từ số 0 đến số 7, “p40 cequ Oc 8h , org 0000h - b2: mov p4,#00000000b mov pi,#11000000b ;ma so 0 Icall delay ; ;
Trang 32“Pratug Dac Wee Su Pham KG Whedet 28 delay: del3: del2: dell: end Bai lap: mov r5,#1 mov r7,801h mov r6,#0fth djnz r6,del1 djnz r7,del2 dịnz r5,del3 ret
I Hãy cho biết các led sáng như thế nào: © Từng led sáng các led cịn lại tắt
® Tất cả các led dễu sáng
2 Do Abs a gee A ny’
Muốn thay đổi thời gian delay thì cĩ thể thay đổi các thơng số nào: Ề &
+ Muốn dclay lớn nhất thì các thơng số đĩ mang giá trị bao nhiêu và hãy thử trên miầy: $ Muốn delay nhỏ nhất thì các thơng số đĩ mang giá trị bao nhiêu và hãy thử trền máy: ¢ ‘Trong từng trường hợp hãy cho biết cường độ sáng của iden c6 thay déi hay khéng Wa chỗ
biết trong trường hợp nào thì sắng rõ:
@ Ty tìm thơng số cho chương trình dclay là bao nhiêu để 8 led đều sáng và rõ nhất: Bai 18 Chương trình thứ 8 led sáng từ số 0 đến số 7 nhưng viết kiểu khác p40 ;chượng trình chính b32; bi: delay: dell: 1 ond Cau hoi va Bai ta âm: equ Oe8h skhai báo mã 7 doạn nạp vào vùng nhớ I000h org 1000b ma: db OcOh,Of9h,0a4h,Ob0h, 99h, 92h 82h, Of8h, 80h, 90h org 0000h mov r0,#8 mov dntr,#1000h move a, @dptr ;biến đếm số lần gởi snap địa chỉ quần lí vùng mã mov p4,#00000000b ;mã quét ;lấy mã hiển thị đưa vào a mov pia Ieall delay ine dptr ine pd djnz r0,b31 sjmp b32 clr trO mov th0,#10 mov tl0,#00 setb trO clr uO jnh tf0,dell rel s5 Pes a
;ÐỞi ra port L để hiển thị
;iing lên để lấy mã tiếp theo - ;tiăng má quét để hiển thị led kế
2% en ^^“ *
;giam biển đểm đi Í
;quay trở lại để lặp lại "
Ị Hãy so sánh sự khác nhau của 2 chương trình:
Trang 33“Srabug Dac Woe Sua Pham RG Thadt 29 Bai 19 Chương trình đếm giây hiển thị ở 2 led 7 và 8 p40 equ O0e8h ;khai báo mã 7 đoạn nạp vào vùng nhớ 1000h org 1000h ma: db OcOh,0f9h,0a4h,Ob0h,99h,92h, 82h, Of8h, 80h, 90h ;chương trình chính org 0000h mov tmod,#00000001 b42: mov 10h,#00h mov 1 th,#00h mov 12h,#00h mov 13h,#00h mov 14h,#00h mov 15h,#00h mov 16h,#00h b44: mov 17h,#00h
;xĩa nội dung ơ nhớ hiển thị !0H ;xĩa nội dung ơ nhớ hiển thị HH ;xĩa nội dung ơ nhớ hiển thị 12H ;xĩa nội dung ơ nhớ hiển thị 13H ;xĩa nội đụng ơ nhớ hiển thị !4I1 ;xĩa nội dung ơ nhớ hiển thị 15H _
;xĩa nội dung ơ nhớ hiển thị 16H
;xĩa nội dung ơ nhớ hiển thị 17H
b43: Icall gma ;go1 chương trình con giải mã |
Icall delay ;goi chương trình con delay và hiển thị ine 17h slang giay/lén 1 mov a,17h cịne a,#10,b43 inc 16h mov a, 6h cjne a,6,b44 sjmp b42
;chuyển giây vào a để so sánh với 10 ; nếu chưa bằng 10 thì nhảy về b43 ,nếu bằng thì tăng chục giây lên 1
;chuyển chục giây sang a kiểm tra cĩ bằng 6 khơng ; nhầy về b44 nếu khơng bằng 6
snhay về lam lai từ đầu vì bằng 60 giây _ ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;chương trình con giải mã để hiển thị cho 8 ơ nhớ từ 10H đến 17H gma: mov rl,#10h mov r0,#20h mov dptr,#1]000h b41: mov dpl,@r1 movx a, @dptr mov @r0,a inc rO inc rl
;quản lí địa chỉ lưu số
;quản lí địa chỉ lưu mã
Trang 34Trectug Dat Hoe Se Pham KG Weude 30 : ret ị ;XXXXXXXXXXXXÄXXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKXXXXXXXXXXXXXXXXXXXXX ;chương trình con hiển thị hthi: mov p4,#00000000b mov r0,#20h snap dia chi quan li vung ma hth: mov pl, @r0 Icall delay 1 inc r0 mọv pÌ,#0ffh inc p+ cjne r0,#28h,htl ret '1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;chương trình con delay , dclayl: mov r7,#010h dell: dịnz r7,dell de ret , end Câu hỏi và Bài tập:
! 'Pại sao phải chèn chương trình con hiển thị vào chương trình delay? Nếu khơng giải thích dược thì hãy thử bằng cách bỏ lệnh gọi chương trình con biển thị trong chương trình delay và cho nĩ vào trong chương trình chính sau lệnh gọi chương trình con delay rồi cho biết kết
quả như thế nào: 2 sẽ 5
to lay cho biét chitc năng của chương trinh delay t: †
rps ` of : ote aoe + e , x
3 Trong chương trình con hiển thị cĩ lệnh sơ sánh r0 với 28H - hãy giải thích tại sao - cé thé so sánh với số khác được nhữ 2911 được hay khơng?
Trang 35“Thường Dac Hoe Su Pham Ky Thắt 31 Bai 20
' Chương trình đếm giây hiển thị ở 2 led 7 và 8- Sử dụng ngắt của timer để đếm chính xác về thời gian p40 equ Oc8h ;khai báo mã 7 đoạn nạp vào vùng nhớ 1000h org LOOOh ma: db OcOh,Of9h,Oa4h,ObO0h,99h,92h,82h, Of8h 80h, 90h org 0000h nop nop nop nop nop “nop hop _ nop nop -sjmp chirch
limp chtrcotO snhay qua khỏi chương trình ngắt của timer snhay đến chương trình con timer 0 PK KEXXXXSXXSSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;chương trính chính chirch: mov tmod,#OLEh mov U0,#0F7h mov tho,40D8h clr tf0 selb trO mov ie,#82h mov dptr,#1000h mov 30h,#00h mov 31h,#00h mov 32h,#00h mov 33h,#00h mov 38h, #0fth mov 39h, #0fth mov 3ah,#0fth mov 3bh,#0fth mov 3ch,#0{th mov 3dh,#0ffh ;xử lí hàng chục giây x3: moy 34h ,#O0h x2: mov dp134h movx a, @dptr mov 3ch,a ;xử lí hàng giây mov 35h,#00h x1: mov dpl35h movx 4, @dpir mov 3fha “đực “đu u¿ điều (điển
;khởi tạo tiiner (0,
;thơng số delay cho cả 2 thanh ghi là 81711
;với thơng số này chír delay với thời hằng IOms ;cho phép timer 10 bắt đầu đếm
;cho phép timer 10 ngắt nếu đếm trần ;quản lí vùng mã ;xĩa Ơ nhớ 30h ;xĩa õ nhớ 31h :xĩa ơ nhớ 32h ;xĩa ơ nhớ 33h ,tắt led hiển thị ,
;ơ nhớ lưu trữ chục giây
;ơ nhớ lưu trữ mã chục giầy ;ơ nhớ lưu trữ giây
;ơ nhớ lưu trữ mã giây
Trang 36“Tường Dac Wee Su Pham Kj Wade - 32 x10: lcaH hthi
cjne r2,#100,x 10 skiém tra di 1 gify chua
mov £2,400 ;nếu đủ thì xố thanh ghỉ r2
sling piây lên I
_xI3: ine 35h
mov a,35h
cjne a,#10,x1 ;so sánh với 10 giây quay trở lại nếu chưa đủ 10 giây
;tăng chục giây lên 1 nếu đã đếm đủ 10 giây , ine 34h mov a,34h cjne a,#06,x2 Imp x3 ›XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;chưởng trình ngắt của timer TỦ: sau IOms thì chương trình này sẽ thực hiện 1 lần và nĩ sẽ tăng nội ;dung của thanh phí r2 lên Ikhí r2= 100 thì tương ứng với thời gian del ay 14 100x 10ms = Is chtrcot0: cio - " 4 + cle 0 ing r2 s mov (1O,#OI!7h ‘khoi tao lai lan ke mov th0,#OD8h setb trO mov ie, #82h | ' reti 7 ;lệnh trở về từ chương trình ngắt ¡;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;chương trình con hiển thị hthi: mov p4,#00000000b - ' mov r0,438h - shap dia chi quan li vung ma htt: mov pl, @r0 : , Icall delms inc rO mov pt, #Ofth ine pt cịne r0,#40h, ht! ret " # ›XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX delms: mov r7,#50h delm: djnz r7,delm ret ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end
Câu hỏi va Bai tap:
.1, Hãy cho Biết địa chỉ ngắt của timer t0 nếu khơng biết thì hãy đánh đúng chương trình trên - - _ và biên dịch sau đĩ xem file: với phần mở rộng ST rồi xem địa chỉ của lệnh "limp
-chtrcot0" , _
Trang 37“ườuc Đạt Thạc Sư Pham Ky Whudt "88
2 Hãy cho biết chức năng của các lệnh "nop”:
3 Nếu dùng lệnh nhảy để bỏ các lệnh nop ở trên thì chương trình thay đổi như thế nào:
4 Muốn đếm BCD từ 00 đến 99 thì chương trình thay đổi như thế nào:
5 Muốn đếm BCD từ 00 đến 65 thì chương trình thay đổi như thế nào: ,
6 Mudn dém BCD từ 01 đến 65 thì chương trình thay đổi như thế nào:
7 Muốn đếm từ 13 đến 65 thì chương trình thay đổi như thế nào:
"
ỉ
8 Muốn đếm nhị phân từ 00H đến FFII thì chương trình thay đổi như thế nào:
9, Hãy viết lưu để cho chương trình trên:
Trang 38hờn, Dat Wee Se Pham Ry Pade 34
Bài 21
Chương trình đếm phút - giây hiển thị ở 4: led 4, 5, 7 và 8
Sử dụng ngắt của timer để đếm chính xác về thời gian: pọ cqu - Oe8h ;khai báo mã 7 đoạn nạp vào vùng nhớ 1000h org 1000h ma: db OcOh,0f9h,0a4h, Ob0h,99h,92h,82h,018h,80h, 90h org OO00h nop nop nop nop nop nop nop hop nop simp chirch Ijmp chtrcotO snhay den chtr con titner tO ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;chuong trinh chinh chirch: mov tmod,#01h “mov tlO,AOP7h mov thO,40D8h clr tf0 setb trơ mov ie,#82h mov d ptr,#1000h mov 30h,#00h mov 31h, #00h mov 32h #00h mov 33h,#00h mở 38h, #Ofth mov 39h, #Offh mov 3ah,#0fth mov 3dh,#0fth ;xu ly hang chục giay _xS: KAD xu ly hang giay | x3: 26+ hank tut ites tht mov 32h, #400h mov dpi32h movx a, @dptr mov 3bh,a mov 33h,#00h mov dpl,33h skhoi tao timer tO, delay
;cho timer bat dau dem
scho phep timer tO ngat/ ;quan li dia chi vung ma
LS 5
so nho luutru chuc giáy
30 nho luu tru ma chục giay
30 nho luu tru giay
Trang 392 Fucciug Dat Wee Su Pham Ki Voudt -movx a,@dptr mov 3ch,a mov 34h,#00h x2: mov dpl,34h movx a,@dptr mov 3eh,a ;xu ly hang giay mov 35h,#00h x1: moy dpl,35h movx a, @dpir mov 3fh,a x10: Icall hthi 35
;ơ nho luu.tru ma giay ;o nho luu tru chuc giay
;o nho luu tru ma chục giay
;o nho luu tru gay ;ư nho luu fru ma giay
cịne r2,#100,x10 ; kiem tra du 1 giay chua - mov r2,#00 ;tang hang giay len 1 x13: inc 35h mov a,35h cjne a,#10,x1 ;tang hang chuc giay len | ¡nc 34h mov a,34h cine a,#06,x2 ;tang hang phut len 1 inc 33h: moy a,33h cjne a,#10,x3 ";tang hang chục phut len | inc 32h mov a,32h ˆ cjne a,#10,x4 limp x5 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;chuong trinh ngat cua timer TO chtrcot0: clr tfO elr trO inc r2 mov 110,#0F7h mov th0O,#0D8h setb tr0 mov ie,#82h - retl
sneu du thi xoa
skhoi tao lai lan ke
›XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;chuong trỉnh con hien thi
Trang 40Traiug Dae Woe Su Pham RG Thedt -36 + hthi: — mov p4,#00000000b i mov 10,438h snap dia chi quan li vung ma htl: mov pl, @r0 Icall delms inc r0 mov pi,#0fth inc p4 cjne r0,#40h,ht! ret :XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX delms: mov r7,#50h delm: — dịnzr7,declm ret ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX cnd Câu hỏi và Bài tập: 1: hịn Hãy diều chỉnh chương trình đếm phút giây để đếm BCD từ 0000 đến 9999 hiển thị ở các led 5, 6, 7, 8 ,
Hay vidt chudng trinh dém BCD ti 0001 đến 9765 | lãy viết chương trình đếm nhị phân từ 0000 đến FEEEH
Iiãy viết tưu đổ cho chương trình trên