欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 蜂鳴器不響,是單片機程序的問題還是接錯了? [打印本頁]

作者: 單片機新手小白    時間: 2021-6-10 19:38
標題: 蜂鳴器不響,是單片機程序的問題還是接錯了?
現在程序在仿真上可以正常運行,但是加上蜂鳴器之后并不響,請問是哪的原因?確實不知道該怎么修改了。。。

程序如下
  1. LED_0    EQU    30H
  2. LED_1    EQU    31H
  3. LED_2    EQU    32H
  4. LED_3    EQU    33H
  5. BUFFER  EQU    34H           ;顯示緩存
  6. ADC      EQU    35H
  7. TCNTA    EQU    36H
  8. TCNTB    EQU    37H
  9. H_TEMP   EQU    38H          ;液位上限
  10. L_TEMP   EQU    39H          ;液位下限
  11. FLAG     BIT    00H
  12. H_ALM    BIT    P3.0
  13. L_ALM    BIT    P3.1
  14. SOUND    BIT    P3.7
  15. CLOCK    BIT    P2.4
  16. ST        BIT    P2.5
  17. EOC      BIT    P2.6
  18. OE       BIT    P2.7
  19.           ORG    00H
  20.           SJMP   START
  21.           ORG    0BH
  22.           LJMP   INT_T0
  23.           ORG    1BH
  24.           LJMP   INT_T1
  25. START:   MOV    LED_0,#00H
  26.           MOV    LED_1,#00H
  27.           MOV    LED_2,#00H
  28.           MOV    DPTR,#TABLE     ;送段碼表首地址
  29.           MOV    H_TEMP,#153     ;204/255=0.8  高于80%報警
  30.          MOV    L_TEMP,#77       ;77/255=0.3   低于30%報警
  31.          MOV    TMOD,#12H        ;開中斷
  32.          MOV    TH0,#245            
  33.          MOV    TL0,#0
  34.          MOV    IE,#8AH              
  35.          CLR    C
  36.          SETB   TR0        ;為ADC0808提供時鐘
  37. WAIT:   SETB   H_ALM
  38.          SETB   L_ALM
  39.          CLR    ST
  40.          SETB   ST
  41.          CLR    ST          ;啟動轉換
  42.          JNB    EOC,[        DISCUZ_CODE_1        ]nbsp;      ;等待輸出結果
  43.          SETB   OE         ;允許輸出
  44.          MOV    ADC,P1     ;讀取A/D轉換結果
  45.          CLR    OE         ;關閉輸出
  46.          MOV    A,ADC       ;將A/D轉換結果轉換成BCD碼
  47.          SUBB   A,L_TEMP       ;判斷是否低于下限
  48.          JC     LALM
  49.          MOV    A,H_TEMP
  50.          MOV    R0,ADC
  51.          SUBB   A,R0           ;判斷是否高于上限
  52.          JC     HALM
  53.          CLR    TR1
  54.          LJMP   PROC
  55. LALM:   CLR    L_ALM          ;低位報警
  56.          SETB   TR1
  57.          CLR    FLAG
  58.          LJMP   PROC
  59. HALM:   CLR    H_ALM          ;高位報警
  60.          SETB   TR1
  61.          SETB   FLAG
  62.          LJMP   PROC
  63. PROC:   MOV    A,ADC         ;數值轉換
  64.          MOV    B,#51
  65.          DIV    AB
  66.          MOV    LED_2,A
  67.          MOV    A,B
  68.          MOV    B,#10
  69.          DIV    AB
  70.          MOV    LED_1,A
  71.          MOV    LED_0,B
  72.          LCALL  DISP            ;顯示A/D轉換結果
  73.          SJMP   WAIT
  74. INT_T0:  CPL    CLOCK          ;提供ADC0808時鐘
  75.          RETI
  76. INT_T1:  CPL    SOUND
  77.          INC    TCNTA
  78.          MOV    A,TCNTA
  79.          JB     FLAG,I1         ;判斷是低位報警還是高位報警
  80.          CJNE   A,#30,RETUNE     ;低位報警聲
  81.          SJMP   I2
  82.       I1: CJNE   A,#20,RETUNE       ;高位報警聲
  83.       I2: MOV    TCNTA,#0
  84.          INC    TCNTB
  85.          MOV    A,TCNTB
  86.          CJNE   A,#25,RETUNE
  87.          MOV    TCNTA,#0
  88.          MOV    TCNTB,#0
  89.          LCALL  DELAY2
  90. RETUNE:  RETI
  91. DISP:    MOV    A,LED_0         ;數碼管顯示子程序
  92.          MOVC   A,@A+DPTR       ;將字段碼轉換顯示碼
  93.          CLR    P2.3
  94.          MOV    P0,A
  95.          LCALL  DELAY
  96.          SETB   P2.3
  97.          MOV    A,LED_1
  98.          MOVC   A,@A+DPTR
  99.          CLR    P2.2
  100.          MOV    P0,A
  101.          LCALL  DELAY
  102.          SETB   P2.2
  103.          MOV    A,LED_2
  104.          MOVC   A,@A+DPTR
  105. ORL    A,#80H                            ;顯示小數點
  106.               MOV    BUFFER+2,A       ;送顯示緩存
  107.          CLR    P2.1
  108.          MOV    P0,A
  109.          LCALL  DELAY
  110.          SETB   P2.1
  111.          RET
  112. DELAY:  MOV    R6,#10          ;延時5ms
  113. D1:      MOV    R7,#250
  114.          DJNZ   R7,$
  115.          DJNZ   R6,D1
  116.          RET
  117. DELAY2: MOV    R5,#20
  118. D2:      MOV    R6,#20
  119. D3:      MOV    R7,#250
  120.          DJNZ   R7,$
  121.          DJNZ   R6,D3
  122.          DJNZ   R5,D2
  123.          RET
  124. TABLE:  DB     3FH,06H,5BH,4FH,66H    ;0,1,2,3,4 共陰極接法
  125.          DB     6DH,7DH,07H,7FH,6FH     ;5,6,7,8,9,
  126.          END
