Thông báo
Collapse
No announcement yet.
Lập trình ASM cho 8051
Collapse
X
-
Nguyên văn bởi ngohaibac Xem bài viếtMình mở topic này với mong muốn các bạn thảo luận về tệp lệnh và thuật giải cho các bài toán cụ thể.
Mình nghĩ rằng điều đó thực sự là cần thiết với các bạn mới học vi điều khiển qua đó có tư duy thuật toán rất là rõ ràng.
Do đó, mình yêu cầu ai post trong này cần ghi rõ giải thuật và chú thích lệnh rõ ràng. Vì thực tế lấy một đoạn code rồi post lên thì chẳng có ý nghĩa gì cả.
Topic này cũng rất là có tác dụng cho các bạn trong các kì thi Kỹ thuật vi xử lý đó. Bản thân mình học 8051 chỉ sơ sơ, không viết nhiều ứng dụng lắm, đặc biệt là bằng 8051 mà chỉ toàn bằng C thôi. Quan trọng là mình biết nếu lập trình một cái thì mình tìm ở đâu, học ở chỗ nào thôi. Trường mình kì này mới dạy 8051 nên phải viết nhiều nhiều để thi nên tiện viết luôn cho các bạn
.
Mình có upload tệp lệnh của bọn Atmel lên đây.
http://www.tailieuvietnam.net/downlo...tion%20Set.pdf
Đề nghị anh em không được post spam trong đây. Nếu ai không biết cần đặt câu hỏi cụ thể và người trả lời phải cụ thể, nếu có hình minh họa là tốt nhất. Tránh việc cứ hỏi đi hỏi lại mệt lắm.
Các bạn dùng Keil C để viết chương trình nhé:
http://www.tailieuvietnam.net/downlo...ac/C51v805.zip
Và chíp ban đầu mình và các bạn sử dụng để viết những bài đơn giản là con 89S52.8051 tệp lệnh là giống nhau chọn con nào cũng ok.Con 89S52 có nhiều điểm mạnh như có 3 timer, 256 byte RAM on chip... :
Chúc mọi người thành công.•´¨`»(`'•.¸(`'•.¸¤*¤¸.-'´)¸.•'´)«´¨`•
«´¨`•..¤ :¤..•´¨`»
•´¨`»(¸.•'´(¸.•'´¤*¤`'•.¸)`'•. ¸)«´¨`•
Comment
-
Các bác ơi gúp em phần nút ấn mạch đồng hồ realtime với.
Em định sử dụng 3 nút ấn mode .inc, dec.
Link đồng hồ số :http://www.mediafire.com/?jwmn2jzdzwr
Thank các bác nhiều.
Comment
-
Chao anh ngohaibac
Em là người mới tìm hiểu về lập trình ASM cho 8051. Nhiều thứ e vẫn chưa hiểu hết được.
Mới đây, thầy giáo của em bắt về nhà làm bài tập về ASM8051 này, nhưng từ trước đến giờ em chưa được học về nó.
Đề bài như thế này.
Viết chuơng trình ASM để chia số 16bits cho số 8bits, thương là số 16bits và số dư là số 8bits. Yêu cầu viết ASM 8051 và sử dụng các hàm, thủ tục con.
Khoảng vài ngày nữa là em nộp lại rồi mà đến bây giờ em vẫn chưa thể làm được.
Em nhờ anh hãy làm giúp cho em bàu này được không ạ. Nghĩa là anh làm hoàn chỉnh chuơng trình luôn (nhập số, chia và xuất kết quả)
Em cảm ơn anh nhiều
Comment
-
Chao anh ngohaibac
Em là người mới tìm hiểu về lập trình ASM cho 8051. Nhiều thứ e vẫn chưa hiểu hết được.
Mới đây, thầy giáo của em bắt về nhà làm bài tập về ASM8051 này, nhưng từ trước đến giờ em chưa được học về nó.
Đề bài như thế này.
Viết chuơng trình ASM để chia số 16bits cho số 8bits, thương là số 16bits và số dư là số 8bits. Yêu cầu viết ASM 8051 và sử dụng các hàm, thủ tục con.
Khoảng 3 ngày nữa là em nộp lại rồi mà đến bây giờ em vẫn chưa thể làm được.
Em nhờ anh hãy làm giúp cho em bàu này được không ạ. Nghĩa là anh làm hoàn chỉnh chuơng trình luôn (nhập số, chia và xuất kết quả)
Em cảm ơn anh nhiều.
Nhờ anh làm nhanh và gửi qua mail này cho em với nhé: loiht.208@gmail.com
Comment
-
anh nào lập trình asm xem giúp em đoạn code này với. em mới tìm hiểu về asm nên cũng ko biết nhiều.
T11 BIT 20H
T22 BIT 21H
T33 BIT 22H
T44 BIT 23H
ORG 0000H
JMP MAIN
ORG 0003H ;ngat ngoai de hien thi
CALL T1ISR ; thoi gian sang tat LED xanh
CALL HT
RETI
ORG 000BH ;ngat timer 0 de kiem soat thoi gian hien thi giua cac bang ma
CALL SOSANH
CALL T0ISR
RETI
ORG 001BH ;ngat timer 1 de sang tat LED xanh duoi cung
CPL P3.7
CALL T1ISR ; thoi gian sang tat LED xanh
RETI
ORG 0040H
MAIN:
MOV SP,#5EH
MOV 50H,#107
SETB T11
SETB T22
SETB T33
SETB T44
MOV R4,#120
MOV TMOD,#11H
MOV P1,#0FFH
MOV P3,#0FFH
MOV A,#0
MOV DPTR,#TB
MOV IE,#10001011B
SETB IT0
SETB PT1
SETB TR1
JMP $
HT:
SETB TR0
MOV A,#0
CLR P3.7
HT0:
PUSH ACC
MOVC A,@A+DPTR
MOV P1,A
POP ACC
INC A
CALL DELAY
MOV P1,#0FFH
CJNE A,50H,HT0
RET
DELAY:
MOV R5,#60
DJNZ R5,$
RET
T1ISR:
MOV TH1,#HIGH(-2000)
MOV TL1,#LOW(-2000)
RET
T0ISR:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
RET
SOSANH:
DJNZ R4,EXIT0
JNB T11,NEXT1
MOV DPTR,#TB1
MOV R4,#80 ;bang ma 1 hien thi 2 giay
MOV 50H,#142 ;so luong gia tri cua bang ma 1
CLR T11
JMP EXIT0
NEXT1:
JNB T22,NEXT2
MOV DPTR,#TB2
MOV R4,#80 ;bang ma 2 hien thi 2 giay
MOV 50H,#136
CLR T22
JMP EXIT0
NEXT2:
JNB T33,NEXT3
MOV DPTR,#TB3
MOV R4,#80 ;bang ma 3 hien thi 2 giay
MOV 50H,#134
CLR T33
JMP EXIT0
NEXT3:
JNB T44,NEXT4
MOV DPTR,#TB4
MOV R4,#80 ;bang ma 4 hien thi 2 giay
MOV 50H,#124
CLR T44
JMP EXIT0
NEXT4:
MOV DPTR,#TB
MOV R4,#120 ;bang ma dau tien hien thi 3 giay
MOV 50H,#107
MOV 24H,#0FFH ;set lai cac bit T11,T22,T33,T44
EXIT0:
RET
TB:
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH ;57
DB 0EFH,0FFH,0DFH,0FFH,0BFH,0FFH,7FH,0FFH,0BFH,0FFH,0 DFH,0FFH,0EFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0 FFH,0FFH,0FFH,0FFH;^
DB 0EFH,0FFH,0DFH,0FFH,0BFH,0FFH,7FH,0FFH,0BFH,0FFH,0 DFH,0FFH,0EFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0 FFH,0FFH,0FFH,0FFH;^
DB 5H,0FFH,0FFH,0FFH ;!
TB1:
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH ;22
DB 1H,0FFH,6DH,0FFH,6DH,0FFH,6DH,0FFH,93H,0FFH,0FFH,0 FFH ;B
DB 1H,0FFH,0FFH,0FFH ;I
DB 1H,0FFH,0BFH,0FFH,0DFH,0FFH,0EFH,0FFH,0F7H,0FFH,1H ,0FFH,0FFH,0FFH ;N
DB 1H,0FFH,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,1H,0FFH,0FFH ,0FFH ;H
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH ;_
DB 1H,0FFH,7DH,0FFH,7DH,0FFH,7DH,0FFH,83H,0FFH,0FFH,0 FFH ;D
DB 3H,0FFH,0FDH,0FFH,0FDH,0FFH,0FDH,0FFH,3H,0FFH,0FFH ,0FFH ;U
DB 83H,0FFH,7DH,0FFH,7DH,0FFH,7DH,0FFH,7DH,0FFH,83H,0 FFH,0FFH,0FFH ;O
DB 1H,0FFH,0BFH,0FFH,0DFH,0FFH,0EFH,0FFH,0F7H,0FFH,1H ,0FFH,0FFH,0FFH ;N
DB 83H,0FFH,7DH,0FFH,7DH,0FFH,75H,0FFH,75H,0FFH,0B1H, 0FFH,0FFH,0FFH ,0EEH ;G
TB2:
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH ;28
DB 3H,0FFH,0FDH,0FFH,0FDH,0FFH,0FDH,0FFH,3H,0FFH,0FFH ,0FFH ;U
DB 1H,0FFH,0BFH,0FFH,0DFH,0FFH,0EFH,0FFH,0F7H,0FFH,1H ,0FFH,0FFH,0FFH ;N
DB 1H,0FFH,0FFH,0FFH ;I
DB 7H,0FFH,0FBH,0FFH,0FDH,0FFH,0FBH,0FFH,7H,0FFH,0FFH ,0FFH ;V
DB 1H,0FFH,6DH,0FFH,6DH,0FFH,6DH,0FFH,0FFH,0FFH ;E
DB 1H,0FFH,6FH,0FFH,67H,0FFH,6BH,0FFH,9DH,0FFH,0FFH,0 FFH ;R
DB 9BH,0FFH,6DH,0FFH,6DH,0FFH,6DH,0FFH,0B3H,0FFH,0FFH ,0FFH ;S
DB 1H,0FFH,0FFH,0FFH ;I
DB 7FH,0FFH,7FH,0FFH,1H,0FFH,7FH,0FFH,7FH,0FFH,0FFH,0 FFH ;T
DB 7FH,0FFH,0BFH,0FFH,0DFH,0FFH,0E1H,0FFH,0DFH,0FFH,0 BFH,0FFH,7FH,0FFH,0FFH,0FFH ;Y
TB3:
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH ;29
DB 1H,0FFH,6DH,0FFH,6DH,0FFH,6DH,0FFH,0FFH,0FFH ;E
DB 1H,0FFH,6FH,0FFH,6FH,0FFH,7FH,0FFH,0FFH,0FFH ;F
DB 1H,0FFH,6DH,0FFH,6DH,0FFH,6DH,0FFH,93H,0FFH,0FFH,0 FFH ;B
DB 1H,0FFH,7DH,0FFH,7DH,0FFH,7DH,0FFH,83H,0FFH,0FFH,0 FFH ;D
DB 3H,0FFH,0FDH,0FFH,0FDH,0FFH,0FDH,0FFH,3H,0FFH,0FFH ,0FFH ;U
DB 0FFH,0FFH,0FFH,0FDH,0FFH,0FFH,0FFH,0FFH,0FFH ;.
DB 83H,0FFH,7DH,0FFH,7DH,0FFH,7DH,0FFH,0BBH,0FFH,0FFH ,0FFH ;C
DB 83H,0FFH,7DH,0FFH,7DH,0FFH,7DH,0FFH,7DH,0FFH,83H,0 FFH,0FFH,0FFH ;O
DB 1H,0FFH,0BFH,0FFH,0DFH,0FFH,0EFH,0FFH,0DFH,0FFH,0B FH,0FFH,1H,0FFH,0FFH,0FFH ;M
TB4:
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH ;40
DB 0C3H,0FFH,0B5H,0FFH,0ADH,0FFH,9DH,0FFH,0C3H,0FFH,0 FFH,0FFH ;0
DB 0BFH,0FFH,0BFH,0FFH,0B0H,0FFH,0AFH,0FFH,9FH,0FFH,0 FFH,0FFH ;7
DB 0C3H,0FFH,0B5H,0FFH,0ADH,0FFH,9DH,0FFH,0C3H,0FFH,0 FFH,0FFH ;0
DB 0DDH,0FFH,0B9H,0FFH,0B5H,0FFH,0ADH,0FFH,0DDH,0FFH, 0FFH,0FFH ;2
DB 0C3H,0FFH,0B5H,0FFH,0ADH,0FFH,9DH,0FFH,0C3H,0FFH,0 FFH,0FFH ;0
DB 0DDH,0FFH,0B9H,0FFH,0B5H,0FFH,0ADH,0FFH,0DDH,0FFH, 0FFH,0FFH ;2
DB 0F3H,0FFH,0EBH,0FFH,0DBH,0FFH,81H,0FFH,0FBH,0FFH,0 FFH,0FFH ;4
END
Comment
-
Nguyên văn bởi lonelycat Xem bài viếtBạn đang làm quang báo phải ko, bạn gửi sơ đò mạch lên để cùng nhau thảo luận, chứ như thế này sao giúp được
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi nhathung1101Cáu nhau cứ vào đây giải quyết.
Đừng để lũ trẻ nhìn ở ngoài, học theo thói xấu...
Và tuyệt đối không để bọn trẻ học theo cái "ngu" ở đó.-
Channel: Tâm tình dân kỹ thuật
hôm nay, 00:51 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi nhathung1101Khơi mào luôn:
Một người chưa hiểu nguyên lý ổn áp tuyến tính (Linear Voltage Regulator) lại muốn hiểu MPPT???...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 00:47 -
-
bởi nhathung1101Tinh thần của luồng:
- Biết gì nói nấy.
- Cãi chửi nhau thoải mái.
- Chỉ vì kỹ thuật.
- Càng vui càng tốt.
Oh... Yeah... Please....
Anh em nào có khúc mắc cứ vào đây, đừng vào những luồng "đèn đỏ" nhé.-
Channel: Tâm tình dân kỹ thuật
hôm nay, 00:29 -
-
Trả lời cho Hỗ trợ tìm linh kiện mạch hạ áp 220V - 110Vbởi nhathung1101Lại phát hiện thêm con Mèo Núp. Lo đi bắt chuột đi.
Mấy chị trong bản đang sợ chuột. Còn mấy ông đi bắt chuột cứ chạy quanh giường......-
Channel: Hướng dẫn tìm thông tin linh kiện
hôm nay, 00:14 -
-
Trả lời cho Hỗ trợ tìm linh kiện mạch hạ áp 220V - 110Vbởi nhathung1101Giờ mới nhìn thấy bài này.
Hôm qua nhìn qua, phân tích mạch nên không thấy.
Nhắc bạn nhỏ một câu: "Biết thì thưa thốt, không biết dựa cột mà nghe".
Mạch ổn áp DC mà cho vào loa???
Xui dại cũng phải chọn người nhé!...-
Channel: Hướng dẫn tìm thông tin linh kiện
hôm nay, 00:01 -
-
Trả lời cho Tiếng Anh cho người Việtbởi nhathung1101
Không ngờ ku em chuyển sang hệ trung dung....
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 22:04 -
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietBqv rất ngại vụ tư vấn kiểu này, vì "văn mình vợ người" kiểu gì cũng có thể chỉ ra cái chưa hợp lý văn viết của người khác nhưng chính mình cũng dễ bị bắt lỗi. Rào trước như vậy, xin viết thêm vài dòng góp ý.
...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 21:27 -
-
Trả lời cho Tìm linh kiện sửa loa vi tính.bởi nhathung1101Ra cửa hàng điện tử bất kỳ.
Dõng dạc hét lên:
- Cho 1 con 4558.
Có luôn. Nó chỉ là con Opamp cùi bắp thông thường thôi mà. Giá 2k hay 3k gì đó.
Nếu muốn âm thanh hay hơn, thì mua NE5535, mất 2 cốc beer thôi.-
Channel: Điện tử dành cho người mới bắt đầu
26-02-2025, 22:38 -
-
Trả lời cho Hỗ trợ tìm linh kiện mạch hạ áp 220V - 110Vbởi nhathung1101Mạch dùng được, nhưng phải kết hợp với Transistor NPN công suất bên ngoài. Loại chịu điện áp cao, dòng lớn.
Loại mạch này nhái theo cái loại IC họ STR trong mấy cái ti vi cổ lỗ ngày xưa thôi mà. Còn được gọi là "ổn áp...-
Channel: Hướng dẫn tìm thông tin linh kiện
26-02-2025, 22:28 -
-
Trả lời cho Tìm linh kiện sửa loa vi tính.bởi Nikon57
-
Channel: Điện tử dành cho người mới bắt đầu
26-02-2025, 21:36 -
Comment