Thứ Bảy, 25 tháng 2, 2012

code ASM mẫu cho 8051 - Tạo xung vuông chính xác theo tỉ lệ

Chương trình ASM tạo xung vuông 70/30 tần số 12Khz, với Thạch anh 12Mhz.
Sử dụng trình dịch Reads51, mô phỏng trên Proteus:


mô phỏng trên proteus



Mã nguồn ASM:



; ------------- READS51 generated header --------------
; module  : C:\Users\Sony\Desktop\xung vuong\xung.asm
; created : 02:05:56, Sunday, February 19, 2012
; -----------------------------------------------------
#include <sfr51.inc>
org 0h
main:
        MOV sp,#60h  
 
MOV TMOD,#01H ; Chon Timer0, che do 1 (16 bit)
                               
                   ; Chu ky xung: 1/12K=83 us
                   ;chu ky may: 12/12M=1 us          
                   ; => 70/30 = 58/25
                   ; 58-8=50    
                   ; 25-10=15    
                 
HERE: SETB P0.1        ;1 Bat P0.1
   MOV TL0, #0CEH ;2 byte thap;CE
MOV TH0, #0FFH ;2 byte cao  
SETB TR0 ;1 Khoi dong Timer0

AGAIN1: JNB TF0, AGAIN1 ;1 Kiem tra co bo dinh thoi TF0
CLR TR0 ;1 Dung bo dinh thoi
CLR TF0    ;1 Xoa co bo dinh thoi cho vong sau


CLR P0.1            ;1 Lat P0.1
   MOV TL0, #0F1H ;2 byte thap;F1
MOV TH0, #0FFH ;2 byte cao
SETB TR0 ;1 Khoi dong Timer0

AGAIN2: JNB TF0, AGAIN2 ;1 Kiem tra co bo dinh thoi TF0
CLR TR0 ;1 Dung bo dinh thoi
CLR TF0    ;1 Xoa co bo dinh thoi cho vong sau

        SJMP    HERE        ;2
                 
end

0 nhận xét:

Đăng nhận xét