找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2094|回复: 7
收起左侧

求大佬帮忙看看,蜂鸣器为什么不响

[复制链接]
ID:900510 发表于 2021-5-31 21:03 | 显示全部楼层 |阅读模式
时间控制器,灯可以亮,时间是正常走的,但就是蜂鸣器不响
WUZY}0Q{@LRM@%6G7F]X9~O.png ZAK7RDKD6WBC_69)J04LZ26.png
  1.                 ORG 0000H
  2.                 LJMP MAIN       
  3.                 ORG 000BH                       
  4.                 LJMP TIME       
  5.                 ORG 0100H
  6.                                        
  7. ;宏定义
  8.         ;键位
  9.                 K0        BIT 20H.0
  10.                 K1        BIT 20H.1
  11.                 K2        BIT 20H.2
  12.                 K3  BIT 20H.3
  13.                 K4        BIT 20H.4
  14.                 ;暂存区
  15.                 ST  DATA 68H
  16.                 MT         DATA 69H
  17.                 HT        DATA 6AH
  18.                 DT         DATA 6BH
  19.                 MOUT DATA 6CH
  20.                 YLT        DATA 6DH
  21.                 YHT DATA 6EH       
  22.                 SPT DATA 21H        ;移位指针
  23.         ;时钟时间寄存区                       
  24.                 S         DATA 60H
  25.                 M         DATA 61H
  26.                 H         DATA 62H
  27.                 D         DATA 63H
  28.                 MOU DATA 64H
  29.                 YL         DATA 65H
  30.                 YH  DATA 66H
  31.                 FLAG DATA 67H
  32.         ;闹钟时间寄存区                       
  33.                 SC                DATA 50H
  34.                 MC                DATA 51H
  35.                 HC                DATA 52H
  36.                 DC                DATA 53H
  37.                 MOUC        DATA 54H
  38.                 YLC                DATA 55H
  39.                 YHC                DATA 56H
  40.                        
  41.                 ;时间显示缓冲区
  42.                 //存放数码管显示16位的数据
  43.                 SDL                DATA 70H
  44.                 SDH         DATA 71H
  45.                 POINT1         DATA 72H
  46.                 MDL         DATA 73H
  47.                 MDH         DATA 74H
  48.                 POINT2         DATA 75H
  49.                 HDL         DATA 76H
  50.                 HDH         DATA 77H
  51.                 DDL         DATA 78H
  52.                 DDH         DATA 79H
  53.                 MOUDL         DATA 7AH
  54.                 MOUDH         DATA 7BH
  55.                 YD0           DATA 7CH
  56.                 YD1                DATA 7DH
  57.                 YD2                DATA 7EH
  58.                 YD3                DATA 7FH
  59.                        
  60. //主程序
  61. MAIN:       
  62.                 MOV TMOD,#01H                ;T0工作方式1
  63.                 MOV TL0,#0B0H
  64.                 MOV TH0,#3CH                ;50ms
  65.                 MOV R7,#20                        ;20*50ms = 1s
  66.                 MOV S,#50
  67.                 MOV M,#59
  68.                 MOV H,#11
  69.                 MOV D,#11
  70.                 MOV MOU,#12
  71.                 MOV YL,#20
  72.                 MOV YH,#20
  73.                 MOV POINT1,#10                ;在TABLE中第10个对应“-”
  74.                 MOV POINT2,#10               
  75.                 MOV SPT,#1                        ;移位指针初始最低位为1
  76.                 SETB K0                               
  77.                 CLR         K1                                ;K1置1 (非暂停状态)
  78.                 CLR  K2                                ;K2置1  默认修改模式
  79.                 CLR  P3.5           ;默认蜂鸣器非工作状态
  80.                 CLR  P3.6           ;默认LED非工作状态
  81.                 SETB ET0                       
  82.                 SETB EA
  83.                 SETB TR0                        ;开启定时器
  84.                
  85. ;不断循环
  86. GO_ON:
  87.                 LCALL CHECK_KEY
  88.                 LCALL DISPLAY
  89.                 LCALL CHECK_CLOCK         ;闹铃
  90.                 LCALL LIGHT_ON       ;开灯
  91.             LCALL LIGHT_OFF      ;关灯
  92.                 SJMP GO_ON           ;跳转循环
  93.                
  94. ;定时子程序
  95. TIME:       
  96.                 MOV TL0,#0B0H
  97.                 MOV TH0,#3CH               
  98.                 DJNZ R7,TIME_END       
  99.                 MOV R7,#20          ;循环20次 定时1s
  100.                 LCALL TIME_INC                ;跳转到计时
  101.                 LCALL SAVE0                        ;跳转到数据转移
  102.                 LCALL SEND_TO_DIS        ;储存时间寄存器中的BCD
  103. TIME_END:
  104.                 RETI                               





  105. ;数码管显示子程序
  106. DISPLAY:
  107.                 MOV R0,#SDL                        ;数据缓存区指针
  108.                 MOV DPTR,#TABLE                ;七段共阴数码管0-9显示
  109.                 MOV R1,#0                ;R1存放表示第几位的数字
  110.                
  111. //P0口实现片选               
  112. NEXT:        MOV P0,R1                        ;显示位连接P0
  113.                 MOV A,R1
  114.                 CLR C                               
  115.                 SUBB A,#8           //实现前8个向HMS跳转,后8个向YMD跳转               
  116.                 JC        HMS                               

  117. //P2口实现年月日
  118. DIAN1:        //先判断是否位第10位,第10位需要有小数点
  119.                 CJNE R1,#10,DIAN2    ;跳转判断DIAN2
  120.                 MOV DPTR,#TABLE1
  121.                 MOV A,@R0                        ;取显示数字
  122.                 MOVC A,@A+DPTR               
  123.                 MOV P2,A                        ;显示年月日
  124.                 LCALL DELAY                        ;调用延时
  125.                 MOV DPTR,#TABLE
  126.                 SJMP GO

  127. DIAN2:        //再判断是否位第12位,第12位也需要有小数点
  128.                 CJNE R1,#12,YMD     ;若不是第10,12位,跳转YMD
  129.                 MOV DPTR,#TABLE1
  130.                 MOV A,@R0                        ;取显示数字
  131.                 MOVC A,@A+DPTR               
  132.                 MOV P2,A                        ;显示年月日
  133.                 LCALL DELAY                        ;调用延时
  134.                 MOV DPTR,#TABLE
  135.                 SJMP GO
  136.                
  137. YMD:    //正常输出没小数点的数字
  138.                 MOV A,@R0                        ;取显示数字
  139.                 MOVC A,@A+DPTR               
  140.                 MOV P2,A                        ;显示年月日
  141.                 LCALL DELAY                        ;调用延时
  142.                 SJMP GO

  143. //P1口实现时分秒
  144. HMS:        MOV A,@R0                        ;取显示数字
  145.                 MOVC A,@A+DPTR               
  146.                 MOV P1,A                        ;显示时分秒
  147.                 LCALL DELAY                        ;调用延时
  148.                 SJMP GO
  149.                
  150. GO:                INC R1                                ;显示位左移
  151.                 INC R0                       
  152.                 CJNE R1,#16,NEXT
  153.                 RET
  154. //共阳极,0亮1灭,共阴极,1亮0灭
  155. TABLE:        DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H        ;七段共阴数码管0-9
  156. TABLE1:        DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,40H        ;带小数点的七段共阴数码管0-9





  157. ;计时程序
  158. TIME_INC:       
  159. SEC:        INC S                                ;+1S
  160.                 MOV R6,S
  161.                 CJNE R6,#60,INC_END ;满60秒进位
  162.                 MOV R6,#0
  163.                 MOV S,R6
  164.                 SJMP MIN
  165. MIN:        INC M                                ;+1M
  166.                 MOV R6,M
  167.                 CJNE R6,#60,INC_END ;满60分钟进位
  168.                 MOV R6,#0
  169.                 MOV M,R6
  170.                 SJMP HOUR
  171. HOUR:        INC H                                ;+1H
  172.                 MOV R6,H
  173.                 CJNE R6,#24,INC_END ;满24小时进位
  174.                 MOV R6,#0
  175.                 MOV H,R6
  176. DAY:        LCALL CHECK_Y       ;检查平闰年
  177.                 MOV R6,FLAG
  178.                 CJNE R6,#1,PING
  179.                 MOV DPTR,#R_YEAR    ;调用闰年月份表
  180.                 SJMP YGO
  181. PING:        MOV DPTR,#P_YEAR        ;调用平年月份表
  182. YGO:         MOV A,MOU
  183.                 MOVC A,@A+DPTR               
  184.                 INC A
  185.                 INC D                                ;+1D                               
  186.                 CJNE A,D,INC_END
  187.                 MOV R6,#1
  188.                 MOV D,R6
  189.                 SJMP MOUN
  190. MOUN:        INC MOU                                ;+1M
  191.                 MOV R6,MOU
  192.                 CJNE R6,#13,INC_END ;第13个月进位
  193.                 MOV R6,#0
  194.                 MOV MOU,R6
  195.                 SJMP YEAR
  196. YEAR:       
  197.                 INC YL               ;+1Y低位
  198.                 MOV R6,YL
  199.                 CJNE R6,#100,INC_END
  200.                 MOV R6,#0
  201.                 MOV YL,R6
  202.                 INC YH               ;+1Y高位
  203.                 MOV R6,YH
  204.                 CJNE R6,#100,INC_END
  205.                 MOV R6,#0
  206.                 MOV YH,R6
  207. INC_END:
  208.     RET  

  209. ;检查平闰年子程序
  210. CHECK_Y:
  211.                 MOV A,YL
  212.                 MOV B,#4
  213.                 DIV AB
  214.                 MOV A,B
  215.                 JNZ SET_FLAG
  216.                 MOV FLAG,#1
  217.                 SJMP CHECK_END
  218. SET_FLAG:
  219.                 MOV FLAG,#0
  220. CHECK_END:       
  221.                 RET

  222. P_YEAR:        DB 0,31,28,31,30,31,30,31,31,30,31,30,31                ;平年月份表
  223. R_YEAR:        DB 0,31,29,31,30,31,30,31,31,30,31,30,31                ;闰年月份表
  224.        
  225. ;将暂存区中的数据转为BCD码存入显示缓冲区
  226. SEND_TO_DIS:                                               
  227.                 MOV A,ST
  228.                 LCALL H2B
  229.                 MOV SDL,R4
  230.                 MOV SDH,R5                                        ;存秒
  231.                
  232.                 MOV A,MT
  233.                 LCALL H2B
  234.                 MOV MDL,R4
  235.                 MOV MDH,R5                                        ;存分
  236.                
  237.                 MOV A,HT
  238.                 LCALL H2B
  239.                 MOV HDL,R4
  240.                 MOV HDH,R5                                        ;存时
  241.                
  242.                 MOV A,DT
  243.                 LCALL H2B
  244.                 MOV DDL,R4
  245.                 MOV DDH,R5                                        ;存天
  246.                
  247.                 MOV A,MOUT
  248.                 LCALL H2B
  249.                 MOV MOUDL,R4
  250.                 MOV MOUDH,R5                                ;存月
  251.                
  252.                 MOV A,YLT
  253.                 LCALL H2B
  254.                 MOV YD0,R4
  255.                 MOV YD1,R5                                        ;存年(低位)
  256.                
  257.                 MOV A,YHT
  258.                 LCALL H2B
  259.                 MOV YD2,R4
  260.                 MOV YD3,R5                                        ;存年(高位)
  261.                 RET
  262.                
  263. ;1ms延时子程序
  264. DELAY:       
  265.                 MOV R3,#4
  266. DEL:        MOV R2,#250
  267.                 DJNZ R2,$
  268.                 DJNZ R3,DEL
  269.                 RET

  270. ;
  271. H2B:        MOV B,#10
  272.                 DIV AB
  273.                 MOV R5,A                        ;个位存到R5
  274.                 MOV R4,B                        ;十位存到R4
  275.                 RET
  276.                
  277. ;查询按键子程序
  278. CHECK_KEY:
  279.                 MOV A,P3                        ;读取P3按键状态
  280.                 CPL A;
  281.                 JZ CHECK_EXIT
  282.                 ACALL KEY_DELAY
  283.                 MOV A,P3                        ;读取P3按键状态 确认是否有键按下
  284.                 CPL A
  285.                 JZ CHECK_EXIT
  286.                 JB ACC.0,ACT0                ;暂停/恢复键
  287.                 JB ACC.1,ACT1                ;闹钟键
  288.                 JB ACC.2,ACT2                ;换位键
  289.                 JB ACC.3,ACT3                ;+
  290.                 JB ACC.4,ACT4                ;-
  291. CHECK_EXIT:       
  292.                 RET
  293.                
  294. ;按键子程序               
  295. ACT:
  296. ACT0:        MOV A,P3                        ;检测按键是否释放
  297.                 JNB ACC.0,ACT0                ;键未释放,则继续等待
  298.                 CPL K0                                ;K0取反,在暂停/继续中转换
  299.                 JB        K0,START
  300.                 CLR TR0                                ;TR0=0,停止计时
  301.                 LJMP EXIT
  302. START:        SETB TR0                        ;TRO=1,开始计时
  303.                 CLR  K1                                ;默认回修改功能
  304.                 RET
  305.                
  306. ;定时/修改按钮
  307. ACT1:        MOV A,P3                        ;检测按键是否释放
  308.                 JNB ACC.1,ACT1                ;键未释放,则继续等待
  309.                 CPL K2                                ;取反闹铃使能开关
  310.                 JB        K0,EXIT                        ;若K0未在暂停状态,则返回
  311.                 CPL K1                                ;K1取反,0为修改,1为闹钟定时
  312.                 RET
  313.                
  314. ;移位按钮
  315. ACT2:       
  316.                 MOV A,P3                        ;检测按键是否释放
  317.                 JNB ACC.2,ACT2                ;键未释放,则继续等待
  318.                 JB        K0,EXIT                        ;若K0未在暂停状态,则返回
  319.                 MOV A,SPT                       
  320.                 RL         A                                ;SPT移动(RL循环左移,RLC带进位左移,RL不带进位)
  321.                 MOV SPT,A       
  322.                 JNB ACC.7,EXIT                ;最多移到01000000
  323.                 MOV SPT,#1                       
  324.                 RET
  325.                
  326. ;加
  327. ACT3:        MOV A,P3                        ;检测按键是否释放
  328.                 JNB ACC.3,ACT3                ;键未释放,则继续等待
  329.                 JB        K0,EXIT                        ;若K0未在暂停状态,则返回
  330.                 JB         K1,CL_INC
  331.                 SJMP UP_INC
  332.                 RET
  333.                
  334. CL_INC:                             ;闹钟
  335.                 LCALL KEY_INC
  336.                 LCALL SEND_TO_DIS
  337.                 LCALL SEND1
  338.                 RET       
  339.                
  340. UP_INC:        LCALL SAVE0
  341.                 LCALL KEY_INC
  342.                 LCALL SEND_TO_DIS
  343.                 LCALL SEND0
  344.                 RET
  345.                
  346. ;减       
  347. ACT4:        MOV A,P3                        ;检测按键是否释放
  348.                 JNB ACC.4,ACT4                ;键未释放,则继续等待
  349.                 JB        K0,EXIT                        ;若K0未在暂停状态,则返回
  350.                 JB         K1,CL_DEC
  351.                 SJMP UP_DEC
  352.                 RET
  353.                
  354. CL_DEC:                            ;闹钟
  355.                 LCALL KEY_DEC
  356.                 LCALL SEND_TO_DIS
  357.                 LCALL SEND1
  358.                 RET       
  359.                
  360. UP_DEC:        LCALL SAVE0
  361.                 LCALL KEY_DEC
  362.                 LCALL SEND_TO_DIS
  363.                 LCALL SEND0
  364.                 RET               
  365.        
  366. EXIT:        RET

  367. KEY_DELAY:
  368.                 MOV R3,#24
  369. KEY_DEL:MOV R2,#0FAH
  370.                 DJNZ R2,$
  371.                 DJNZ R3,KEY_DEL
  372.                 RET


  373. ;数据转移子程序
  374. SAVE0:        MOV ST,S
  375.                 MOV        MT,M       
  376.                 MOV        HT,H
  377.                 MOV        DT,D
  378.                 MOV        MOUT,MOU
  379.                 MOV        YLT,YL
  380.                 MOV        YHT,YH
  381.                 RET               
  382. ;将数据传给计时数据寄存器
  383. SEND0:  MOV S,ST
  384.                 MOV        M,MT       
  385.                 MOV        H,HT
  386.                 MOV        D,DT
  387.                 MOV        MOU,MOUT
  388.                 MOV        YL,YLT
  389.                 MOV        YH,YHT
  390.                 RET
  391. ;将数据传给闹钟数据寄存器
  392. SEND1:        MOV SC,ST
  393.                 MOV        MC,MT       
  394.                 MOV        HC,HT
  395.                 MOV        DC,DT
  396.                 MOV        MOUC,MOUT
  397.                 MOV        YLC,YLT
  398.                 MOV        YHC,YHT
  399.                 RET
  400.                
  401. //按下按键年月日时分秒的加减处理               
  402. ;+按键子程序
  403. KEY_INC:
  404.                 JB         SPT.0,S_INC     ;未按换位键 默认更改秒
  405.                 JB        SPT.1,M_INC     ;按一次更改分
  406.                 JB  SPT.2,H_INC     ;按两次更改小时
  407.                 JB        SPT.3,D_INC     ;按三次更改日
  408.                 JB        SPT.4,MOU_INC   ;按四次更改月
  409.                 JB        SPT.5,YL_INC    ;按五次更改年的个十位
  410.                 JB        SPT.6,YH_INC    ;按六次更改年的百千位
  411.                
  412. S_INC:        INC ST                                ;+1S
  413.                 MOV R6,ST
  414.                 CJNE R6,#60,EXIT_INC
  415.                 MOV R6,#0
  416.                 MOV ST,R6
  417.                 RET
  418.                
  419. M_INC:        INC MT                                ;+1M
  420.                 MOV R6,MT
  421.                 CJNE R6,#60,EXIT_INC
  422.                 MOV R6,#0
  423.                 MOV MT,R6
  424.                 RET
  425.                
  426. H_INC:        INC HT                                ;+1H
  427.                 MOV R6,HT
  428.                 CJNE R6,#24,EXIT_INC
  429.                 MOV R6,#0
  430.                 MOV HT,R6
  431.                 RET
  432.                
  433. D_INC:        LCALL CHECK_Y
  434.                 MOV R6,FLAG
  435.                 CJNE R6,#1,PING1
  436.                 MOV DPTR,#R_YEAR
  437.                 SJMP YGO1
  438. PING1:        MOV DPTR,#P_YEAR        ;暂存本月天数上限
  439. YGO1:         MOV A,MOUT
  440.                 MOVC A,@A+DPTR               
  441.                 INC A
  442.                 INC DT                                ;+1D                               
  443.                 CJNE A,DT,EXIT_INC
  444.                 MOV R6,#1
  445.                 MOV DT,R6
  446.                 RET
  447.                
  448. MOU_INC:       
  449.                 INC MOUT                        ;+1M
  450.                 MOV R6,MOUT
  451.                 CJNE R6,#13,EXIT_INC
  452.                 MOV R6,#1
  453.                 MOV MOUT,R6
  454.                 RET
  455.                
  456. YL_INC:        INC YLT              ;+1Y低位
  457.                 MOV R6,YLT
  458.                 CJNE R6,#100,EXIT_INC
  459.                 MOV R6,#0
  460.                 MOV YLT,R6
  461.                 RET
  462.                
  463. YH_INC:        INC YHT               ;+1Y高位
  464.                 MOV R6,YHT
  465.                 CJNE R6,#100,EXIT_INC
  466.                 MOV R6,#0
  467.                 MOV YHT,R6
  468.                 RET
  469.                
  470. EXIT_INC:
  471.                 RET
  472.                
  473. ;-按键子程序
  474. KEY_DEC:
  475.                 //根据移位指针SPT哪一位是1
  476.                 JB         SPT.0,S_DEC       ;未按换位键 默认更改秒
  477.                 JB        SPT.1,M_DEC       ;按一次更改分
  478.                 JB  SPT.2,H_DEC       ;按两次更改小时
  479.                 JB        SPT.3,D_DEC       ;按三次更改日
  480.                 JB        SPT.4,MOU_DEC     ;按四次更改月
  481.                 JB        SPT.5,YL_DEC      ;按五次更改年的个十位
  482.                 JB        SPT.6,YH_DEC      ;按六次更改年的百千位

  483. S_DEC:
  484.                 DEC ST                ;-1s
  485.                 MOV R6,ST
  486.                 CJNE R6,#0FFH,EXIT_DEC
  487.                 MOV R6,#59
  488.                 MOV ST,R6
  489.                 RET
  490. M_DEC:
  491.                 DEC MT                ;-1m
  492.                 MOV R6,MT
  493.                 CJNE R6,#0FFH,EXIT_DEC
  494.                 MOV R6,#59
  495.                 MOV MT,R6
  496.                 RET
  497. H_DEC:               
  498.                 DEC HT                ;-1h
  499.                 MOV R6,HT
  500.                 CJNE R6,#0FFH,EXIT_DEC
  501.                 MOV R6,#23
  502.                 MOV HT,R6
  503.                 RET
  504.                
  505. D_DEC:        LCALL CHECK_Y
  506.                 MOV R6,FLAG
  507.                 CJNE R6,#1,PING2
  508.                 MOV DPTR,#R_YEAR
  509.                 SJMP YGO2
  510. PING2:        MOV DPTR,#P_YEAR       
  511. YGO2:         MOV A,MOUT
  512.                 MOVC A,@A+DPTR                ;暂存本月天数上限
  513.                 DEC         DT                                ;-1D
  514.                 MOV R6,DT
  515.                 CJNE R6,#0,EXIT_INC
  516.                 MOV R6,A
  517.                 MOV DT,R6
  518.                 RET
  519.                
  520. MOU_DEC:
  521.                 DEC MOUT             ;-1MO
  522.                 MOV R6,MOUT
  523.                 CJNE R6,#0,EXIT_DEC
  524.                 MOV R6,#12
  525.                 MOV MOUT,R6
  526.                 RET
  527. YL_DEC:                            
  528.                 DEC YLT              ;-1Y(低位)
  529.                 MOV R6,YLT
  530.                 CJNE R6,#0FFH,EXIT_DEC
  531.                 MOV R6,#99
  532.                 MOV YLT,R6
  533.                 RET
  534. YH_DEC:       
  535.                 DEC YHT               ;-1Y(低位)
  536.                 MOV R6,YHT
  537.                 CJNE R6,#0FFH,EXIT_DEC
  538.                 MOV R6,#99
  539.                 MOV YHT,R6
  540.                 RET

  541. EXIT_DEC:
  542.                 RET
  543.                
  544. ;闹钟响铃子程序
  545. CHECK_CLOCK:                   ;判断是否响铃
  546.                 MOV R0,#M                       
  547.                 MOV R1,#MC
  548.                 MOV R2,#5
  549. CHECK_NEXT:                        ;
  550.                 MOV        A,@R0
  551.                 SUBB A,@R1                           ;判断当前时刻是否是闹铃时刻
  552.                 CLR C
  553.                 JNZ        CLOC_EXIT
  554.                 INC R0
  555.                 INC R1
  556.                 DJNZ R2,CHECK_NEXT
  557.                 LCALL TIMEOUT                        ;分 时 日 月 年均满足则调用响铃程序
  558.                 RET
  559.                
  560. CLOC_EXIT:                  
  561.                 CLR P3.5
  562.                 RET
  563. ;响铃程序               
  564. TIMEOUT:                                       
  565.                 JNB K2,BUZ_END          ;按下按键停止响铃
  566. BUZ:        SETB P3.5           
  567.                 LCALL BUZ_DELAY
  568.                
  569. BUZ_DELAY:                      ;延时
  570.                 MOV R3,#250
  571. BUZ_T:        MOV R2,#40
  572.                 DJNZ R2,$
  573.                 DJNZ R3,BUZ_T
  574.                 RET
  575. BUZ_END:       
  576.                 CLR P3.5
  577.                 RET
  578.                
  579. ;亮灯子程序
  580. LIGHT_ON:
  581.     MOV A,#12
  582.         CJNE A,H,TTE3
  583.         MOV A,#00
  584.         CJNE A,M,TTE3
  585.         MOV A,#00
  586.         CJNE A,S,TTE3
  587.         SETB P3.6                   ;从12:00:00开始亮
  588. TTE3:       
  589.    RET
  590. LIGHT_OFF:
  591.     MOV A,#23;CMP_LED_START
  592.         CJNE A,H,TTE4
  593.         MOV A,#00
  594.         CJNE A,M,TTE4
  595.         MOV A,#00
  596.         CJNE A,S,TTE4
  597.         CLR P3.6                    ;到21:00:00关灯
  598. TTE4:
  599. RET


  600.        
  601.                 END
  602. R_YEAR:        DB 0,31,29,31,30,31,30,31,31,30,31,30,31                ;

  603. TABLE:        DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H        ;
  604.        
  605.                 END
复制代码

时间控制器.docx

22.58 KB, 下载次数: 1

回复

使用道具 举报

ID:414556 发表于 2021-5-31 22:52 | 显示全部楼层
看你的程序用的是有源蜂鸣器,你的硬件是不是焊了个无源的上去。
回复

使用道具 举报

ID:900510 发表于 2021-5-31 23:00 | 显示全部楼层
只是仿真,没有用硬件,仿真时蜂鸣器不响,用的是有源蜂鸣器
回复

使用道具 举报

ID:414556 发表于 2021-5-31 23:06 | 显示全部楼层
仿真不响那就是条件没有达到,检查前面的判断数据。
回复

使用道具 举报

ID:930352 发表于 2021-5-31 23:46 | 显示全部楼层
为啥没看到你蜂鸣器程序呢?一般蜂鸣器应该在中断里面去做啊,你这蜂鸣器是有源还是无源也没说
回复

使用道具 举报

ID:900510 发表于 2021-6-1 18:05 | 显示全部楼层
还是没有找到问题
回复

使用道具 举报

ID:844772 发表于 2021-6-1 20:37 | 显示全部楼层
你按键定义有问题啊,你应该各个按键都不好使才对。我看不清你对应哪个端口,假设k1在P2.1 应该: k1 BIT P2.1;你现在定义到RAM了,又没改值,默认的值就是0,在响铃入口: JNB K2,BUZ_END          ;按下按键停止响铃自动就跳导BUZ_END,所以就不响了。不过我很久很久没用过汇编了,可能说的不对。
回复

使用道具 举报

ID:900510 发表于 2021-6-1 23:56 | 显示全部楼层
glinfei 发表于 2021-6-1 20:37
你按键定义有问题啊,你应该各个按键都不好使才对。我看不清你对应哪个端口,假设k1在P2.1 应该: k1 BIT P ...

谢谢大佬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表