Thông báo
Collapse
No announcement yet.
Lập trình ASM cho 8051
Collapse
X
-
link die rùi bác ơi,post lại cho em vớiNguyê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
-
mình đang làm đề tài ledfan dùng ic 89c4051 . còn sơ đồ trong này có rùi http://www.dientuvietnam.net/forums/...isplay-LED-!!!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 Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 17:17 -
-
Trả lời cho Xin hỏi về mạch thu FM/AM trong catsettebởi nguyendinhvanTheo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
-
Channel: Điện thanh
05-12-2025, 19:59 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi afrendlyCó vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
-
Channel: Thiết bị điện tử cá nhân
04-12-2025, 01:27 -
-
Trả lời cho Máy điện châm ?bởi nick22Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
-
Channel: Điện tử y sinh
01-12-2025, 13:23 -
-
Trả lời cho Làm thế nào để check IC LM358bởi thetungĐể check IC sống hay chết thì đơn giản : bạn lắp cái mạch ( khuếch đại hoặc dao động ) chạy bằng con IC đó ,nhưng vị trí IC thì lắp cái đế .... thế là cứ cắm rút thì biết . Còn không thì kiếm cái này : https://shopee.vn/Xu-M%C3%A1y-ki%E1%...di-%C4%91%E1%B...
-
Channel: Hướng dẫn tìm thông tin linh kiện
28-11-2025, 14:34 -
-
bởi ngochung90Tình hình là em có mua mạch 3s về để hàn vào khối pin 12v, hàn xong em đo tại các chân từ B-, B1, B2, B+ thì điện áp pin vẫn đủ 12,6v, nhưng tại 2 chân ra P- P+ thì đo chỉ được 6,3v là bị sao các bác, và chân P- P + này đồng thời là chân sạc xả thì mình cắm sạc xả cùng lúc được ko ạ
...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2025, 10:32 -
-
Trả lời cho Làm thế nào để check IC LM358bởi nguyendinhvanViệc đó tùy thuộc trình độ khoa học kỹ thuật công nghệ ứng dụng hiện tại thôi.
Trong datasheet,họ đưa ra nhiều thông số. Tùy theo khả năng , và những thông số họ cần, họ sẽ kiểm tra casc số đo có khớp với số liệu trong datasheet...-
Channel: Hướng dẫn tìm thông tin linh kiện
27-11-2025, 18:00 -
-
bởi kqbn9091Em có mạch AT89s8253 đang cần sửa số serial no của CHIP mà giờ lâu quá rồi không dùng keil nên không biết phải làm sao, trong khi chỉ còn file hex. Mạch nạp thì progris khi viết không sửa được số serial của IC. Rất cần bác nào còn làm về 89...
-
Channel: Vi điều khiển họ 8051
27-11-2025, 11:13 -

Comment