We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
i am a noob and learning 8051 coding. i want to know how can i use PWM to write a speaker which can emit diff sound (do,re,mi,etc.) by using 2 pins only. thanks.
Zeusti,
I'll make no comments about your comments, but I noticed a little error in your code:
;=================================================== ; ; Name : DoNote ; ; Purpose : Produce a sound on P1.0 ; ; Parameters : int Cycles (R6:R7) ; unsigned char Delay (R5) ; ; Result : void ; ;=================================================== ?PR?DoNote?sound segment code rseg ?PR?DoNote?sound DoNote: clr a ; Get 0-'Cycles' clr c ; Bcoz code uses up counter subb a,r7 ; And store to dptr mov dpl,a clr a subb a,r6 mov dph,a ; mov dpl,a <<< I think this should not be here Dn_1: cpl p1.0 ; Toggle the port pin mov a,r5 ; Get 'Delay' mov r2,a ; Loop for 'Delay' djnz R2,$ inc dptr ; Update cycle counter mov a,dpl ; While count is not overflowed or a,dph jnz Dn_1 ; Loop ret
HI.
you are write. sorry.
so so many things to do here!
Always yo're freind.
Zeusti.
thanks all very much. i can now handle the software part of my purpose, but for the hardware, i've got some difficulty. i dont know how to amplify the sound of the 8ohm speaker. should i use any op-amp? or it can be done by varying the voltage?
This has nothing to do with the 8051 or Keil tools.
You need some books on basic electronics!
eg, www.kpsec.freeuk.com/trancirc.htm
the page from master neil is good.
look at the para "Choosing a suitable NPN transistor"
u can simly have the speeker for the load.