Thứ Tư, 24 tháng 10, 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ã 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

Không có nhận xét nào:

DBS M05479
Quang Cao