Học Lập Trình Cho 8051 Bằng ASSEMBLY

4 comments
Học Lập Trình Cho 8051 Bằng ASSEMBLY
Như tiêu đề đã đưa ra. Sau đây mình sẽ post một số bài lập trình chỉ dùng ngôn ngữ Assembly
dùng trình dịch Keil uVision4 để lập trình. Dưới đây có một số mẫu bài tập giữa kỳ. Mọi đóng góp các bạn PM phía dưới,!

Đề số 1. Thiết kế mạch và lập trình điều khiển động cơ dùng mạch cầu H, có thay đổi tốc
độ động cơ và đảo chiều, ghép nối 8051

Đề số 2. Thiết kế mạch và lập trình điều khiển động cơ, đảo chiều bằng Relay, có thay đổi
tốc độ động cơ, ghép nối 8051

Đề số 3. Thiết kế mạch và lập trình điều khiển hiển thị 6 LED 7 thanh ghép nối 8051, nội
dung tuỳ ý

Đề số 4. Thiết kế mạch và lập trình điều khiển nếu trời tối thì bật/tắt đèn bằng Relay.

Đề số 5. Thiết kế mạch và lập trình điều khiển đọc ADC 0809, hiển thị lên 8 LED đơn

Đề số 6. Thiết kế mạch và lập trình điều khiển đọc ADC 0809, hiển thị lên LED 7 thanh

Đề số 7. Thiết kế mạch và lập trình điều khiển chuyển đổi tín hiệu số sang tương tự, dùng
DAC0808, đầu ra 0..5v

Đề số 8. Thiết kế mạch và lập trình điều khiển hiển thị LCD với 8051

Đề số 9. Thiết kế mạch và lập trình điều khiển truyền thông giữa máy tính với 8051 qua
chuẩn RS232

Đề số 10. Thiết kế mạch và lập trình điều khiển đọc tín hiệu số 0/12V có cách ly quang,
hiển thị trạng thái ra LED đơn

Đề số 11. Thiết kế mạch và lập trình điều khiển đèn LED đơn, ghép dòng chữ ĐHKTCN

Đề số 12. Thiết kế mạch và lập trình điều khiển cho bộ mở rộng chân ra theo chuẩn nối
tiếp dùng IC 74HC595

Đề số 13. Thiết kế mạch và lập trình điều khiển cho bộ mở rộng chân vào theo chuẩn nối
tiếp dùng 74165

Đề số 14. Thiết kế mạch và lập trình điều khiển cho bộ mở rộng chân ra theo chuẩn song
song dùng IC 74HC573

Sơ Đồ Thuật Toán Khối Chính
Hình ảnh

Sơ Đồ Thuật Toán Khối Ngắt
Hình ảnh



START   BIT      P3^0
STOP   BIT      P3^1
PIN_DK   BIT      P1^0
TANG   BIT      P3^2
GIAM   BIT      P3^3
BIENLUU      DATA   30H
COUNTER      DATA   31H

   ORG    0
   LJMP   MAIN
   ORG      00BH
   LJMP   NGAT_T0
   ORG      030H
MAIN:
   MOV      TMOD,#11H
   MOV      TH0,#0FEH
   MOV      TL0,#00CH
   SETB   EA
   SETB   ET0
   MOV      BIENLUU,#50
   MOV      COUNTER,#0
   CLR      PIN_DK
POLLING:
   JB      START,KTSTOP
   CALL   DELAY50MS
   JNB      START,$
   SETB   TR0
   LJMP   POLLING
KTSTOP:
   JB      STOP,KTTANG
   CALL   DELAY50MS
   JNB      STOP,$
   CLR      PIN_DK
   CLR      TR0
   CALL   DELAY50MS
   LJMP   POLLING
KTTANG:
   JB      TANG,KTGIAM
   CALL   DELAY50MS
   JNB      TANG,$
   INC      BIENLUU
   MOV      A,BIENLUU
   CJNE   A,#101,EXIT
   MOV      A,#100
EXIT:
   LJMP   POLLING
KTGIAM:
   JB      GIAM,EXIT2
   CALL   DELAY50MS
   JNB      GIAM,$
   DEC      BIENLUU
   MOV      A,BIENLUU
   CJNE   A,#-1,EXIT2
   MOV      A,#0
EXIT2:
   LJMP   POLLING

NGAT_T0:
   PUSH   ACC
   CLR      TR0
   MOV      TH0,#0FEH
   MOV      TL0,#00CH
   SETB   TR0
   INC      COUNTER
   MOV      A,COUNTER
   CJNE   A,BIENLUU,JMPSTEP
   CLR      PIN_DK
JMPSTEP:
   CJNE   A,#100,EXIT_ISR
   SETB   PIN_DK
   MOV      COUNTER,#0
EXIT_ISR:
   POP      ACC
   RETI

DELAY50MS:
   MOV      TH1,#03CH
   MOV      TL1,#0B0H
   SETB   TR1
   JNB      TF1,$
   CLR      TF1
   CLR      TR1
RET
END

Mô Phỏng

Hình ảnh

4 nhận xét: