📄 youbing.lst
字号:
-]%16)/8)*16+abs((d[i][j]%8)/4)*32+abs((d[i][j]%4)/2)*64+abs(d[i][j]%2)*128;
614 3 Data=temp;
615 3 p_e=1;
616 3 p_e=0;
617 3 }
618 2 }
619 1 }
620 ///****清屏***//
621 void clear()
622 {
623 1 unsigned char i,j;
624 1 for(i=0;i<8;i++)
625 1 for(j=0;j<128;j++)
626 1 writedata(i,j);
627 1 }
628
629 //*******设定清屏********
630
631 void clearset(unsigned x,unsigned y)
632 {
633 1 unsigned char i,j;
634 1 for(i=x;i<x+2;i++)
635 1 for(j=y;j<y+16;j++)
636 1 writedata(i,j);
637 1 }
638
639 ///***主函数****///
640 void main(void)
641 {
642 1 unsigned char m,n;
643 1
644 1 IE = 0x8f; //CPU开中断,INT0,INT1,Timer0开中断
645 1 IP = 0x04; //设置INT0为中断最高优先级
646 1 IT0=1;IT1=1; //外部INT0,IT1设置为边沿触发方式
647 1 TMOD = 0x11; //Timer0工作于模式1, 16位定时方式
648 1 TH0 = 0xdc;
649 1 TL0 = 0x00; //Timer0置10ms定时初值
650 1 TR0 = 1;
651 1
652 1 Init();
653 1 display(m,n);
654 1 delay(1500);
655 1 clear();
656 1 while(1)
657 1 {
658 2 keyhangdle();
659 2 pro_timedate();
660 2 timedisplay();
661 2
662 2 }
663 1 }
664
665
666
667
668
669
670
C51 COMPILER V7.01 YOUBING 12/27/2006 14:57:19 PAGE 12
671
672 void display(unsigned char k,unsigned char j)
673 {
674 1 //if(m==0)
675 1 // {
676 1 /****第一屏****/
677 1 clear();
678 1 busy();
679 1 writeword1(1,32,huang);//
680 1 writeword1(1,48,ying);//
681 1 writeword1(1,64,guang);//
682 1 writeword1(1,80,lin);//
683 1
684 1
685 1 writeword2(3,0,w);//
686 1 writeword2(3,8,w);//
687 1 writeword2(3,16,w);//
688 1 writeword2(3,24,diang);//
689 1 writeword2(3,32,y);//
690 1 writeword2(3,40,O);//
691 1 writeword2(3,48,u);//
692 1 writeword2(3,56,b);//
693 1 writeword2(3,64,i);//
694 1 writeword2(3,72,n);//
695 1 writeword2(3,80,g);//
696 1 writeword2(3,88,diang);//
697 1 writeword2(3,96,c);//
698 1 writeword2(3,104,O);//
699 1 writeword2(3,112,m);//
700 1
701 1 writeword1(5,0,bang);//
702 1 writeword1(5,16,quan);//
703 1 writeword1(5,32,suo);//
704 1 writeword1(5,48,you1);//
705 1 writeword1(5,64,maohao);//
706 1 writeword1(5,80,zhang);//
707 1 writeword1(5,96,you);//
708 1 writeword1(5,112,ming);//
709 1
710 1 delay(150);
711 1 }
*** WARNING C280 IN LINE 672 OF YOUBING.C: 'k': unreferenced local variable
*** WARNING C280 IN LINE 672 OF YOUBING.C: 'j': unreferenced local variable
712
713 //**************日历画面***************//
714
715 void timedisplay()
716 {
717 1
718 1 unsigned char year1,year2,year3,year4,month1,month2,day1,day2;
719 1 unsigned char hour1,hour2,min1,min2,sec1,sec2;
720 1
721 1 //******时间处理**********//
722 1
723 1 //年//
724 1
725 1 year1=year/1000;
726 1 year2=(year-year1*1000)/100;
727 1 year3=(year-year1*1000-year2*100)/10;
728 1 year4=(year-year1*1000-year2*100)%10;
729 1 //月//
730 1 month1=month/10;
C51 COMPILER V7.01 YOUBING 12/27/2006 14:57:19 PAGE 13
731 1 month2=month%10;
732 1 //日//
733 1 day1=day/10;
734 1 day2=day%10;
735 1
736 1 //时//
737 1 hour1=hour/10;
738 1 hour2=hour%10;
739 1 //分//
740 1 min1=min/10;
741 1 min2=min%10;
742 1 //秒//
743 1 sec1=sec/10;
744 1 sec2=sec%10;
745 1
746 1 writeword1(0,32,nian);//
747 1 writeword1(0,64,yue);//
748 1 writeword1(0,96,ri);//
749 1
750 1 writeword1(2,48,shi);//
751 1 writeword1(2,80,fen);//
752 1 writeword1(2,112,miao);//
753 1 //年//
754 1 writeword2(0,0,BMP[year1]);//
755 1 writeword2(0,8,BMP[year2]);//
756 1 writeword2(0,16,BMP[year3]);//
757 1 writeword2(0,24,BMP[year4]);//
758 1 //月//
759 1 writeword2(0,48,BMP[month1]);//
760 1 writeword2(0,56,BMP[month2]);//
761 1 //日//
762 1 writeword2(0,80,BMP[day1]);//
763 1 writeword2(0,88,BMP[day2]);//
764 1
765 1 //图标//
766 1 writeword1(2,adr,shu2);//
767 1
768 1 //时//
769 1 writeword2(2,32,BMP[hour1]);//
770 1 writeword2(2,40,BMP[hour2]);//
771 1 //分//
772 1 writeword2(2,64,BMP[min1]);//
773 1 writeword2(2,72,BMP[min2]);//
774 1 //秒//
775 1 writeword2(2,96,BMP[sec1]);//
776 1 writeword2(2,104,BMP[sec2]);//
777 1 //************kuang*********
778 1 writeword1(4,0,niankf);//
779 1 writeword1(4,24,ji);//吉
780 1 writeword1(4,48,yuekf);//
781 1 writeword1(4,72,ru);//如
782 1 writeword1(4,96,rikf);//
783 1
784 1 writeword1(6,0,shikf);//
785 1 writeword1(6,24,xiang);//祥
786 1 writeword1(6,48,fenkf);//
787 1 writeword1(6,72,yi);//意
788 1 writeword1(6,96,niank1f);//
789 1 //********图标2*********
790 1
791 1 // delay(50);
792 1 clearset(2,adr);
C51 COMPILER V7.01 YOUBING 12/27/2006 14:57:19 PAGE 14
793 1 flag=-flag;
794 1 if(flag==-1) {adr=16,writeword1(2,adr,shu1);}
795 1 else adr=0;
796 1
797 1 }
798
799 void timer0() interrupt 1
800 {
801 1 TH0=0xdc; //Timer0置10ms定时初值dc00H(ffffH=65535D,dc00H=56320D)
802 1 TL0=0x00; //定时时间=(65535-56320)*(1/11.0592)*12=10ms (f0=11.0592Mhz)
803 1 sec100++;
804 1 if(sec100 >= 100) //1秒时间 (100*10ms=1000ms=1s)
805 1 {
806 2 sec100 = 0;
807 2 sec++;
808 2 // pro_timedate();//调用时间和日期处理程序
809 2 }
810 1
811 1 }
812
813 //时间和日期处理程序
814 void pro_timedate()
815 {
816 1
817 1 if(sec > 59)
818 1 {sec = 0;
819 2 min++;}
820 1
821 1 if(min>59)
822 1 {min=0;
823 2 hour++;}
824 1
825 1 if(hour>23)
826 1 {hour=0;
827 2 week++;
828 2 if (week>6) week=1;
829 2 day++;}
830 1
831 1 if (month==1||month==3||month==5||month==7||month==8||month==10||month==12)
832 1 if (day>31) {day=1;month++;} //大月31天
833 1 if (month==4||month==6||month==9||month==11)
834 1 if (day>30) {day=1;month++;} //小月30天
835 1 if (month==2)
836 1 {if((year%4==0 && year%100!=0)||year%400==0) //闰年的条件
837 2 {if (day>29) {day=1;month++;}} //闰年2月为29天
838 2 else
839 2 {if (day>28) {day=1;month++;}} //平年2月为28天
840 2 }
841 1 if (month>12) {month=1;year++;}
842 1
843 1
844 1
845 1 }
846 //***************8按键处理**************
847 void keyhangdle()
848 {
849 1 if(yearup==0)
850 1 {
851 2 delay(5);
852 2 if(yearup==0)
853 2 {
854 3 writeword1(4,0,niank);//
C51 COMPILER V7.01 YOUBING 12/27/2006 14:57:19 PAGE 15
855 3 year++;
856 3 }
857 2 }
858 1 else if(monthup==0)
859 1 {
860 2 delay(5);
861 2 if(monthup==0)
862 2 {
863 3 writeword1(4,48,yuek);//
864 3 month++;
865 3 }
866 2 }
867 1 else if(dayup==0)
868 1 {
869 2 delay(5);
870 2 if(dayup==0)
871 2 {
872 3
873 3 writeword1(4,96,rik);//
874 3 day++;
875 3 }
876 2 }
877 1 else if(hourup==0)
878 1 {
879 2 delay(5);
880 2 if(hourup==0)
881 2 {
882 3
883 3 writeword1(6,0,shik);//
884 3 hour++;
885 3 }
886 2 }
887 1 else if(minup==0)
888 1 {
889 2 delay(5);
890 2 if(minup==0)
891 2 {
892 3 writeword1(6,48,fenk);//
893 3 min++;
894 3 }
895 2 }
896 1 else if(yeardown==0)
897 1 {
898 2 delay(5);
899 2 if(yeardown==0)
900 2 {
901 3 writeword1(6,96,niank1);//
902 3 year--;
903 3 }
904 2 }
905 1
906 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 3278 ----
CONSTANT SIZE = 1664 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 43 42
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V7.01 YOUBING 12/27/2006 14:57:19 PAGE 16
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -