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 Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi mèomướpDạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
-
Channel: Điện thanh
hôm nay, 11:44 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi viettinhNó không phải cái loa rời. Chả nhẽ đèo thêm 2 con loa tép ngoài thì kỳ lắm....
-
Channel: Điện thanh
hôm nay, 09:45 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi mèomướpDạ chú mua thêm loa tép nối tiếp qua con tụ rồi mắc vào cùng loa trung là được ạ...
-
Channel: Điện thanh
Hôm qua, 19:53 -
-
Trả lời cho Tìm datasheet linh kiện điện tử.bởi mèomướpDạ cháu hỏi bạn cháu thì bạn ấy trả lời như thế này ạ. Cháu cũng hông bít có đúng hông nữa ạ
Linh kiện điện tử với mã "943BA" và "W58BAL" là một loại cầu chì tự động (circuit breaker) do TE Connectivity sản...-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 19:50 -
-
bởi viettinhChuyện là mình mới đập hộp con loa kéo Sony SRS-XV900. Do khu vực mình k có sẵn hàng để trải nghiệm thực tế nên chỉ tham khảo các kênh revew online.
Mua về sử dụng thì thấy hơi buồn về chất âm, Mở max k to bằng cái loa kéo china, bass...-
Channel: Điện thanh
Hôm qua, 17:18 -
-
Trả lời cho Tìm datasheet linh kiện điện tử.bởi yeurap7em tra google cũng ko có...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 16:37 -
-
Trả lời cho Trình điều khiển bước rời rạcbởi mèomướpDạ nếu chú đã viết được chương trình cho vđk thì thêm 1 chương trình con chạy động cơ bước chỉ đơn giản là copy phát. Về phần cứng thì vài con cách ly quang, vài con mosfet thôi ạ. thực sự là dễ dàng như bài tập bình thường của sinh viên thôi ạ...
-
Channel: Máy công cụ
06-01-2025, 12:55 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi Minhdai95vâng mình cảm ơn mn đã góp ý
-
Channel: Điện tử công suất
06-01-2025, 11:30 -
-
bởi tom22Xin chào
Tôi có một dự án trong đó một động cơ bước tích hợp được điều khiển bởi một bộ vi điều khiển.
Nhưng tôi thực sự không thích trả tiền cho trình điều khiển bước, khi tôi có một bộ vi điều khiển có khả năng thực...-
Channel: Máy công cụ
06-01-2025, 10:54 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ chú chủ thớt có thời gian và đam mê thì cứ từ từ ngâm cứu đi ạ đừng nghe chú Chú bq... dọa mà sợ ạ. Cái nguồn nhìn cũng lởm có khi hông bằng cái máy hàn tàu của chị hàng xóm hôm nọ tháo ra sửa với chú thợ thông ống nước suốt đêm mới xong. Chú ý an toàn xíu là được ạ...
-
Channel: Điện tử công suất
05-01-2025, 15:40 -
Comment