标题: 问一个1602显示万年历的问题 [打印本页]

作者: 15035887640    时间: 2015-11-16 20:33
标题: 问一个1602显示万年历的问题
这样写的 大循环扫描按键程序,一直扫描不到,问下这个怎么改, 我按键4个功能 一个功能键一个加减键还有一个返回键 一直检测不到,上电时间在走,就是检测不到按键扫描,。
大家给个建议,
void main()  
{  
           down_init();         //自动下载的头文件刚开始调用这个函数就可自动下载 不需要关掉开关
        cmg88();
    lcd_init();      //调用液晶屏初始化子函数  
    //ds1302_init();   //调用DS1302时钟的初始化子函数  
    init();          //调用定时计数器的设置子函数  
    while(1)  //无限循环下面的语句:  
    {  
     keyscan();      //调用键盘扫描子函数  
         
    }  
}




void timer0() interrupt 1  //取得并显示日历和时间  
{  
    TH0=(65536-45872)/256;  //定时器T0的高四位=0  
    TL0=(65536-45872)%256;  
   //读取温度返回值。

          flag=ReadTemperature();
  //读取秒时分周日月年七个数据  
    miao = BCD_Decimal(read_1302(0x81));  
    fen = BCD_Decimal(read_1302(0x83));  
    shi  = BCD_Decimal(read_1302(0x85));  
    ri  = BCD_Decimal(read_1302(0x87));  
    yue = BCD_Decimal(read_1302(0x89));  
    nian=BCD_Decimal(read_1302(0x8d));  
    week=BCD_Decimal(read_1302(0x8b));  
         
    //显示温度、秒、时、分数据:  

    writetemp(10,flag);//显示温度,从第二行第12个字符后开始显示  
    write_sfm(0x47,miao);//秒,从第二行第8个字后开始显示(调用时分秒显示子函数)  
    write_sfm(0x44,fen);//分,从第二行第5个字符后开始显示  
    write_sfm(0x41,shi);//小时,从第二行第2个字符后开始显示  
    //显示星
        write_week(week);   
    //显示日、月、年数据:  
    write_nyr(0x09,ri);//日期,从第二行第9个字符后开始显示  
    write_nyr(0x06,yue);//月份,从第二行第6个字符后开始显示  
    write_nyr(0x03,nian);//年,从第二行第3个字符后开始显示       


}





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1