找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 969|回复: 5
收起左侧

单片机时钟信号一直处于高电平,该怎么修改?

[复制链接]
ID:992677 发表于 2023-4-6 18:01 | 显示全部楼层 |阅读模式
单片机时钟信号一直处于高电平,以下是测试代码,又能够震荡
  1. /**************************************************************************************
  2. 实验现象:下载程序后"LED&交通灯模块"的D1指示灯闪烁
  3. 接线说明: 单片机-->LED&交通灯模块(具体接线图可见开发攻略对应实验的“实验现象”章节)
  4.                    P00-->D1        
  5. 注意事项:                                                                                                                                                                  
  6. ***************************************************************************************/

  7. #include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器
  8. typedef unsigned int u16;          //对数据类型进行声明定义
  9. typedef unsigned char u8;


  10. sbit led=P2^0;                 //将单片机的P0.0端口定义为led

  11. /*******************************************************************************
  12. * 函 数 名         : delay
  13. * 函数功能                   : 延时函数,i=1时,大约延时10us
  14. *******************************************************************************/
  15. void delay(u16 i)
  16. {
  17.         while(i--);        
  18. }

  19. /*******************************************************************************
  20. * 函 数 名       : main
  21. * 函数功能                 : 主函数
  22. * 输    入       : 无
  23. * 输    出             : 无
  24. *******************************************************************************/
  25. void main()
  26. {
  27.         while(1)
  28.         {
  29.                 led=0;
  30.                 delay(50000); //大约延时450ms
  31.                 led=1;
  32.                 delay(50000); //大约延时450ms        
  33.         }               
  34. }
复制代码
以下写的代码,时钟信号一直处于高电平sbit en=P2^7;//en                //时钟信号
sbit rw=P2^6;//rw                //数据信号
void writebyte(unsigned char zdata)
{
        for(i=0; i<8; i++)
        {
                if((zdata << i) & 0x80)
                {
                        rw = 1;
                }
                else
                {
                        rw = 0;
                }
               
                en = 0;

                en = 1;

        }
}




回复

使用道具 举报

ID:291668 发表于 2023-4-6 21:29 | 显示全部楼层
首先检查硬件连接吧。先不上电,看看是否跟电源侧短接了。
回复

使用道具 举报

ID:1070272 发表于 2023-4-6 23:46 | 显示全部楼层
你先确定你用的是P2.0管脚还是P0.0,不要搞错了
回复

使用道具 举报

ID:992677 发表于 2023-4-7 00:36 | 显示全部楼层
ffk12345 发表于 2023-4-6 23:46
你先确定你用的是P2.0管脚还是P0.0,不要搞错了

我接的是P2.0,en一直处于高电平
回复

使用道具 举报

ID:992677 发表于 2023-4-7 00:36 | 显示全部楼层
li64331218 发表于 2023-4-6 21:29
首先检查硬件连接吧。先不上电,看看是否跟电源侧短接了。

没有跟电源短接
回复

使用道具 举报

ID:517951 发表于 2023-4-7 08:37 | 显示全部楼层
用万用表量测en=1; 是因为0变为1的时间是微秒级别的, 万用表抓不到.
用示波器来量看看波形是不是有变化.
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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