• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

让单片机P3.4 不断接地 为啥记不了数呢?

mingming 2021-01-12 浏览量:346
void init()
{               
        TMOD = 0x05;//工作方式0000 0101
        TL0 = 0;
        TR0 = 1;         
}
void main()
{
        
        init();

        while(1)
        {
                q = TL0;
                displayShu(TL0);//显示TL0               
                delayShu(200);//延时
        }
                 
}
让P3.4 不断接地 为啥记不了数呢,
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 1.你的中断初始化函数不完全,没有打开总中断。你虽然只想做为计数器使用,但是中断还是要开的,中断函数还是要写的。

    还有就是寄存器TH0也是建议初始化的

    2.​​建议计数器初始值设置为65535,外部有一个脉冲输入就溢出,中断中翻转一下led,这样直观点,不过你一直读TL0的值也是可以的。

    3.P34是需要有个边沿才会计数的,你需要默认读到的是高电平。

    • 发布于 2021-01-12
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:3
  • 初始化函数里加一个ET0=1,EA=0再试试看
    • 发布于2021-01-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 你用的中断,但没有开启全局中断啊,你要打开中断才可以进中断计数的
    • 发布于2021-01-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 要开启全局中断,不然中断控制器不工作
    • 发布于2021-01-18
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

让单片机P3.4 不断接地 为啥记不了数呢?