m0_58061620 2022-05-30 15:13 采纳率: 50%
浏览 33
已结题

为什么会在1602的左上角显示1

#include<reg51.h>

#define uchar unsigned char
#define uint unsigned int

uchar int_time; //定义中断次数计数变量
uchar second=0;
uchar minute=0; //分钟计数变量
uchar hour=0;

sbit RS = P3^0;
sbit RW = P3^1;
sbit E = P3^2;

unsigned char s1[] = {"0123456789:"};//共阴

void display(unsigned char h,unsigned char m,unsigned char s)
{
writecmd(0xc4);
writedat(s1[h/10]);

writecmd(0xc5);
writedat(s1[h%10]);

writecmd(0xc6);
writedat(s1[10]);

writecmd(0xc7);
writedat(s1[m/10]);

writecmd(0xc8);
writedat(s1[m%10]);

writecmd(0xc9);
writedat(s1[10]);

writecmd(0xca);
writedat(s1[s/10]);

writecmd(0xcb);
writedat(s1[s%10]);
}

void main()
{
initlcd();

TMOD=0x01;
EA=1;
ET0=1;
TH0=0x3c;//(65536-50000)/256
TL0=0xB0;

int_time=0;
second=45;
minute=22;
hour=14;
TR0=1;
while(1)
{
display(hour,minute,second);
}
}

void T0_interserve() interrupt 1 using 1
{
TH0=0x3c;
TL0=0xB0;
int_time++;
if(int_time==20)
{
int_time=0;
second++;
}
if(second==60)
{
second=0;
minute++;
}
if(minute==60)
{
minute=0;
hour++;
}
if(hour==24)
{
hour=0;
}

}

img

  • 写回答

1条回答 默认 最新

  • qllaoda 2022-05-30 15:31
    关注

    显然你的代码没有贴完,你觉得问题在这些代码里?我觉得不太像,不信你试试在main里注释掉display函数的调用,看那个1还在不在。
    检查你的initlcd函数。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月31日
  • 创建了问题 5月30日

悬赏问题

  • ¥15 Opencv(C++)异常
  • ¥15 VScode上配置C语言环境
  • ¥15 汇编语言没有主程序吗?
  • ¥15 这个函数为什么会爆内存
  • ¥15 无法装系统,grub成了顽固拦路虎
  • ¥15 springboot aop 应用启动异常
  • ¥15 matlab有关债券凸性久期的代码
  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错