vi dieu khien

65 151 0
vi dieu khien

Đ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

BÀI SỐ 1-4: CHƯƠNG TRÌNH ĐIỀU KHIỂN 8 LED SÁNG DỒN I. Mục đích yêu cầu: hiểu cách sử dụng lệnh xoay kết hợp với lệnh logic để thực hiện chương trình điều khiển led sáng dồn. II. Trình tự thực hiện: 1. Giải thuật: 2. Kết nối mạch theo trình tự : - Dùng bus dây kết nối port 0 với một trong bốn PINHD của dãy 32 led. - Gắn vi điều khiển vào đế nạp 40 pin ( socket ) ở modul nạp của hệ thống 2. 3. Khởi động phần mềm, mở File mới và đặt tên file. Vd: bai1_4 4. Viết chương trình với tên file vừa đặt : Begin Tắt 8 led Mức 1 dịch chuyển từ led 1đến led 8 End Mức 1 dịch chuyển từ led 1đến led 7 Mức 1 dịch chuyển từ led 1đến led 2 Mức 1 dịch chuyển về led 1 ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx ;chuong trinh dieu khien port 0 sang don va tat het - cach I ;su dung bo thi nghiem PE-1,ket noi port 0 den 8 led bang cap 8 soi ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx org 0200h ;khai bao dia chi luu tru vung du lieu ma: db 00000000b ;byte du lieu nay luu vao o nho co dia chi 0200H ;lan thu nhat la 8 byte db 00000001b ;byte du lieu nay luu vao o nho co dchi 0201H db 00000010b ;tuong tu cho cac byte du lieu con lai db 00000100b db 00001000b db 00010000b db 00100000b db 01000000b db 10000000b ;lan thu hai la 7 byte db 10000001b db 10000010b db 10000100b db 10001000b db 10010000b db 10100000b db 11000000b ;lan thu 3 la 6 byte db 11000001b db 11000010b db 11000100b db 11001000b db 11010000b db 11100000b ;lan thu 4 la 5 byte db 11100001b db 11100010b db 11100100b db 11101000b db 11110000b ;lan thu 5 la 4 byte db 11110001b db 11110010b db 11110100b db 11111000b ;lan thu 6 la 3 byte db 11111001b db 11111010b db 11111100b ;lan thu 7 la 2 byte db 11111101b db 11111110b ;lan thu 8 la 1 byte db 11111111b ;byte du lieu cuoi cung = FFH ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx org 0000h ;khai bao dia chi chtr chinh port0_44: mov dptr,#0200h ;nap dia chi luu du lieu vao thghi dptr port0_4a: movc a,@a+dptr ;lay du lieu tu bo nho dua vao A mov p0,a ;goi ra port 0 lcall delay ;goi chtr con delay inc dptr ;tang dptr len o nho ke cjne a,#0ffh,port0_4a ;ktra co phai la byte ket thuc hay chua sjmp port0_44 ;quay tro lam lai tu dau khi da het du lieu ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx ;chuong trinh con delay ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx delay: mov r6,#0ffh de2 : mov r7,#0ffh de1 : djnz r7,de1 djnz r6,de2 ret end 5. Thực hiện các bước từ 5 đến 9 giống như các bài trước. Theo cách viết 1 ta hãy quan sát dữ liệu trong chương trình đã được sắp xếp theo đúng trình tự và chương trình chỉ thực hiện nhiệm vụ là di chuyển lần lược các byte dữ liệu có trong bộ nhớ đem gởi vào A và sau đó gởi ra port 0. Lệnh “ma: db dữ liệu “ có chức năng nạp các byte dữ liệu vào vùng nhớ có địa chỉ 0200H. Dữ liệu viết dưới dạng số nhị phân cho dễ nhìn thấy và có thể viết dưới dạng số hex – khi đó chương trình sẽ ngắn hơn rất nhiều. Phần khai báo dữ liệu dưới dạng số hex như sau: org 0200h ;khai bao dia chi luu tru vung du lieu ma: db 00H DB 01H,02H,04H,08H,10H,20H,40H,80H DB 81H,82H,84H,88H,90H,0A0H,0C0H DB 0C1H,0C2H,0C4H,0C8H,0D0H,0E0H DB 0E1H,0E2H,0E4H,0E8H,0F0H DB 0F1H,0F2H,0F4H,0F8H DB 0F9H,0FAH,0FCH DB 0FDH,0FEH DB 0FFH Chương trình giống như trên nhưng viết theo cách II: ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx ;chuong trinh dieu khien port 0 sang don va tat het - cach II ;ket noi port 0 den 8 led bang cap 8 soi ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx org 0000h port0_05: mov r2,#00h ;luu trng thai ban dau mov r4,#08 ;goi bien dem so lan dich chuyen cua led port0_05a: mov r5, 04h ;tuong duong 'mov r5,r4' mov r3,#00h ;nap 00 vao r3 mov a,r3 ;chuyen r3 sang a orl a,r2 ;or voi noi dung chinh luu trong r2 mov p0,a ;goi ra port 0 de hien thi lcall delay ;goi chuong trinh con delay setb c ;lam cho bit C = 1 port0_05b: mov a,r3 rlc a ;xoay noi dung thanh ghi A sang trai mov r3,a ;cat lai vao r3 de luu cho lan xu li ke orl a,r2 ;lay ket qua do or voi r2 roi goi ra p0 mov p0,a lcall delay clr c ;xoa Cy de chi dich 1 led di djnz r5,port0_05b ;giam r5 neu chua bang 0 thi quay ve lai mov r2,a ;cat noi dung sau cung khi da dich chuyen 1 led djnz r4,port0_05a ;giam bien dem de xu li lan ke sjmp port0_05 ;nhay ve lam lai tu dau ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx ;chuong trinh con delay ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx delay: mov r6,#0ffh de2 : mov r7,#0ffh de1 : djnz r7,de1 djnz r6,de2 ret end Chương trình khá phức tạp, khó hiểu bạn hãy tự nghiên cứu thử xem sao? III. Bài tập ứng dụng: 1. Hãy viết chương trình điều khiển 8 led của port 0 sáng dồn theo chiều ngược lại. 2. Hãy viết chương trình điều khiển 16 led của 2 port: port0 và port1 sáng dồn. [xem chương trình đã viết bên dưới và thực hiện các chương trình còn lại. 3. Hãy viết chương trình điều khiển 3 port: port0, port1, port2 sáng dồn. 4. Hãy viết chương trình điều khiển 4 port: port0, port1, port2 và port3 sáng dồn. 5. Hãy viết chương trình sáng dồn 2 port 0 và 1 từ ngoài vào trong và từ trong ra ngoài. 6. Hãy viết chương trình sáng dồn 4 port 0, 1, 2 và 3 từ ngoài vào trong và từ trong ra ngoài. ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx ;chuong trinh dieu khien port 0, port 1 sang don va tat het ;ket noi port 0 va port 1 den 16 led bang 2 soi cap 8 soi ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx org 0000h port01_6: mov r4,#00h ;luu trng thai ban dau mov r6,#00h mov p0,#00h ;luu trng thai ban dau mov p1,#00h lcall delay ;goi chuong trinh con delay mov 10h,#16 ;goi bien dem so lan dich chuyen cua led port01_6a: mov 11h,10h ;chuyen bien dem tung led mov r5,#00h ;nap 00 vao r5 mov r7,#00h ;nap 00 vao r7 setb c ;lam cho bit C = 1 port01_6b: mov a,r7 rrc a ;xoay noi dung thanh ghi A sang trai mov r7,a ;cat lai vao r7 de luu cho lan xu li ke orl a,r4 ;lay ket qua do or voi r4 roi goi ra p1 mov p1,a mov a,r5 rrc a ;xoay noi dung thanh ghi A sang trai mov r5,a ;cat lai vao r5 de luu cho lan xu li ke orl a,r6 ;lay ket qua do or voi r5 roi goi ra p0 mov p0,a lcall delay clr c ;xoa Cy de chi dich 1 led di djnz 11h,port01_6b ;giam ndung o nho (11h)<> 0 thi quay lai mov r4,p1 mov r6,p0 djnz 10h,port01_6a ;giam bien dem de xu li lan ke ljmp port01_6 ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx ;chuong trinh con delay ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx delay: mov 7eh,#040h del: mov 7fh,#0ffh djnz 7fh,$ djnz 7eh,del ret end BÀI SỐ 1-5: CHƯƠNG TRÌNH ĐIỀU KHIỂN LED SÁNG BẰNG CÁCH TỔ HỢP CÁC BÀI ĐÃ VIẾT I. Mục đích yêu cầu: biết cách kết hợp các bài đã viết để điều khiển các led sáng đa dạng hơn. Biết cách sử dụng lệnh gọi chương trình con và viết chương trình con. II. Trình tự thực hiện: 1. Giải thuật: 2. Kết nối mạch theo trình tự : - Dùng bus dây kết nối port 0 với một trong bốn PINHD của dãy 32 led. - Gắn vi điều khiển vào đế nạp 40 pin ( socket ) ở modul nạp của hệ thống 2. 3. Khởi động phần mềm, mở File mới và đặt tên file. Vd: bai1_5 4. Viết chương trình với tên file vừa đặt : ;chuong trinh tong hop cac chuong trinh da viet dieu khien port 0 ;cac chuong trinh bao gom: Begin Sáng tắt 8 led Đếm nhị phân ở 8 led 8 led sáng dần lên và tắt dần 8 led sáng dồn End [...]... điều khiển led sáng với thời gian trể nhỏ thì led sáng mờ nhưng khơng chóp tắt như các bài ta đã vi t ở trên Trong phần tính tốn chúng ta chưa tính tốn các lệnh trong chương trình con delay Muốn vi t chương trình với các khoảng thời gian lớn hơn thì phải thêm thanh ghi ví dụ muốn vi t delay 5 giây thì ta vi t chương trình trình con delay 50 000 µs = 50ms và cho chúng thực hiện 100 lần CHƯƠNG 2: ĐIỀU... đoạn Giả mã BCD cách vi t chương trình đếm và sau khi thực hành xong sinh vi n có thể vi t các chương trình đếm với số đếm tùy ý II Trình tự thực hiện: 1 Giải thuật: Delay và hiển thò Tăng giây lên 1 đơn vò Giây = 60 Đ end S 2 Kết nối mạch theo trình tự : - Dùng bus dây kết nối port 0 đến pinhd điều khiển các đoạn a,b,c,d,e,f,g,dp và kết nối port 2 đến pinhd điều khiển qt hàng - Gắn vi điều khiển vào... thời gian mà timer T0 đếm được là 65536 micro giây 4 Thực hiện các bước giống như trên và xem kết quả III Bài tập ứng dụng: 1 Hãy vi t chương trình sáng tắt port 2 sử dụng timer làm bộ định thời delay 5 giây 2 Hãy vi t chương trình giống trên nhưng delay 10 giây 3 Tương tự hãy vi t chương trình delay 1 giờ IV Bài tập mẫu: Để đếm lượng thời gian nhỏ hơn ta hãy tham khảo bài mẫu dưới đây: ; chuong trinh... trình con delay rồi cho biết kết quả như thế nào? 2 Hãy vi t chương trình đếm lên từ 00 đến 99 thì làm như thế nào? 3 Hãy vi t chương trình đếm xuống từ 60 về 00 thì làm như thế nào? BÀI SỐ 2-3: CHƯƠNG TRÌNH ĐẾM GIÂY HIỂN THỊ Ở 2 LED – SỬ DỤNG NGẮT CỦA TIMER ĐỂ ĐẾM CHÍNH XÁC VỀ THỜI GIAN I Mục đích u cầu: biết cách kết hợp timer và chương trình đếm để vi t chương trình đếm giây một cách chính xác II Trình... trình đều thực hiện 10 lần thì phải thực hiện như thế nào? 3 Hãy vi t chương trình giống như vậy nhưng lần lược cho 2 port, 3 port và 4 port theo 1 chiều từ trên xuống, từ dưới lên và từ ngồi vào trong và từ trong ra ngồi BÀI SỐ 1-6: CHƯƠNG TRÌNH DELAY SỬ DỤNG TIMER I Mục đích u cầu: biết cách tính tốn các thơng số delay của timer để vi t các chương trình delay chính xác II Trình tự thực hiện: 1 Kết... xác II Trình tự thực hiện: 1 Kết nối mạch theo trình tự : - Dùng bus dây kết nối port 1 với một trong bốn PINHD của dãy 32 led - Gắn vi điều khiển vào đế nạp 40 pin ( socket ) ở modul nạp của hệ thống 2 2 Khởi động phần mềm, mở File mới và đặt tên file Vd: bai1_6 3 Vi t chương trình với tên file vừa đặt : ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ; chuong trinh sang tat... delay setb c rrc a jnc loop10 loop11: clr c rlc a mov p0,a lcall delay ;3 lan jnc loop11 djnz r7,loop9 ret ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx ;chuong trinh dieu khien port 0 sang don va tat het tu tren xuong ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx sangdontx: mov r7,#3 loop12: mov r2,#00h mov r4,#08 loop13: mov r5, 04h mov... a,r2 mov p0,a ;bien dem 3 chu ky lcall delay clr c djnz r5,loop14 mov r2,a djnz r4,loop13 djnz r7,loop12 ret ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx ;chuong trinh dieu khien port 0 sang don va tat het tu tren xuong ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx sangdondl: mov r7,#3 loop15: mov r2,#00h mov r4,#08 loop16: mov r5, 04h mov... SỐ 2-1: CÁC CHƯƠNG TRÌNH ĐIỀU KHIỂN LED 7 ĐOẠN SÁNG I Mục đích u cầu: biết được cách tìm mã điều khiển led 7 đoạn , biết ngun lý điều Begin khiển led theo phương pháp qt và cách vi t chương trình điều khiển led 7 đoạn Sinh vi n phải hiểu rằng 1 u cầu điều khiển có thể thực hiện bằng nhiều chương trình khác nhau II Trình tự thực hiện: 1 Giải thuật: Gởi mã hiển thò ra led 1 Gởi mã quét chọn led 1 sáng... : - Dùng bus dây kết nối port 0 đến pinhd điều khiển các đoạn a,b,c,d,e,f,g,dp và kết nối port 2 đến pinhd điều khiển qt hàng - Gắn vi điều khiển vào đế nạp 40 pin ( socket ) ở modul nạp của hệ thống 2 3 Khởi động phần mềm, mở File mới và đặt tên file Vd: bai2_1 4 Vi t chương trình với tên file vừa đặt : Ví dụ 1: ; chuong trinh thu led D1 sang so 9 org 0000h mov p2,#11111110b ; cho phep D1 sang mov . 0FFH Chương trình giống như trên nhưng vi t theo cách II: ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx ;chuong trinh dieu khien port 0 sang don va tat het - cach. dụng: 1. Hãy vi t chương trình điều khiển 8 led của port 0 sáng dồn theo chiều ngược lại. 2. Hãy vi t chương trình điều khiển 16 led của 2 port: port0 và port1 sáng dồn. [xem chương trình đã vi t. còn lại. 3. Hãy vi t chương trình điều khiển 3 port: port0, port1, port2 sáng dồn. 4. Hãy vi t chương trình điều khiển 4 port: port0, port1, port2 và port3 sáng dồn. 5. Hãy vi t chương trình

Ngày đăng: 13/07/2014, 00:01

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan