微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 二极管不亮的问题。。

二极管不亮的问题。。

时间:10-02 整理:3721RD 点击:
$INCLUDE(c8051f040.inc)
ORG 0000H
START:CLR P1.0
      LCALL DELAY
      SETB P1.0
      LCALL DELAY
      LJMP START
      DELAY: MOV R5,#20
         D1:MOV R6,#20
  D2:MOV R7,#248
  DJNZ R7,$
  DJNZ R6,D2
  DJNZ R5,D1
  RET
END

p1.0口接470欧姆电阻,然后接了一个二极管,根据以上程序,二极管应该一亮一灭,,为什么没有反应。
我刚学,。

看一下电路有没有问题,如果是高电平亮,那直接在IO口上接上3.3V的电压,看亮不,如果是低,那就直接在IO接上地;硬件与元件上没有问题再检查软件问题,一一排除

软件上,直接先给高电平,看灯是否会亮,从简单的先来

p1.0口接的电阻,然后二极管,然后是5V电压,给低电平亮的,。我在软件上写CLR p1.0了,灯还是不亮。而且那个闪烁的程序,没有输出。是程序的问题么。

你直接用电表测一下IO口,看是不是低电平

   大神。我知道怎么回事了。我用的C8051F040。要初始化后才能用。我没有初始化。
初始化后好用了。
今天我把P5.7口放一个摁键,程序改成这样
START:JB P5.7,$
        CLR P1.0
        LCALL DELAY
        SETB P1.0
        LCALL DELAY
摁键根本不起作用..还是一直响。不是摁下摁键低电平才有效才响么。

什么响?如果P5.7一直是高的话,那会一直执行JB P5.7,$这条语句的,你自己再查一下

是这样的,TURN_ON:JB P5.7,$
        CLR P1.0
        LCALL DELAY
        SETB P1.0
        LCALL DELAY
LJMP TURN_ON
DELAY: MOV R6,#20
  D1:   MOV R7,#70
        DJNZ R7,$
        DJNZ R6,D1
         
  RET
用这个程序,P5.7口接摁键,P1.0口接无源蜂鸣器,只要摁键摁住,给低电平,蜂鸣器就要一直响,否则不响
但是 JB P5.7,$根本不起作用,程序写进去后蜂鸣器就开始响,摁键还没摁

按你的情况来看,你先测一下在没有按下按键时,P1.0口的电平,看是否为低?可能你的P1.0在没有操作的情况下都是低电平的

我在开始的时候 设置SETB P1.0   
  ORG 009BH
   SETB P1.0
TURN_ON:JB P5.7,$
        CLR P1.0
        LCALL DELAY
        SETB P1.0
        LCALL DELAY
LJMP TURN_ON
DELAY: MOV R6,#20
  D1:   MOV R7,#70
        DJNZ R7,$
        DJNZ R6,D1
         
  RET
END
就是这样。一直响。P1.0设置高电平也不行

不是的,我想表达的意思是,不是你程序是不是拉低了,面是你那个IO口是不是本身就是低电平来的,比如那个IO口设置或是本身就下拉到地,那么,你程序怎么写都没用的,所以,直接用万用表测一下

用万用表怎么打,,,

直接测电压,打到V档

大神,问题解决了,原因是因为C8051F040的P4.5.6.7口都要进行页面设置,用到MOV,SFRPAGE,#0FH 和MOV,SFRPAGE,#00H语句在设置端口,
单片机是我新学的,这个芯片功能有点强大,,新学的不适合用这个把。

大神,,看下这个。我想让无源蜂鸣器出现高音低音两种声音,,定时计数器那我还没看懂,
就用这种方法做的,,出来的声音为什么是一响一不响的声音,,
TURN_ON:MOV SFRPAGE,#0FH      
        JB P5.5,$
MOV SFRPAGE,#00H      ;对P5.5口页面设置使用
       CLR P1.0
        LCALL DELAY           
        SETB P1.0
        LCALL DELAY           ;使蜂鸣器高音震动
LJMP DELAY_T       ;延长一段时间
LOWS:   
        CLR P1.0            
        LCALL DELAY_L
        SETB P1.0
        LCALL DELAY_L       ;使蜂鸣器低音震动
LJMP  DELAY_T       ;延长一段时间
DELAY:  MOV R6,#20
D1:     MOV R7,#100
DJNZ R7,$
DJNZ R6,D1
RET            ;高音震动程序
DELAY_T: MOV R5,#40
    D2:  MOV R4,#500
    D3:  MOV R3,#500
  DJNZ R3,$
  DJNZ R4,D3
  DJNZ R5,D2
  RET                  ;延时程序
DELAY_L: MOV R2,#20
D4:      MOV R1,#50
  DJNZ R1,$
  DJNZ R2,D4
  RET            ;低音震动程序

是逻辑问题么。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top