|
发表于 2011-11-10 13:33:33
|
显示全部楼层
#include "avr320240.h"
#include "pic.h"
//#pragma interrupt_handler usart1_RX_interrupt:iv_USART1_RX // 31
unsigned char i=0;
unsigned char key=0;
//#pragma data:data
//#pragma data:code
//const unsigned char string0[]={"String Test !"};
//const unsigned char string1[]={"Hello ! BKS !"};
//const unsigned char string2[]={"欢迎光临盐城吉华电子 !"};
//const unsigned char string3[]={"Line Drawing Test !"};
//const unsigned char string4[]={"ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
//#pragma data:data
//#pragma data:code
//////////////////////////////////////////////////////////////////////////////////////
// 1.PWM调节(没有必要用定时器实现) //
//2.显示字符串xy坐标类型必须为int型 //
//3.调用HZK.h库文件错误 //
//4.读写时间不正确 电池没有电 或者晶振的电容错 //
//5.字符串不必再定义,直接写到显示函数里面 //
//6.全局变量定义之后,H文件中声明后就可以正常使用。 //
//////////////////////////////////////////////////////////////////////////////////////
unsigned char sendbuf[30];
void main(void)
{
// unsigned char data=59;
// unsigned char sendbuf[20]={"00112233445566778899"};
port_init(); //port&interrupt chushihua
init_pwm(); //PWM chushihua
userinit(); //display chushihua
Delay(500); //DS1302 chushihua
init_devices();
//write time chushihua
LcmClear();
ShowPicture(0,0,320,240,bmp1);
Delay(50);
LcmClear();
Display_String("欢迎光临盐城吉华电子 !",80,64,22);
Display_String("www.yanchengjihua.com ",80,80,22);
Display_String("Tel:0515-88637858 ",80,96,19);
Display_String("Fax:0515-88637858 ",80,112,19);
Display_String("E_mail:www.gfg@163.com ",80,128,22);
Display_String("ADD:盐城大庆中路9号 ",80,144,20);
Delay(50);
LcmClear();
PORTF&=~(1<<2);
max485_in;
SEI();
while(1)
{
/*
// LcmClear();
// line(0,0,319,239);
// line(0,239,319,0);
// Delay(500);
DisplayTime();
line(0,20,319,20);
line(0,25,319,25);
line(0,230,319,230);
line(0,235,319,235);
Display_String("01.Ex %LEL 0.00 25.00 50.00 Normal ",00,32,40);
Display_String("02.Ex %LEL 0.00 25.00 50.00 Normal ",00,48,40);
Display_String("03.Ex %LEL 0.00 25.00 50.00 Normal ",00,64,40);
Display_String("04.Ex %LEL 0.00 25.00 50.00 Normal ",00,80,40);
Display_String("05.Ex %LEL 0.00 25.00 50.00 Normal ",00,96,40);
Display_String("06.Ex %LEL 0.00 25.00 50.00 Normal ",00,112,40);
Display_String("07.Ex %LEL 0.00 25.00 50.00 Normal ",00,128,40);
Display_String("08.Ex %LEL 0.00 25.00 50.00 Normal ",00,144,40);
Display_String("09.Ex %LEL 0.00 25.00 50.00 Normal ",00,160,40);
Display_String("10.Ex %LEL 0.00 25.00 50.00 Normal ",00,176,40);
Display_String("11.Ex %LEL 0.00 25.00 50.00 Normal ",00,192,40);
Display_String("12.Ex %LEL 0.00 25.00 50.00 Normal ",00,208,40);
Delay(5000);
LcmClear();
DisplayTime();
line(0,20,319,20);
line(0,25,319,25);
line(0,230,319,230);
line(0,235,319,235);
Display_String("13.Ex %LEL 0.00 25.00 50.00 Normal ",00,32,40);
Display_String("14.Ex %LEL 0.00 25.00 50.00 Normal ",00,48,40);
Display_String("15.Ex %LEL 0.00 25.00 50.00 Normal ",00,64,40);
Display_String("16.Ex %LEL 0.00 25.00 50.00 Normal ",00,80,40);
Display_String("17.Ex %LEL 0.00 25.00 50.00 Normal ",00,96,40);
Display_String("18.Ex %LEL 0.00 25.00 50.00 Normal ",00,112,40);
Display_String("19.Ex %LEL 0.00 25.00 50.00 Normal ",00,128,40);
Display_String("20.Ex %LEL 0.00 25.00 50.00 Normal ",00,144,40);
Display_String("21.Ex %LEL 0.00 25.00 50.00 Normal ",00,160,40);
Display_String("22.Ex %LEL 0.00 25.00 50.00 Normal ",00,176,40);
Display_String("23.Ex %LEL 0.00 25.00 50.00 Normal ",00,192,40);
Display_String("24.Ex %LEL 0.00 25.00 50.00 Normal ",00,208,40);
Delay(5000);
// LcmClear();
// Display_String("传感器单位值状态报警主机设置时间确定取消",00,80,40);
// Display_String("可燃性气体日期正异常有毒",80,96,24);
// Delay(5000);
*/
//Delay(5000);
//write_time(time);
//LcmClear();
DisplayTime();
key_check();
// usart_out(sendbuf,6);
//
// max485_out;
// usart1_str_sendArray(sendbuf,20);
// max485_in;
if(key==1)
{
max485_out;
usart1_str_sendArray(sendbuf,20);
PORTF&=~(1<<2);
max485_in;
}
else
key=0;
}
}
void DisplayTime()
{
unsigned char lbuf1[26];
unsigned char time[8]={0x11,0x11,0x10,0x13,0x21,0x50};
// write_time(time);
read_time(time);
lbuf1[0]=time[0]/0x10+0x30;
lbuf1[1]=time[0]%0x10+0x30;
lbuf1[2]=0x2f;
lbuf1[3]=time[1]/0x10+0x30;
lbuf1[4]=time[1]%0x10+0x30;
lbuf1[5]=0x2f;
lbuf1[6]=time[2]/0x10+0x30;
lbuf1[7]=time[2]%0x10+0x30;
lbuf1[8]=time[3]/0x10+0x30;
lbuf1[9]=time[3]%0x10+0x30;
lbuf1[10]=0x3a;
lbuf1[11]=time[4]/0x10+0x30;
lbuf1[12]=time[4]%0x10+0x30;
lbuf1[13]=0x3a;
lbuf1[14]=time[5]/0x10+0x30;
lbuf1[15]=time[5]%0x10+0x30;
//lbuf1[16]=time[6]/0x10+0x30;
//lbuf1[17]=time[6]%0x10+0x30;
Display_ASCII(0x32,88,8);
Display_ASCII(0x30,96,8);
Display_ASCII(lbuf1[0],104,8);
Display_ASCII(lbuf1[1],112,8);
Display_ASCII(lbuf1[2],120,8);
Display_ASCII(lbuf1[3],128,8);
Display_ASCII(lbuf1[4],136,8);
Display_ASCII(lbuf1[5],144,8);
Display_ASCII(lbuf1[6],152,8);
Display_ASCII(lbuf1[7],160,8);
Display_ASCII(0x20,168,8);
Display_ASCII(0x20,176,8);
Display_ASCII(lbuf1[8],184,8);
Display_ASCII(lbuf1[9],192,8);
Display_ASCII(lbuf1[10],200,8);
Display_ASCII(lbuf1[11],208,8);
Display_ASCII(lbuf1[12],216,8);
Display_ASCII(lbuf1[13],224,8);
Display_ASCII(lbuf1[14],232,8);
Display_ASCII(lbuf1[15],240,8);
}
我的程序display中可以写时间 但是在主程序定义全局数组time【8】={0x11,。。。};用main函数写时间wtime(time);就不正确,(写的时间)但是在display中定义局部数组 在调用wtime(time)就能写正确 痛苦呢???各位给看一下?? |
|