復制代碼



作者: 戰鋰    時間: 2021-6-10 21:58
三極管有NPN和PNP之分,用錯了就不響
作者: glinfei    時間: 2021-6-10 22:45
我覺得不僅不會響,也不會顯示才對啊?1.數碼管你說是共陰的,但三極管選錯了,反正是模擬不如不要三極管算了;2.你程序按3.7接嗡鳴器的,且是有源才行;3.就是程序問題太多,主要是沒按手冊讀adc8080,不知道模擬能行不,反正實際是不行的。
作者: Lesliec    時間: 2021-6-10 23:09
按照你的電路,你的三極管應該用NPN型三極管,接法不變(B接I/O口,E接地,C接數碼管)
作者: hcety    時間: 2021-6-10 23:21
三極管有NPN和PNP之分的。三極管應該用NPN。改一下就行

作者: 單片機新手小白    時間: 2021-6-11 08:50
glinfei 發表于 2021-6-10 22:45
我覺得不僅不會響,也不會顯示才對啊?1.數碼管你說是共陰的,但三極管選錯了,反正是模擬不如不要三極管算 ...

感謝回復!在仿真上程序可以運行的,蜂鳴器不響,按大家的建議改過來了,但是最后是改了蜂鳴器的參數試驗成功的
作者: TTQ001    時間: 2021-6-11 09:51
蜂鳴器不響,可能是接線不良、蜂鳴器不良或程序錯誤。
作者: yzwzfyz    時間: 2021-6-11 10:54
程序太長,兩條指令即可驗證:
SETB   P3.1
……
CLR     P3.1
改改的R9的阻值試試(0.56K)。
作者: rayin    時間: 2021-6-12 16:55
蜂鳴器想不想,要看蜂鳴器的類型,兩種:
一種是內部有振蕩電路的,通電就會發聲。只需要控制PNP或者PNP的三極管一直導通就發出響聲了。這種只能發出固定頻率的聲音,要播放歌曲,就勉為其難了。

一種是內部沒有振蕩電路,需要給PWM,或者如1khz的脈沖電流。  只控制PNP或者PNP的三極管一直導通就不發出響聲了,優點是可以播放歌曲,缺點是驅動起來稍微復雜一點。
作者: 語.    時間: 2021-6-14 22:42
可以用8550三極管
作者: 自由學    時間: 2021-6-15 08:28
當小燈滅的時候是不是回響?如果是的話就是接線有問題,可以在R19左邊加個非門,當小燈亮單片機11引腳是低電平而為了讓三極管導通需要接高電平。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1