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
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
Phạm Văn Ngọc Anh- 01644326695