![]() |
Mpasm cho nguoi moi bat dau
Em moi hoc VDK pic, va dang dung mplab de lap trinh, Truoc co hoc qua 8051, nay chuyen sang Pic thay bo ngo qua, va co nhieu cai khac so voi 8051. Nay em lap topic nay rat mong moi nguoi hay chia se nhung kinh nghiem va thuat toan cua minh cho nhung nguoi moi bat dau, nhung cai ma chi co thoi gian moi tich luy duoc
Do co rat nhieu nguoi da hoc 8051 roi sau moi chuyen sang Pic, em la mot VD cho nen em muon co su so sanh ( tuong duong) giua ASM cua 8051, va Pic, nhu the se giup duoc nhieu cho nhung nguoi chuyen tu 8051 sang Pic ( Topic nay chi noi den thuat toan dung trong Mpasm sao cho don gian ngan gon chu ko di sau vao giai mot bai toan cu the) Rat mong duoc su giup do cua moi nguoi |
Van de 1 em muon hoi
Trong 8051 co cau lenh: CJNE A,#number, diachi Cau lenh nay dung de so sanh mot thanh ghi voi mot so va rat hay duoc dung trong ASM(8051) vay cac bac hay cho biet su tuong duong trong MPASM Huong cua em dang dinh giai quyet : tru W cho so can so sanh, xet bit Z neu = 1 thi nhay Nhung cach nay cung kha dai, va cung ko tien loi lam Rat mong su chi giao cua cac bac di truoc |
Vấn đề thứ hai em muốn hỏi là kỹ thuật bảng:
để dung KTB thì có mẫu chung PHP Code:
:) :) |
Khong co bac nao giup em ah
Ko co ai tra loi thi minh tu tra loi vay Trong Mpasm ko ho tro hien thi du lieu mot cach lien tuc nhu lenh DB cua 8051, tum lai la van phai viet mot cach tuan tu tung ky hieu ra mot Met wa: http://www.diendandientu.com/diendan...ead=1767#11086 |
cac phep nhan chia trong mpasm
Trong Pic ( 16x ) không có hỗ trợ phép nhân chia, do đó ta phải tự xây dựng bằng phần mềm.
Các chương trình này tự thiết lập cũng được nhưng có lẽ sẽ mất nhiều thời gian mà những cái mình làm đôi khi không hoản hảo lắm Anh Falleaf + các cao thu ve MPASM có thể copy và Paste cho em module của chức năng này ko. Phép chia 8bit, 16 bit, phép nhân 8 bit Em xin cám ơn nhìu |
chương trình thực hiện phép nhân PIC 16
Chương trình nhân 16 bit với 16 bit, kết quả lưu vào thanh ghi 16 bit
Code:
Chỉ vậy thôi |
Để tìm source code, các bạn lưu ý xem phần Dành cho người mới học PIC...
híc... chắc tui phải sửa lại cái này thành :"Dành cho các cao thủ về PIC" thì mới có người vào xem..... Chúc vui... |
Code:
|
Trích:
Để so sánh một thanh ghi với một số, nếu ko bằng thì nhảy tới vị trí con trỏ địa chỉ nào đó ta có thể làm như sau: (VD cho việc so sánh thanh ghi ACC ( địa chỉ 0x20 trong ram ) với số 0x05 , nếu ko bằng thì nhẩy tới NEXT_INS ) PHP Code:
Và mỗi lần so sánh ta lại phải tương nguyên cái bộ khung ấy vào. Sẽ rất mệt. Trong Mplab có hỗ trợ chế độ Macro, tức là có sự thay thế tương ứng nhờ trình dịch. Như vậy ta chỉ cần khai báo như sau PHP Code:
Voi VD khi dùng ta chỉ việc gọi ra: PHP Code:
PHP Code:
NCJNE ngược lại với câu lệnh trên , nếu bằng thì nhảy tới vị trí con trỏ FJNE là so sánh thanh ghi với thanh ghi , nếu ko bằng nhau thì nhảy tới vị trí con trỏ FJE ngược lại nếu bằng thỉ nhảy tới vị trí con trỏ Đây là công cụ tôi rất hay dùng trong các chương trình ứng dụng gần đây, với nó tôi thấy thoải mái và linh hoạt lên rất nhiều. Mong giúp ích được gì đó cho các bạn |
Bài này em viết rất tốt đó, nhưng nên bổ sung thêm một phần nữa, đó là hướng dẫn người dùng cách đặt các macro này ở đâu, tổ chức file như thế nào để thuận tiện nhất khi sử dụng.
Phần này cũng là một phần trong việc xây dựng và chuẩn hoá chương trình bằng MPASM. Mời các bạn có kinh nghiệm lập trình thêm vào các macro mà các bạn thường hay sử dụng. À, M, em nên viết thêm một phần nữa về các directive luôn, nếu cần tài liệu tham khảo thì báo anh. Phần này nên viết thêm chi tiết một chút sẽ rất hay. Chúc vui. |
Hỏi chút.
Cái macro đính kèm đó mình phải đính kèm như thế nào? Tức là mình sẽ viết mấy cái mcro đó trưc tiếp lên chương trình hay viết ở mợt file riêng rồi "include" nó vào chương trình chính. Tui thử dùng macro mấy lần rồi mà chưa được. |
em có thể viết trực tiếp nó vào trong file em đang soạn thảo, hoặc là đưa vào một file khác rồi #include cũng được.
Chúc vui. |
1 Attachment(s)
Có một số tại liệu về giải thuật cho các phép toán phát triển trên tập lệnh PIC, madt 47a coi đọc có được không.
|
3 Attachment(s)
Thêm một số file về các giải thuật cho các phép toán dùng cho vi điều khiển PIC.
Em còn một thắc mắc này nữa. Hình như đối với việc dùng macro, thì tác dùng của nó là chép đoạn chương trình trong macro vào vị trí mà macro được gọi, như vậy thì sẽ không có lợi cho bộ nhớ của vi điều khiển, có nên cân nhắc đến vấn đền này khi sử dụng macro không? |
Thanks !
A falleaf hoac cac cao thu ve PIC thanh lap dien dan nay thuc su la mot dien dan co ich cho nhung nguoi yeu thich lap trinh VDK. Cam on cac ban rat nhieu, da tu lau minh am tham hoc mot minh theo cac ban va cung lam duoc mot so viec nho khi su dung PIC. Minh la nguoi moi hoc PIC va dang dung PIC de lap trinh cho robot tu dong . Nhung trong qua trinh vua lam vua hoc den gio moi tich luy duoc chut "von lieng " de co the tham gia cung dien dan voi muc dich hoc hoi anh em.
Minh dang lap trinh voi 16F877A, ban dau robot cua minh chay bam duong thi rat tot va on dinh, tuy nhien nhung doan dem vach cua minh no van chua nhan duoc, co luc thi chi 1 vach dau no da cua roi. Mong anh em tren dien dan kiem tra giup. Phan cung cua minh su dung 6 led thu noi toi cong portA, (nam tren vach trang ='1') RB0 - noi dong co phai RB1 - dao chieu dong co phai RB2 - dong co trai RB3 - dao chieu dong co trai Bam duong su dung hai bit RA2,RA3 nam tren vach trang. Dem vach su dung hai bit RA0 va RA5 Do dong co cua minh toc do thap nen ko can dieu xung van bam duong tot So vach can dem =4; Day la chuong trinh cua minh: Code:
/////////////////////////////////////////////////////////////////////////////////////// |
Múi giờ GMT. Hiện tại là 11:09 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam