⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sky_main.lst

📁 公共广播系统:定时开机,定时广播,定时关机
💻 LST
📖 第 1 页 / 共 5 页
字号:
 550   2      		{
 551   3                	SingleData(u8Column,0x00);		/* erase a column */
 552   3      		}
 553   2         	}
 554   1      }
 555          void SetRAMAddr (UINT8 Page, UINT8 Col)
 556          {
 557   1          	SingleCmd(X_ADRESS | Page); /* Set the page number */
 558   1          	SingleCmd(Y_ADRESS |Col);
 559   1      }
 560          
 561          
 562          void LOGO(void)
 563          {
 564   1          data char j,k;
 565   1      	data UINT8 temp;
 566   1      	
 567   1      	for(k=63;k>=0;k--)
C51 COMPILER V6.14  SKY_MAIN                                                               12/30/2004 22:34:59 PAGE 11  

 568   1      	{
 569   2      		for(j=1;j<7;j++)
 570   2      		{
 571   3      			SetRAMAddr(j,k);
 572   3      			SingleData(k,0xff);
 573   3      			SetRAMAddr(j,127-k);
 574   3      			SingleData(127-k,0xff);
 575   3            	}
 576   2      	 }
 577   1      	 ClearWatchDog();
 578   1      	 Delay1(60000);
 579   1      	 for(k=63;k>=0;k--)
 580   1      	 {
 581   2      		for(j=1;j<7;j++)
 582   2      		{
 583   3      			SetRAMAddr(j,k);
 584   3      			SingleData(k,logobmp[j-1][k]);
 585   3      			SetRAMAddr(j,127-k);
 586   3      			SingleData(127-k,logobmp[j-1][127-k]);
 587   3            	}
 588   2      		Delay1(3000);
 589   2      		temp=KeyScan();
 590   2      		if(temp !=0)
 591   2      			return;
 592   2      	 }
 593   1      	 ClearWatchDog();
 594   1      	for(k=63;k>=0;k--)
 595   1      	{
 596   2      		for(j=1;j<7;j++)
 597   2      		{
 598   3      			SetRAMAddr(j,k);
 599   3      			SingleData(k,~logobmp[j-1][k]);
 600   3      			SetRAMAddr(j,127-k);
 601   3      			SingleData(127-k,~logobmp[j-1][127-k]);
 602   3            	}
 603   2      		Delay1(3000);
 604   2      		temp=KeyScan();
 605   2      		if(temp !=0)
 606   2      			return;
 607   2      	 }
 608   1      	 ClearWatchDog();
 609   1      	 Delay1(60000);
 610   1      	 for(k=63;k>=0;k--)
 611   1      	 {
 612   2      		for(j=1;j<7;j++)
 613   2      		{
 614   3      			SetRAMAddr(j,k);
 615   3      			SingleData(k,logobmp[j-1][k]);
 616   3      			SetRAMAddr(j,127-k);
 617   3      			SingleData(127-k,logobmp[j-1][127-k]);
 618   3           	}
 619   2      		Delay1(3000);
 620   2      		temp=KeyScan();
 621   2      		if(temp !=0)
 622   2      			return;
 623   2      	 }
 624   1      	 ClearWatchDog();
 625   1      	 Delay1(60000);
 626   1       }
 627          
 628          void HzDisplay(unsigned char *page_num, unsigned char page_y_in, unsigned char col_x_in,bit flag)
 629          {
C51 COMPILER V6.14  SKY_MAIN                                                               12/30/2004 22:34:59 PAGE 12  

 630   1      	data unsigned char i;
 631   1      	data unsigned char page_y; 
 632   1      	data unsigned char col_x; 
 633   1      	
 634   1      	page_y		= page_y_in;
 635   1      	col_x		= col_x_in;
 636   1      
 637   1      	SetRAMAddr(page_y,col_x);
 638   1      	for (i=0;i<16;i++) {
 639   2      		if(flag==0)
 640   2      			SingleData(col_x,page_num[i]);
 641   2      		else
 642   2      			SingleData(col_x,~(page_num[i]));
 643   2      	}
 644   1      	SetRAMAddr(page_y+1,col_x);
 645   1      	for (i=16;i<32;i++) {
 646   2      		if(flag==0)
 647   2      			SingleData(col_x,page_num[i]);
 648   2      		else
 649   2      			SingleData(col_x,~(page_num[i]));
 650   2      	}
 651   1      }
 652          
 653          void Display_Line(unsigned char num, unsigned char page_y_in, unsigned char len,bit flag)
 654          {
 655   1      	data UINT8 i;
 656   1      	for(i=0;i<len;i++)
 657   1      	{
 658   2      		switch(num)
 659   2      		{
 660   3      			case 1:
 661   3      				HzDisplay(menu1[i], page_y_in, i*16,flag);
 662   3      				break;
 663   3      			case 2:
 664   3      				HzDisplay(menu2[i], page_y_in, i*16,flag);
 665   3      				break;
 666   3      			case 3:
 667   3      				HzDisplay(menu3[i], page_y_in, i*16,flag);
 668   3      				break;
 669   3      			case 4:
 670   3      				HzDisplay(menu4[i], page_y_in, i*16,flag);
 671   3      				break;
 672   3      			case 5:
 673   3      				HzDisplay(menu5[i], page_y_in, i*16,flag);
 674   3      				break;
 675   3      			case 6:
 676   3      				HzDisplay(menu6[i], page_y_in, i*16,flag);
 677   3      				break;
 678   3      			case 7:
 679   3      				HzDisplay(menu7[i], page_y_in, i*16,flag);
 680   3      				break;
 681   3      			case 8:
 682   3      				HzDisplay(menu8[i], page_y_in, i*16,flag);
 683   3      				break;
 684   3      			case 9:
 685   3      				HzDisplay(menu9[i], page_y_in, i*16,flag);
 686   3      				break;
 687   3      			case 10:
 688   3      				HzDisplay(menu10[i], page_y_in, i*16,flag);
 689   3      				break;
 690   3      			case 11:
 691   3      				HzDisplay(menu11[i], page_y_in, i*16,flag);
C51 COMPILER V6.14  SKY_MAIN                                                               12/30/2004 22:34:59 PAGE 13  

 692   3      				break;
 693   3      		}
 694   2      	}
 695   1      }
 696          void Display_Save(UINT8 row,UINT8 col)
 697          {
 698   1      	Msingle_font_pattern(Save[0],row,col,0);
 699   1      	Msingle_font_pattern(Save[1],row,col+8,0);
 700   1      	Msingle_font_pattern(Save[2],row,col+16,0);
 701   1      	Msingle_font_pattern(Save[3],row,col+24,0);
 702   1      	Delay1(50000);
 703   1      	Msingle_font_pattern(space,row,col,0);
 704   1      	Msingle_font_pattern(space,row,col+8,0);
 705   1      	Msingle_font_pattern(space,row,col+16,0);
 706   1      	Msingle_font_pattern(space,row,col+24,0);
 707   1      }
 708          void Num_Display(UINT8 num, unsigned char page_y_in, unsigned char col_x_in,bit flag)
 709          {
 710   1      	data UINT8 temp;
 711   1      	temp=num/10;
 712   1      	Msingle_font_pattern(Time_offset[temp],page_y_in,col_x_in,flag);
 713   1      	temp=num%10;
 714   1      	Msingle_font_pattern(Time_offset[temp],page_y_in,col_x_in+8,flag);
 715   1      }
 716          void Msingle_font_pattern(unsigned char *page_num, unsigned char page_y_in, unsigned char col_x_in,bit fla
             -g)
 717          {
 718   1      	data unsigned char i;
 719   1      	data unsigned char page_y; 
 720   1      	data unsigned char col_x; 
 721   1      	
 722   1      	page_y		= page_y_in;
 723   1      	col_x		= col_x_in;
 724   1      	SetRAMAddr(page_y,col_x);
 725   1      	for (i=0;i<8;i++) {
 726   2      		if(flag==0)
 727   2      			SingleData(col_x,page_num[i]);
 728   2      		else
 729   2      			SingleData(col_x,~(page_num[i]));
 730   2      	}
 731   1      	SetRAMAddr(page_y+1,col_x);
 732   1      	for (i=8;i<16;i++) {
 733   2      		if(flag==0)
 734   2      			SingleData(col_x,page_num[i]);
 735   2      		else
 736   2      			SingleData(col_x,~(page_num[i]));
 737   2      	}
 738   1      }
 739          
 740          void Time_display(UINT8 row,UINT8 h,UINT8 m,UINT8 s,UINT8 n)
 741          {
 742   1      	HzDisplay(HZ[3],row,32,0);
 743   1      	HzDisplay(HZ[4],row,64,0);
 744   1      	HzDisplay(HZ[5],row,96,0);
 745   1      	Num_Display(h,row,16,0);
 746   1      	Num_Display(m,row,48,0);
 747   1      	Num_Display(s,row,80,0);
 748   1      	switch(n)
 749   1      	{
 750   2      		case 0:
 751   2      			Num_Display(h,row,16,1);
 752   2      			break;
C51 COMPILER V6.14  SKY_MAIN                                                               12/30/2004 22:34:59 PAGE 14  

 753   2      		case 1:
 754   2      			Num_Display(m,row,48,1);
 755   2      			break;
 756   2      		case 2:
 757   2      			Num_Display(s,row,80,1);
 758   2      			break;
 759   2      	}
 760   1      }
 761          
 762          
 763          void Date_display(UINT8 w,UINT8 y,UINT8 m,UINT8 d,UINT8 n)
 764          {
 765   1      	HzDisplay(HZ[6],0,0,0);
 766   1      	HzDisplay(HZ[7],0,16,0);
 767   1      	HzDisplay(HZ[0],3,32,0);
 768   1      	HzDisplay(HZ[1],3,64,0);
 769   1      	HzDisplay(HZ[2],3,96,0);
 770   1      	HzDisplay(WEEK1[w],0,32,0);
 771   1      	Num_Display(20,3,0,0);
 772   1      	Num_Display(y,3,16,0);
 773   1      	Num_Display(m,3,48,0);
 774   1      	Num_Display(d,3,80,0);
 775   1      	switch(n)
 776   1      	{
 777   2      		case 0:
 778   2      			Num_Display(y,3,16,1);
 779   2      			break;
 780   2      		case 1:
 781   2      			Num_Display(m,3,48,1);
 782   2      			break;
 783   2      		case 2:
 784   2      			Num_Display(d,3,80,1);
 785   2      			break;
 786   2      	}
 787   1      }
 788          
 789          
 790          /********************************************************************************************************/
 791          /*    System Register of CPU Initialize                           */
 792          /********************************************************************************************************/
 793          void  CPUInitial(void)//CPU初始化
 794          {
 795   1         	IE = 0x80;                                           
 796   1         	IP = 0x01;                                            
 797   1      	P0 = 0xff;
 798   1      	P1 = 0xFF;
 799   1      	P2 = 0xff;
 800   1      	P3 = 0xff;
 801   1      	WDT=0x87;
 802   1      }
 803          void ClearWatchDog(void)
 804          {
 805   1      	WDT=0xc7;
 806   1      	Delay1(200);
 807   1      	WDT=0x87;
 808   1      }
 809          
 810          void Timer0_Init(void)//时钟0初始化
 811          {
 812   1      	TMOD=0x01;
 813   1         	TCON = 	0x00;                                           
 814   1      	TL0  =  0xe5;
C51 COMPILER V6.14  SKY_MAIN                                                               12/30/2004 22:34:59 PAGE 15  

 815   1      	TH0  =  0x3c;
 816   1      	TR0  =  1	;
 817   1      }
 818          
 819          void Delay1(UINT16 time)
 820          {
 821   1         UINT16 i;
 822   1         for(i=0;i<time;i++);
 823   1      }
 824          
 825          void OnOffContral(void)
 826          {
 827   1      	data UINT8 temp,i,sh,sm,ss,eh,em,es,w;
 828   1      	bit ocflag;
 829   1      	data int begin,end,mid;
 830   1      	data UINT16 addr;
 831   1      
 832   1      	for(i=0;i<15;i++)
 833   1      	{
 834   2              temp=EEPROMByteRead0(0x01+i);
 835   2              Delay1(100);
 836   2              if(temp==0)
 837   2                 w=1;    
 838   2              else
 839   2                  w=Week;
 840   2      		temp=EEPROMByteRead0(16+Week*15+i);
 841   2      		Delay1(100);
 842   2      		if(temp==0)
 843   2      		{
 844   3      			Contral8255(i,0);
 845   3      			LedContral(i,0);
 846   3      			Luopencloseflag[i]=0;
 847   3      			continue;
 848   3      		}
 849   2      		ocflag=0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -