桂林电子科技大学毕业设计(论文)报告用纸 第 32 页 共 54 页
附 录
附录一 硬件设计仿真图
桂林电子科技大学毕业设计(论文)报告用纸 第 33 页 共 54 页
附录二 硬件设计原理图和PCB图
桂林电子科技大学毕业设计(论文)报告用纸 第 34 页 共 54 页
附录三 检测程序 一:主程序
#include
#define uint unsigned int #define uchar unsigned char //键盘 sbit k0=P1^0; sbit k1=P1^1; sbit k2=P1^2; sbit k3=P1^3; //变量 bit flg=0;
//数组
uchar M_time[]={\ //时间 uchar M_Detect[]={\ //检测 uchar M_Storage[]={\ //存储 uchar stor[4]; //以定义函数
void initial_lcd1602(void);
void delays1(uint n) {
while(n--);
}
/***************子程序************************/ void chang_h(void) { int g; if(k0==0)
{for(g=0;g<20;){delays1(100);g++;} if(k0==0)
{wr_data[4]=readtimeR[4]+1;
if(wr_data[4]>0x23)wr_data[4]=0x00; }
桂林电子科技大学毕业设计(论文)报告用纸 第 35 页 共 54 页
}
if(k1==0)
{for(g=0;g<20;){delays1(100);g++;} if(k1==0)
{wr_data[4]=readtimeR[4]-1;
if(readtimeR[4]==0x00)wr_data[4]=0x00; } } }
DS1302_init(); showdata();
Display_List_Char(1,0,lcd_time);
/***************************************/ void chang_m(void)
{
int g; if(k0==0)
{for(g=0;g<20;){delays1(100);g++;} if(k0==0)
{wr_data[5]=readtimeR[5]+1;
if(wr_data[5]>0x23)wr_data[5]=0x00; } }
if(k1==0)
{for(g=0;g<20;){delays1(100);g++;} if(k1==0)
{wr_data[5]=readtimeR[5]-1;
if(readtimeR[5]==0x00)wr_data[5]=0x00; } } }
DS1302_init(); showdata();
Display_List_Char(1,0,lcd_time);
/*************************************/ void chang_s(void) {
int g;
if(k0==0)
{for(g=0;g<20;){delays1(100);g++;} if(k0==0)
{wr_data[6]=readtimeR[6]+1; if(wr_data[6]>0x23)wr_data[6]=0x00;
桂林电子科技大学毕业设计(论文)报告用纸 第 36 页 共 54 页
} }
if(k1==0)
{for(g=0;g<20;){delays1(100);g++;} if(k1==0)
{wr_data[6]=readtimeR[6]-1;
if(readtimeR[6]==0x00)wr_data[6]=0x00; } }
DS1302_init();
showdata();
Display_List_Char(1,0,lcd_time);
}
/**************************************************/ //主函数
/**************************************************/ void main() {
uchar i,dd;
uint g;
uchar show[4];
unsigned int data_temp=0;
initial_lcd1602(); DS1302_init();
delays1(100);
Display_List_Char(0,0,LCD_Code2); for(g=0;g<100;){delays1(100);g++;}
while(1)
{
if(k0==0|k1==0|k2==0|k3==0)
{
write_lcd_command(0x01); //清屏
for(g=0;g<100;){delays1(100);g++;} Display_List_Char(0,0,M_time); Display_List_Char(0,8,M_Detect);
Display_List_Char(1,0,M_Storage); for(g=0;g<10;){delays1(100);g++;}
/**********************时间**************************/
if(k0==0) //时间
{
write_lcd_command(0x01); //清屏 do