Thông báo

Collapse
No announcement yet.

Cho e hỏi chút về đoạn code này trong giao tiếp nối tiếp dùng 2 con 89c51

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Cho e hỏi chút về đoạn code này trong giao tiếp nối tiếp dùng 2 con 89c51

    NAME SAMPLE

    ; Khai báo chuong trinh con
    PUBLIC TXTBIT

    PROG SEGMENT CODE ; Khai bao vung nho ma lenh
    CONST SEGMENT CODE ; Khai bao hang so trong vung ma lenh
    VAR1 SEGMENT DATA ; Khai bao vung nho cho bien
    BITVAR SEGMENT BIT ; Khai bao cac bien dang bit
    ----------------------
    khai bao stack
    --------------------
    STACK SEGMENT IDATA ; Khai bao ngan xep (thuong dung cho ngat, chuong trinh con)
    RSEG STACK ; Chon DATA segment(chon STACK)
    DS 10H ; Ngan xep chua duoc 16 bytes
    ----------------------------------------------------
    bang khoi dong va vecto ngat
    ----------------------------------------------------
    CSEG AT 0
    USING 0

    JMP START ;chuyen lenh dieu khien toi START(Bit khoi dau trong mode2)
    RSEG PROG ;chon CODE segment
    START: MOV SP,#STACK-1 ;khoi tao bit bat dau start
    --------------------------------------------
    code chuong trinh chinh
    -------------------------------------------
    ; Khoi tao timer cho UART
    MOV TMOD,#20H ;C/T = 0, Mode = 2(do toc do truyen thap nen de 2 bit dung de du thoi gian cho vc nhan tin hieu)
    MOV TH1,#0FDH ;Tao toc do baud cho timer 1(toc do truyen tin)
    SETB TR1 ;TR1=1 khoi dong timer1
    MOV SCON,#52H ;gan gia tri 52H cho thanh ghi dieu khien cong noi tiep SCON(8bit tin,2 bit dung)

    ; Khoi tao LCD
    MOV A,#38H ;init. LCD 2 do`ng, ma tra^.n 5x7 (LCD dung mode 8bit)
    ACALL LENH ;xuat lenh
    MOV A,#0EH ;hien thi man hinh va con tro
    ACALL LENH
    MOV A,#01H ;clear LCD
    ACALL LENH
    MOV A,#06H ;con tro man hinh di.ch pha?i
    ACALL LENH
    MOV A,#80H ;chuye^?n con tro man hinh dde^'n line 1, pos. 6
    ACALL LENH
    ; clear TXTBIT to read form CODE-Memory
    CLR TXTBIT
    MOV A,#255
    MOV P2,A

    LAP:
    ;----Quet ban phim
    QUET_PHIM:
    MOV A,#255
    MOV P1,A
    PHIM_1:
    CLR P1.4
    JB P1.3, PHIM_4
    MOV A, #14
    MOV PHIM_AN, A
    SJMP HIEN
    PHIM_4:
    JB P1.2, PHIM_7
    MOV A,#17
    MOV PHIM_AN, A
    SJMP HIEN
    PHIM_7:
    JB P1.1,PHIM_SAO
    MOV A,#20
    MOV PHIM_AN, A
    SJMP HIEN
    PHIM_SAO:
    JB P1.0,PHIM_2
    MOV A,#7
    MOV PHIM_AN, A
    SJMP HIEN
    PHIM_2:
    CLR P1.5
    SETB P1.4
    JB P1.3, PHIM_5
    MOV A,#15
    MOV PHIM_AN,A
    SJMP HIEN
    PHIM_5:
    JB P1.2, PHIM_8
    MOV A,#18
    MOV PHIM_AN,A
    SJMP HIEN
    PHIM_8:
    JB P1.1, PHIM_0
    MOV A,#21
    MOV PHIM_AN,A
    SJMP HIEN
    PHIM_0:
    JB P1.0, PHIM_3
    MOV A,#13
    MOV PHIM_AN,A
    SJMP HIEN
    PHIM_3:
    CLR P1.6
    SETB P1.5
    JB P1.3, PHIM_6
    MOV A,#16
    MOV PHIM_AN,A
    SJMP HIEN
    PHIM_6:
    JB P1.2, PHIM_9
    MOV A,#19
    MOV PHIM_AN,A
    SJMP HIEN
    PHIM_9:
    JB P1.1, PHIM_THANG
    MOV A,#22
    MOV PHIM_AN,A
    SJMP HIEN
    PHIM_THANG:
    JB P1.0,XOA_NUT
    MOV A,#0
    MOV PHIM_AN, A
    SJMP HIEN
    XOA_NUT:
    MOV A,#10
    MOV PHIM_AN, A

    ;---------HIEN THI.
    HIEN:
    ACALL DELAY100ms
    MOV A,PHIM_AN
    ADD A,#35
    CJNE A,#45, HIEN_THI
    SJMP NHAN
    HIEN_THI:
    ; Di chuyen ve dau hang 1
    MOV A, #80H
    ACALL LENH
    MOV A,PHIM_AN
    ADD A,#35
    ACALL DULIEU

    TRUYEN:
    MOV A,PHIM_AN
    ADD A,#35
    ACALL SEND

    NHAN:
    MOV A, #0
    ACALL RECV
    MOV PHIM_NHAN, A
    CJNE A, #0, HIEN_THI_NHAN
    LJMP LAP
    HIEN_THI_NHAN:
    MOV A, #0C0h
    ACALL LENH
    MOV A,PHIM_NHAN
    ACALL DULIEU
    LJMP LAP

    ;------Chuong trinh con
    LENH:
    ACALL READY ;is LCD ready?
    MOV P2,A ;xua^'t ma~ le^.nh
    CLR P0.0 ;RS=0: le^.nh
    CLR P0.1 ;R/W=0 -> ghi ra LCD
    SETB P0.2 ;E=1 -> ta.o ca.nh xuo^'ng
    CLR P0.2 ;E=0 ,cho^'t
    RET
    DULIEU:
    ACALL READY ;is LCD ready?
    MOV P2,A ;xua^'t du+~ lie^.u
    SETB P0.0 ;RS=1 for data
    CLR P0.1 ;R/W=0 to write to LCD
    SETB P0.2 ;E=1 -> ta.o ca.nh xuo^'ng
    CLR P0.2 ;E=0, cho^'t
    RET
    ; kie^?m tra co+` BF
    READY: SETB P2.7 ;P1.7: input
    CLR P0.0 ;RS=0: thanh ghi le^.nh
    SETB P0.1 ;R/W=1: ddo.c
    BACK: CLR P0.2 ;E=0 -> ta.o ca.nh le^n
    SETB P0.2 ;E=1
    JB P2.7,BACK ;cho+` busy flag=0
    RET
    DELAY100ms: MOV R2,#150
    DL5: MOV R1,#250
    DL4: NOP
    NOP
    DJNZ R1,DL4
    DJNZ R2,DL5
    RET
    SEND:
    JNB TI,$
    CLR TI
    MOV SBUF,A
    RET
    RECV:
    MOV A, #0
    JNB RI, RETURN
    MOV A,SBUF
    CLR RI
    RETURN: RET

    RSEG CONST
    TXT: DB 'TEST PROGRAM',00H
    RSEG VAR1
    PHIM_AN: DS 01H // Do dai 33 byte
    SUM: DS 01H
    PHIM_NHAN: DS 01H
    BIEN_GHI: DS 01H

    RSEG BITVAR
    TXTBIT: DBIT 1

    END
    Các cao thủ cho e hỏi ý nghĩa của mấy cái chỗ e in đậm,có cần thiết phải có cái XÓA NÚT hay không,tại sao đã kiểm tra cờ bf mà vẫn phải có trễ?tại sao lại cộng 35,tại sao DS gán bằng 01H,DBIT 1 là gì,và ý nghĩa của TXTBIT.CẢm ơn các bạn:beauty::beauty::beauty:

Về tác giả

Collapse

tnt205 Tìm hiểu thêm về tnt205

Bài viết mới nhất

Collapse

  • Andrea14
    Vấn đề về tốc độ quay
    bởi Andrea14
    Chào mọi người,

    Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
    12-12-2025, 12:42
  • bqviet
    Trả lời cho Đấu tắt điện cho máy tính bảng
    bởi bqviet
    Bqv 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.
    06-12-2025, 17:17
  • nguyendinhvan
    Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
    bởi nguyendinhvan
    Theo 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...
    05-12-2025, 19:59
Đang tải...
X