单片机程序代码 主函数
- #include <reg52.h>
- #include"LCD.H"
- #include "DS1302.h"
- #define uint unsigned int
- #define uchar unsigned char
- uchar code hz4[4][32]=
- { //'*'
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0xD6,0x00,0x38,0x00,
- 0x38,0x00,0xD6,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- //
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- /*-- 文字: 元 --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x04,0x40,0x04,0x40,
- 0x04,0x40,0x04,0x40,0x08,0x40,0x08,0x42,0x10,0x42,0x20,0x42,0x40,0x3E,0x80,0x00,
- /*-- 文字: — --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFC,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- };
- uchar code hz10[4][32]={
- /*-- 文字: 本 --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFC,0x03,0x80,0x05,0x40,0x05,0x40,
- 0x09,0x20,0x11,0x10,0x21,0x08,0x4F,0xE4,0x81,0x02,0x01,0x00,0x01,0x00,0x01,0x00,
- /*-- 文字: 次 --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x00,0x80,0x40,0x80,0x20,0x80,0x20,0xFC,0x01,0x04,0x09,0x08,0x0A,0x40,0x14,0x40,
- 0x10,0x40,0xE0,0xA0,0x20,0xA0,0x21,0x10,0x21,0x10,0x22,0x08,0x24,0x04,0x08,0x02,
- /*-- 文字: 点 --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x02,0x00,0x02,0x00,0x02,0x00,0x03,0xFC,0x02,0x00,0x02,0x00,0x3F,0xF0,0x20,0x10,
- 0x20,0x10,0x20,0x10,0x3F,0xF0,0x00,0x00,0x24,0x88,0x22,0x44,0x42,0x44,0x80,0x04,
- /*-- 文字: 菜 --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x08,0x20,0x08,0x20,0xFF,0xFE,0x08,0x20,0x00,0x10,0x00,0xF8,0x3F,0x00,0x11,0x10,
- 0x08,0x20,0x01,0x00,0x7F,0xFC,0x05,0x40,0x09,0x20,0x31,0x18,0xC1,0x06,0x01,0x00,
- };
- uchar code hz5[10][32]=
- {/*-- 文字: 0 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x42,0x00,0x42,0x00,0x42,0x00,
- 0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x24,0x00,0x18,0x00,0x00,0x00,0x00,0x00,
- /*-- 文字: 1 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x38,0x00,0x08,0x00,0x08,0x00,0x08,0x00,
- 0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,
- /*-- 文字: 2 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x02,0x00,
- 0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x42,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,
- /*-- 文字: 3 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x42,0x00,0x42,0x00,0x02,0x00,0x04,0x00,
- 0x18,0x00,0x04,0x00,0x02,0x00,0x42,0x00,0x42,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,
- /*-- 文字: 4 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x0C,0x00,0x0C,0x00,0x14,0x00,0x24,0x00,
- 0x24,0x00,0x44,0x00,0x7F,0x00,0x04,0x00,0x04,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,
- /*-- 文字: 5 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x78,0x00,
- 0x44,0x00,0x02,0x00,0x02,0x00,0x42,0x00,0x44,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
- /*-- 文字: 6 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x40,0x00,0x40,0x00,0x5C,0x00,
- 0x62,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x22,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,
- /*-- 文字: 7 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x42,0x00,0x04,0x00,0x04,0x00,0x08,0x00,
- 0x08,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,
- /*-- 文字: 8 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x24,0x00,
- 0x18,0x00,0x24,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,
- /*-- 文字: 9 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00,0x42,0x00,0x42,0x00,0x42,0x00,
- 0x46,0x00,0x3A,0x00,0x02,0x00,0x02,0x00,0x24,0x00,0x18,0x00,0x00,0x00,0x00,0x00,
- };
- uchar code hz11[5][32]=
- {
- /*-- 文字: 好 --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x10,0x00,0x10,0xFC,0x10,0x04,0x10,0x08,0xFC,0x10,0x24,0x20,0x24,0x20,0x25,0xFE,
- 0x24,0x20,0x48,0x20,0x28,0x20,0x10,0x20,0x28,0x20,0x44,0x20,0x84,0xA0,0x00,0x40,
- /*-- 文字: 运 --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x00,0x00,0x23,0xF8,0x10,0x00,0x10,0x00,0x00,0x00,0x07,0xFC,0xF0,0x40,0x10,0x80,
- 0x11,0x10,0x12,0x08,0x17,0xFC,0x12,0x04,0x10,0x00,0x28,0x00,0x47,0xFE,0x00,0x00,
- /*-- 文字: 来 --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFC,0x01,0x00,0x11,0x10,0x09,0x10,0x09,0x20,
- 0xFF,0xFE,0x03,0x80,0x05,0x40,0x09,0x20,0x31,0x18,0xC1,0x06,0x01,0x00,0x01,0x00,
- /*-- 文字: 菜 --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x08,0x20,0x08,0x20,0xFF,0xFE,0x08,0x20,0x00,0x10,0x00,0xF8,0x3F,0x00,0x11,0x10,
- 0x08,0x20,0x01,0x00,0x7F,0xFC,0x05,0x40,0x09,0x20,0x31,0x18,0xC1,0x06,0x01,0x00,
- /*-- 文字: 馆 --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x20,0x40,0x20,0x20,0x23,0xFE,0x3A,0x02,0x4C,0x04,0x51,0xF8,0x81,0x08,0x21,0x08,
- 0x21,0xF8,0x21,0x00,0x21,0x00,0x21,0xFC,0x29,0x04,0x31,0x04,0x21,0xFC,0x01,0x04,
- };
- uchar code hz12[2][32]=
- {
- /*-- 文字: 星 --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x00,0x00,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x01,0x00,0x11,0x00,
- 0x1F,0xF8,0x21,0x00,0x41,0x00,0x1F,0xF0,0x01,0x00,0x01,0x00,0x7F,0xFC,0x00,0x00,
- /*-- 文字: 期 --*/
- /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
- 0x22,0x00,0x22,0x7C,0x7F,0x44,0x22,0x44,0x22,0x44,0x3E,0x7C,0x22,0x44,0x22,0x44,
- 0x3E,0x44,0x22,0x7C,0x22,0x44,0xFF,0x44,0x04,0x84,0x22,0x84,0x41,0x14,0x82,0x08,
- };
- void welcome3()
- {
- uchar i;
- for(i=0;i<8;i++)
- display_hz(0,0+i,hz4[1]);
- for(i=0;i<8;i++)
- display_hz(1,0+i,hz4[1]);
- for(i=0;i<8;i++)
- display_hz(2,0+i,hz4[1]);
- for(i=0;i<8;i++)
- display_hz(3,0+i,hz4[1]);
- }
- void welcome2()
- {
- uchar i;
- for(i=0;i<5;i++)
- display_hz(0,1+i,hz11[i]);
- Ds1302ReadTime();
- display_hz(1,0,hz5[2]);
- display_hz(1,1,hz5[0]);
- display_hz(1,2,hz5[TIME[6]/16]);
- display_hz(1,3,hz5[(TIME[6]&0x0f)]);
- display_hz(1,4,hz4[3]);
- display_hz(1,5,hz5[TIME[4]/16]);
- display_hz(1,6,hz5[(TIME[4]&0x0f)]);
- display_hz(1,7,hz4[3]);
- display_hz(2,0,hz5[TIME[3]/16]);
- display_hz(2,1,hz5[(TIME[3]&0x0f)]);
- display_hz(2,2,hz4[3]);
- display_hz(2,3,hz5[TIME[2]/16]);
- display_hz(2,4,hz5[(TIME[2]&0x0f)]);
- display_hz(2,5,hz4[3]);
- display_hz(2,6,hz5[TIME[1]/16]);
- display_hz(2,7,hz5[(TIME[1]&0x0f)]);
- display_hz(3,0,hz4[3]);
- display_hz(3,1,hz5[TIME[0]/16]);
- display_hz(3,2,hz5[(TIME[0]&0x0f)]);
- display_hz(3,4,hz12[0]);
- display_hz(3,5,hz12[1]);
- display_hz(3,6,hz5[(TIME[5]&0x07)]);
- }
- void main()
- {
- uchar i=0,j,t;
- uint s;
- init_12864();
- Ds1302Init();
- while(1)
- {
- if(i==0) welcome2();
- if(k1==0)
- {
- delay(5);
- if(k1==0)
- {
- while(!k1);
- i++;
- switch(i)
- {
- case 1:
- welcome3();
- welcome();
- display_hz(0,0,hz4[0]);
- break;
- case 2:
- s+=58*j;
- display_hz(0,0,hz4[1]);
- display_hz(1,0,hz4[0]);
- break;
- case 3:
- s+=15*j;
- display_hz(1,0,hz4[1]);
- display_hz(2,0,hz4[0]);
-
- break;
- case 4:
- s+=12*j;
- display_hz(2,0,hz4[1]);
- display_hz(3,0,hz4[0]);
-
- break;
- case 5:
- s+=8*j;
- display_hz(3,0,hz4[1]);
- welcome1();
- display_hz(0,0,hz4[0]);
- break;
- case 6:
- s+=78*j;
- display_hz(0,0,hz4[1]);
- display_hz(1,0,hz4[0]);
- break;
- case 7:
- s+=8*j;
- display_hz(1,0,hz4[1]);
- display_hz(2,0,hz4[0]);
- break;
- case 8:
- s+=88*j;
- display_hz(2,0,hz4[1]);
- display_hz(3,0,hz4[0]);
- break;
- case 9:
- s+=12*j;
- i=1;
- display_hz(3,0,hz4[1]);
- welcome();
- display_hz(0,0,hz4[0]);
- break;
- }
- j=0;
- }
- }
- if(k2==0)
- {
- delay(5);
- if(k2==0)
- {
- while(!k2);
- j++;
- if(j==10)j=1;
- switch(i)
- {
- case 1:
- display_hz(0,7,hz5[j]);
- break;
- case 2:
- display_hz(1,7,hz5[j]);
- break;
- case 3:
- display_hz(2,7,hz5[j]);
- break;
- case 4:
- display_hz(3,7,hz5[j]);
- break;
- case 5:
- display_hz(0,7,hz5[j]);
- break;
- case 6:
- display_hz(1,7,hz5[j]);
- break;
- case 7:
- display_hz(2,7,hz5[j]);
-
- break;
- case 8:
- display_hz(3,7,hz5[j]);
- break;
- }
- }
- }
- if(k3==0)
- {
- delay(5);
- if(k3==0)
- {
- uint ge,shi,bai;
- while(!k3);
- switch(i)
- {
- case 1:
- s+=58*j;
- break;
- case 2:
- s+=15*j;
- break;
- case 3:
- s+=12*j;
- break;
- case 4:
- s+=8*j;
- break;
- case 5:
- s+=78*j;
- break;
- case 6:
- s+=8*j;
- break;
- case 7:
- s+=88*j;
- break;
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
全部资料51hei下载地址:
用51 驱动P 12864F显示控制菜单系统.zip
(108.23 KB, 下载次数: 60)
|