#include
#include "ziku.h"
#include "lcd_init.h"
#include "ds1302.h"
#include "ds18b20.h"
#include "keyscan.h"
#include "yinli.h"
uch jj,ii;
//子程序
//LCD显示空白边框子程序
void LCDShowTable()
{
        uch i;
        SlectScreen(1);     //写左半屏
        SetLine(0);         //起使页
        SetColumn(0);       //起使列
        for(i=0;i<64;i++)
        {
                if((i==0)||(i==63))WriteData(0xff);//第1、63列竖线
                else WriteData(0x01);              //最上面一行线
        }
        for(i=1;i<7;i++)
        {
                SetLine(i);
                SetColumn(0);
                WriteData(0xff); //竖线
                SetColumn(63);
                WriteData(0xff); //竖线        
        }
        SetLine(7);
        SetColumn(0);
        for(i=0;i<64;i++)
        {
                if((i==0)||(i==63))WriteData(0xff);
                else WriteData(0x80);             //最下面的横线
        }
        
        SlectScreen(2);//写右半屏
        SetLine(0);
        SetColumn(0);
        for(i=0;i<64;i++)
        {
                if(i==63)WriteData(0xff);
                else WriteData(0x01);
        }
        SetLine(4);
        SetColumn(0);
        for(i=0;i<64;i++)
        {
                if(i==63)WriteData(0xff);
                else WriteData(0x01);
        }
        for(i=1;i<7;i++)
        {
                SetLine(i);
                SetColumn(63);
                WriteData(0xff);        
        }
        SetLine(7);
        SetColumn(0);
        for(i=0;i<64;i++)
        {
                if(i==63)WriteData(0xff);
                else WriteData(0x80);
        }        
}
/*----------------------------------------------------------*/

//显示固定字符子程序
void LCDShowGudingWord()
{
        Show8X16(0,80,maohao,1);
        Show8X16(0,104,maohao,1);
        
        Show16X16(6,80,yue,2);
        Show16X16(0,40,nian,1);
        Show16X16(4,2,yue,0);
        Show16X16(6,8,xing,2);
        Show16X16(6,24,qi,2);
        Show16X16(2,96,danwei1,0);
        Show8X16(0,8,s2,1);
        Show8X16(0,16,s0,1);
}
/*----------------------------------------------------------*/

void TMR0init()
{
        T0CS=0;
        PSA=0;
        PS2=1;
        PS1=1;
        PS0=1;
        TMR0=0x80;
        T0IE=1;
        T0IF=0;
}
//冒号闪烁子程序
void FlashMaohao()
{
        static uch timecount1;
        static int timecount2;
        
        if(TMR0IF==1)
        {
                TMR0=0x80;
                TMR0IF=0;
                timecount1++;
                timecount2++;
                if(timecount1==10)
                {
                        flag++;
                    flag=flag%2;    //闪烁标志在0-1间翻转
                    timecount1=0;
                }
                if(timecount2==1200)//1分钟采样一次温度
                {
                        timecount2=0;
                        get_temp();   //温度转换子程序
                }
        }
        if(flag==0)
        {
                Show8X16(0,80,maohao,1);
                Show8X16(0,104,maohao,1);
        }
        if(flag==1)
        {
                Show8X16(0,80,noshu,1);//清除
                Show8X16(0,104,noshu,1);
        }
}

void Naoling()
{
        
        if(kk==1)
        {
                if(RD3==0)
                {
                        jj++;
                        jj=jj%4;
                        while(1)
                        {
                                if(RD3==1)break;
                        }
                }
                if(jj==1)
                {
                        Naoling_hour_1=        Naoling_hour;
                        Naoling_minute_1=Naoling_minute;
                        RC4=1;
                        RC6=0;
                        RC7=0;
                }
                if(jj==2)
                {
                        Naoling_hour_2=        Naoling_hour;
                        Naoling_minute_2=Naoling_minute;
                        RC4=0;
                        RC6=1;
                        RC7=0;
                }
                if(jj==3)
                {
                        Naoling_hour_3=        Naoling_hour;
                        Naoling_minute_3=Naoling_minute;
                        RC4=0;
                        RC6=0;
                        RC7=1;
                        
                }
        }
}


void NaolingXiang()
{
        int i;
        if((kk==1)&&(Naoling_hour_1==clock[2])&&(Naoling_minute_1==clock[1]))
        {
                RC5=1;
                for(i=0;i<100;i++);
                RC5=0;
                for(i=0;i<500;i++);
        }
        if((kk==1)&&(Naoling_hour_2==clock[2])&&(Naoling_minute_2==clock[1]))
        {
                RC5=1;
                for(i=0;i<100;i++);
                RC5=0;
                for(i=0;i<200;i++);
        }
        if((kk==1)&&(Naoling_hour_3==clock[2])&&(Naoling_minute_3==clock[1]))
        {
                RC5=1;
                for(i=0;i<200;i++);
                RC5=0;
                for(i=0;i<500;i++);
        }
}

//查询子程序
void chaxun()
{
        if(RD3==0)
        {
                ii++;
                ii=ii%2;
        }
        while(1)
        {
                if(RD3==1)break;
        }
        if(ii==1)
        {
                KeyScan();
        }
}

