- Tạo xung vuông, có tần số phần cao bằng phần thấp, biết tần số của vđk là 10Khz, xtal=12Mhz
- Mạch mô phỏng:
Linh kiện cơ bản: Cap, At89c51,crystal....
3. Code ASm và giải thích:
; tao xung vuong vdk , cao bang thap, biet tan so fvdk=10khz,fxtal=12khz, chan p1.1
org 00h
main:
setb p1.0
call delay
cpl p1.0
call delay
jmp main
delay: ; lay gia tri nap fvdk/12 =12/12=1; lay T=1/10khz=0,1ms = 100us,xung bang nhau 100us/2 =50us
mov tmod,#01h ; timer 0, che do 1
mov th0,#0ffh ; gia tri nap = 65536-50 =65486(d)=ffce (h)
mov tl0,#0ceh
setb tr0
jnb tf0,$
clr tf0
clr tr0
ret
end
4. Tạo xung vuông có tỷ lệ phần cao và thấp khác nhau ( cao x%, thấp y%)
Code:
; tao xung vuong vdk , cao bang thap, biet tan so fvdk=10khz,fxtal=12khz, chan p1.1
org 00h
main:
setb p1.0
call delay
call delay
call delay
cpl p1.0
call delay
call delay
jmp main
delay: ; lay gia tri nap fvdk/12 =12/12=1; lay T=1/10khz=0,1ms = 100us,xung 60 cao 40% thap la 20us
mov tmod,#01h ; timer 0, che do 1
mov th0,#0ffh ; gia tri nap = 65536-20 =65516(d)= ffec
mov tl0,#0ech
setb tr0
jnb tf0,$
clr tf0
clr tr0
ret
end
5. tạo xung 40% /60% trên p1.1 và 60%/40% chân p1.0
; tao xung vuong vdk , cao bang thap, biet tan so fvdk=10khz,fxtal=12khz, chan p1.0 60%,40%,
;chan p1.1 40%,60% (cao thap
org 00h
main:
setb p1.0 ; muc cao
call delay
call delay
setb p1.1 ;muc cao
call delay
cpl p1.0 ; muc thap
call delay
call delay
cpl p1.1 ;muc thap
jmp main
delay: ; lay gia tri nap fvdk/12 =12/12=1; lay T=1/10khz=0,1ms = 100us,xung 60 cao 40% thap la 20us
mov tmod,#01h ; timer 0, che do 1
mov th0,#0ffh ; gia tri nap = 65536-20 =65516(d)= ffec
mov tl0,#0ech
setb tr0
jnb tf0,$
clr tf0
clr tr0
ret
end
Chúc các bạn thành công!
Có gì không hiểu vui lòng coment bên dưới, mình sẽ giải đáp
Có gì không hiểu vui lòng coment bên dưới, mình sẽ giải đáp
Bình Luận
2 Komentar untuk "Hướng dẫn giải bài tập tạo xung vuông trên vi điều khiển 8051"
: Viết chương trình tạo xung vuông tại P1.0 biết:
a. Chu kỳ xung là 10ms và hệ số đầy là 50% ( thời gian mức cao chiếm 50%
chu kỳ) biết fcrystal = 12Mhz
b. Chu kỳ xung là 1s và hệ số đầy là 70% ( thời gian mức cao chiếm 70% chu
kỳ) biết fcrystal = 6Mhz
Tạo 2 xung 4Hz và 12Hz với vi điều khiển AT89C51, trong đó: xung 4Hz có duty 75% và xung 12Hz có duty
50%. Lập trình ASM chạy mô phỏng trên Proteus. Tự chọn các thông số của linh kiện.Bài này làm như nào ạ