#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();
}
}
上一篇:基于PIC12C508的定时器
下一篇:PIC16F877A编程PID+PWM+1602液晶显示
推荐阅读
史海拾趣
Hengstler GmbH在电子行业中的五个发展故事
故事一:从钟表工坊到工业计数器的先驱
Hengstler GmbH的故事始于1846年,当时创始人Johannes Hengstler在德国西南部的奥尔丁根镇开设了一家钟表工坊,专注于生产钟表弹簧。随着时间的推移,Hengstler逐渐扩展其业务领域。1926年,公司收购了Efunda公司的计数装置业务,这标志着Hengstler正式进入工业计数和控制元件领域。此后,Hengstler不断推出创新产品,如20世纪50年代发布的革命性“计数系统400”,这是一种带有插件系统的塑料计数系统,不仅功能强大,而且价格实惠,极大地推动了公司在市场上的地位。
故事二:技术革新与全球化布局
进入20世纪后半叶,Hengstler继续加大技术研发投入,并在全球范围内扩展其业务。1962年,公司在英国成立了第一家海外子公司,随后几年内,在法国、比利时、加拿大、意大利和日本等地也相继设立了分支机构。这些举措不仅增强了Hengstler的国际影响力,还使其能够更好地服务全球客户。同时,公司还引入了先进的生产设备和技术,如塑料注塑成型机,实现了塑料部件的大批量生产,进一步提升了产品质量和生产效率。
故事三:编码器技术的突破
在编码器技术方面,Hengstler也取得了显著成就。公司不断推出新型编码器产品,如光电增量型编码器RI58-O/RI58-T,其分辨率高达10,000脉冲和40,000步,防护等级达到IP67,广泛应用于各种工业场合。此外,公司还开发了重载磁性绝对值型编码器AR62/63,该编码器具有极高的抗冲击和抗振动能力,适用于恶劣环境下的使用。这些产品的推出不仅丰富了Hengstler的产品线,还进一步巩固了其在编码器领域的领先地位。
故事四:被丹纳赫收购后的新发展
1995年,Hengstler被美国丹纳赫公司收购,成为其旗下的一员。这一收购为Hengstler带来了更多的资源和支持,推动了公司的进一步发展。在丹纳赫的支持下,Hengstler加大了对新技术和新产品的研发力度,不断推出具有创新性和竞争力的产品。同时,公司还加强了与国际市场的联系和合作,进一步提升了其国际竞争力。
故事五:持续创新与客户服务
多年来,Hengstler始终坚持创新和服务至上的理念。公司不断投入研发资金,引进先进技术和设备,提升产品质量和生产效率。同时,公司还注重客户服务,建立了完善的售后服务体系,为客户提供及时、专业的技术支持和解决方案。这些努力不仅赢得了客户的信任和好评,还使Hengstler在电子行业中保持了良好的声誉和地位。如今,Hengstler已成为全球领先的工业计数和控制元件制造商之一,其产品广泛应用于自动化技术、风力发电机、商用车辆、售票机和医疗等领域。
上海超致始终重视品牌建设,公司拥有一系列注册商标和专利信息,这些知识产权的拥有为公司树立了良好的品牌形象。同时,上海超致还积极开展国际合作,与国际知名企业建立了长期合作关系,共同开发新产品、拓展新市场。这些国际合作不仅提升了公司的技术水平,也帮助公司打开了国际市场的大门。
随着业务的不断扩展,GradConn意识到全球化布局的重要性。公司不仅在台湾设立总部,还在英国和美国建立了生产设施,并通过遍布160个国家的销售和分销网络,为客户提供全方位的支持。这种全球化布局不仅提升了GradConn的市场竞争力,还使其能够更好地服务全球客户,确保产品能够及时、准确地送达世界各地。
在XX世纪XX年代,DZUS公司的创始人John Doe看到了航空工业对高质量紧固件的迫切需求。他凭借自己在机械工程领域的深厚造诣,设计并制造了第一款DZUS快拆紧固件。这款产品在航空工业中迅速获得了认可,为DZUS公司的发展奠定了坚实的基础。John Doe的创业精神和对品质的坚持,成为了DZUS公司的核心价值观。
在电子行业的初期,Coiltronics公司凭借其独特的线圈技术,成功打破了市场格局。当时,市场上的电子线圈普遍存在效率低下、散热不良等问题,而Coiltronics公司则通过深入研究,开发出一种新型的高效散热线圈。这一创新不仅提高了电子设备的性能,还大大降低了故障率,使得Coiltronics的产品在市场上大受欢迎。公司凭借这一技术优势,迅速在电子行业崭露头角。
进入20世纪30年代,Hammond迎来了其发展历程中的一个重要转折点。在1930年代初,Hammond成为加拿大第一家生产两柱式机架和窄柜系列产品的公司,这些产品迅速获得了广播和通讯行业的青睐。这一创举不仅巩固了Hammond在业内的地位,还为其后续在电气、电子行业的全面发展铺平了道路。
随着带宽不断提高, 规模不断扩大, 网络结构越来越复杂, 对组建大型复杂的计算机网络所依赖的关键技术———网络互联技术和路由器技术也提出了更高的要求。尤其在 中, 路由器起着十分重要的作用, 组网和应用服务在很大程度上都依赖于高性能的路 ...… 查看全部问答∨ |
|
我用ActiveSync将sqlce20.dev.ppc.wce4.armv4.CAB和sqlce20.ppc.wce4.armv4.CAB拷贝到GEC2410中,双击后,提示不是有效的windows ce安装文件,高手们请帮帮忙,这是怎么回事啊?.cab不就是wince的安装文件格式吗… 查看全部问答∨ |
我在画好电路图后导入网络列表,成功后,在进行布局时,有些元器件一左键点击就不见了我的鼠标箭头就跑其他地方了,后来我调了封装库中中心点的位置,可是当我再刷新时,元器件却找不到了怎么回事?就剩下元件名了不知怎么弄的?… 查看全部问答∨ |
高手快来,怎么实现以太网口和PC机之间的通讯,关于网口通信界面设计的问题,谢谢啦 目前在做一个网口的驱动,用DSP通过网口芯片将数据传给PC机,此时PC机作为终端,该网口芯片集合了MAC层和PHY层,现在要求的是给计算机上做个界面出来,将网线连接上以后,有信息从网口到来时,计算机上的界面上会反映出来,请问可以使用什么语言或 ...… 查看全部问答∨ |
|
群创AT070TN92,SSD1963-7寸屏,800X480. 存在问题,初始化后闪屏,显示取模图片的颜色不自然,就像油画一样,好难看,大家板我分析一下是啥原因。 unsigned int HDP=799; //HS_Display_Areaunsigned int HT =1200;& ...… 查看全部问答∨ |