//主程序
void main()
{
        keyinit();              //键盘初始化
        LCDinit();              //LCD操作初始化
        LCDShowTable();         //显示空白表格
        LCDShowGudingWord();    //显示固定字符
        get_temp();             //读取温度
        TMR0init();
        while(1)
        {
                v_Get1302(clock);   //读取时间、日历
                display();
                FlashMaohao();      //冒号闪烁
                KeyScan();                //键盘扫描        
                GetWeek(clock[6]+2000,clock[4],clock[3]);
                GetChinaCalendar(clock[6]+2000,clock[4],clock[3]);
                //Naoling();
                //NaolingXiang();
                chaxun();
        }
}

[1] [2] [3] [4]
关键字:pic单片机  万年历  固定字符 引用地址:pic单片机做的万年历

上一篇:基于PIC12C508的定时器
下一篇:PIC16F877A编程PID+PWM+1602液晶显示

推荐阅读

对于传统汽车产业而言,这是一个噩耗,苹果庞大的汽车业务集团,正式浮出了水面。Doug Field,这个原特斯拉的三号人物,整个特斯拉公司负责整车研发和制造的高级副总裁,正式更新了自己LinkedIn的身份信息,没有让所有人失望,Title是苹果Special Projects Group(后简称SPG)的副总裁。如果你在领英上展开搜索,苹果SPG名下有将近1200名员工,其中300...
头文件 stc12c5a.h下载: http://www.51hei.com/mcu/2564.html 头文件 1602.h 下载: http://www.51hei.com/bbs/dpj-24671-1.html ///*redPC838.c文件* 红外接收数据,中断方式,并通过串口发送* 晶振:11.0592M*/#include<STC12c5a.h>#include<1602.h>typedef unsigned char uint8;sbit Ir_Pin = P3^3;uint8 Ir_Buf[4]; //用于保存解码结...
到2020年10月,谷歌推出的mini-SBC,迷你Coral开发板终于要发售了,会放在Coral Store和Seeed Studio上,预计发货日期为10月31日。这种新的SBC有一个40针连接器,用于与先前发布的TPU加速器模块接口,在设计之初Google就考虑了人工智能属性。它运行的是Debian的Linux衍生产品Mendel,对许多Linux工具和应用程序开放支持。它还支持AutoML Vision Edge。...
小米此前官宣将于10月底推送MIX FOLD折叠屏手机首个大版本更新,解决热门应用的大屏适配问题,拥有大量改善和优化。今日官方宣布,本次更新还会带来掌上PC模式的更新,进一步优化这种模式下的操作体验。  掌上PC模式提供一个类似电脑系统的界面,支持多任务多窗口。在这种模式下,图片、文件可以拖动到桌面,并且支持在桌面新建文件夹进行图片...

史海拾趣

问答坊 | AI 解惑

8051单片机C语言控制与应用.zip .zip

8051单片机C语言控制与应用.zip…

查看全部问答∨

路由器包处理器芯片设计

随着带宽不断提高, 规模不断扩大, 网络结构越来越复杂, 对组建大型复杂的计算机网络所依赖的关键技术———网络互联技术和路由器技术也提出了更高的要求。尤其在 中, 路由器起着十分重要的作用, 组网和应用服务在很大程度上都依赖于高性能的路 ...…

查看全部问答∨

关于在wince中安装.cab文件

    我用ActiveSync将sqlce20.dev.ppc.wce4.armv4.CAB和sqlce20.ppc.wce4.armv4.CAB拷贝到GEC2410中,双击后,提示不是有效的windows ce安装文件,高手们请帮帮忙,这是怎么回事啊?.cab不就是wince的安装文件格式吗…

查看全部问答∨

protel中修改封装

我在画好电路图后导入网络列表,成功后,在进行布局时,有些元器件一左键点击就不见了我的鼠标箭头就跑其他地方了,后来我调了封装库中中心点的位置,可是当我再刷新时,元器件却找不到了怎么回事?就剩下元件名了不知怎么弄的?…

查看全部问答∨

Windows CE下做导航器,用什么电子地图比较好

Windows CE下做导航器,用什么电子地图比较好??? 想知道各种电子地图的性价比啊?? 谢谢了!…

查看全部问答∨

高手快来,怎么实现以太网口和PC机之间的通讯,关于网口通信界面设计的问题,谢谢啦

目前在做一个网口的驱动,用DSP通过网口芯片将数据传给PC机,此时PC机作为终端,该网口芯片集合了MAC层和PHY层,现在要求的是给计算机上做个界面出来,将网线连接上以后,有信息从网口到来时,计算机上的界面上会反映出来,请问可以使用什么语言或 ...…

查看全部问答∨

开关电源资料

本帖最后由 paulhyde 于 2014-9-15 09:10 编辑 供大家分享。  …

查看全部问答∨

MSP430编程问题

我MSP430编程时,自己做了个H文件,工程文件找不到H文件,路径怎么设呀?谁能帮我分析与下?谢了!…

查看全部问答∨

SSD1963 7寸屏显示图片的颜色不自然

群创AT070TN92,SSD1963-7寸屏,800X480. 存在问题,初始化后闪屏,显示取模图片的颜色不自然,就像油画一样,好难看,大家板我分析一下是啥原因。   unsigned int  HDP=799;  //HS_Display_Areaunsigned int  HT =1200;& ...…

查看全部问答∨

AD转换中电压读数

写AD转换时想输出5v电压,用的公式为            b=m*500/255/100;    s=m*500/255%100/10;   g=m*500/255%10;但是调节变阻器,最大输出电压为2.5v,如果改成128,则输出5v左右,想问下这种变 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved