📄 dfhfgh.txt
字号:
/*********************************************
This program was produced by the
CodeWizardAVR V1.23.8d Standard
Automatic Program Generator
?Copyright 1998-2003 HP InfoTech s.r.l.
http://www.hpinfotech.ro
e-mail:office@hpinfotech.ro
Project :
Version :
Date : 2005-7-26
Author : jack
Company :
Comments:
Chip type : ATmega16
Program type : Application
Clock frequency : 8.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*********************************************/
#include <stdio.h>
#include <mega16.h>
#define uchar unsigned char
#define uint unsigned int
#define GXM12864_KS0108_ID PORTC.7
#define GXM12864_KS0108_E PORTC.0
#define GXM12864_KS0108_CSA PORTC.6
#define GXM12864_KS0108_CSB PORTC.1
char flash *p_to_flash;
uchar j,n,m,k,t,e,o,p,q,b;
uint i,u,distance,time_now,number,temp;
bit s=0,a,c;
uint distance_fe[4]={0,0,0,0};
flash uchar X0[]={/*-- 文字: 0 --*/0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00};
flash uchar X1[]={/*-- 文字: 1 --*/0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};
flash uchar X2[]={/*-- 文字: 2 --*/0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00};
flash uchar X3[]={/*-- 文字: 3 --*/0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00};
flash uchar X4[]={/*-- 文字: 4 --*/0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00};
flash uchar X5[]={/*-- 文字: 5 --*/0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00};
flash uchar X6[]={/*-- 文字: 6 --*/0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00};
flash uchar X7[]={/*-- 文字: 7 --*/0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00};
flash uchar X8[]={/*-- 文字: 8 --*/0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00};
flash uchar X9[]={/*-- 文字: 9 --*/0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00};
flash uchar X27[]={/*-- 文字: ! --*/0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00};
flash uchar X28[]={/*-- 文字: : --*/0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00};
flash uchar X21[]={/*-- 文字: , --*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00};
flash uchar X10[] = {/*-- 文字: 河,宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x60,0x01,0xC6,0x30,0x02,0xE2,0x22,0x22,0xE2,0x02,0x02,0xFE,0x02,0x02,0x00,0x04,0x04,0xFF,0x00,0x00,0x00,0x07,0x02,0x02,0x07,0x40,0x80,0x7F,0x00,0x00,0x00};
flash uchar X11[] = {/*-- 文字: 海;宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x60,0x01,0xF6,0x00,0x10,0xF8,0x17,0x34,0x54,0x14,0x14,0xF4,0x04,0x04,0x00,0x04,0x04,0xFF,0x00,0x01,0x01,0x1F,0x11,0x13,0x15,0x51,0x91,0x7F,0x11,0x11,0x00};
flash uchar X12[] = {/*-- 文字: 大;宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x01,0x06,0x08,0x30,0x60,0xC0,0x40,0x00};
flash uchar X13[] = {/*-- 文字: 学;宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00};
flash uchar X14[] = {/*-- 文字: 常;宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x20,0x18,0x08,0x09,0xEE,0xAA,0xA8,0xAF,0xA8,0xA8,0xEC,0x0B,0x2A,0x18,0x08,0x00,0x00,0x00,0x3E,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x12,0x22,0x1E,0x00,0x00,0x00};
flash uchar X15[] = {/*-- 文字: 州;宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0xE0,0x00,0x00,0xFF,0x20,0xC0,0x00,0xFE,0x10,0x60,0x80,0x00,0xFF,0x00,0x00,0x01,0x80,0x60,0x18,0x07,0x00,0x00,0x00,0x7F,0x00,0x00,0x01,0x00,0xFF,0x00,0x00};
flash uchar X16[] = {/*-- 文字: 校;宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x08,0x88,0x68,0xFF,0x28,0x48,0x00,0x88,0x68,0x09,0x0E,0x08,0xA8,0x48,0x88,0x00,0x02,0x01,0x00,0xFF,0x00,0x40,0x42,0x21,0x26,0x18,0x18,0x26,0x61,0xC0,0x40,0x00};
flash uchar X17[] = {/*-- 文字: 区;宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0xFE,0x02,0x02,0x12,0x22,0x22,0x42,0x82,0x62,0x1E,0x0A,0x02,0x02,0x00,0x00,0x00,0x3F,0x20,0x30,0x28,0x24,0x22,0x21,0x20,0x21,0x26,0x3C,0x28,0x20,0x00,0x00};
flash uchar X18[] = {/*-- 文字: 欢;宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x14,0x24,0x44,0x84,0x64,0x1C,0x20,0x18,0x0F,0xE8,0x08,0x08,0x28,0x18,0x08,0x00,0x20,0x10,0x4C,0x43,0x43,0x2C,0x20,0x10,0x0C,0x03,0x06,0x18,0x30,0x60,0x20,0x00};
flash uchar X19[] = {/*-- 文字: 迎;宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x40,0x41,0xCE,0x04,0x00,0xFC,0x04,0x02,0x02,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,0x40,0x20,0x1F,0x20,0x40,0x47,0x42,0x41,0x40,0x5F,0x40,0x42,0x44,0x43,0x40,0x00};
flash uchar X20[] = {/*-- 文字: 您;此字体下对应的点阵为:宽x高=16x16 --*/
0x80,0x40,0x30,0xFC,0x03,0x90,0x68,0x06,0x04,0xF4,0x04,0x24,0x44,0x8C,0x04,0x00,0x00,0x20,0x38,0x03,0x38,0x40,0x40,0x49,0x52,0x41,0x40,0x70,0x00,0x09,0x30,0x00};
flash uchar X23[]={/*-- 文字: 时;此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0xFC,0x44,0x44,0x44,0xFC,0x10,0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,0x00,0x07,0x04,0x04,0x04,0x07,0x00,0x00,0x03,0x40,0x80,0x7F,0x00,0x00,0x00,0x00};
flash uchar X24[]={/*-- 文字: 间;此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0xF8,0x01,0x06,0x00,0xF0,0x92,0x92,0x92,0x92,0xF2,0x02,0x02,0xFE,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x07,0x04,0x04,0x04,0x04,0x07,0x40,0x80,0x7F,0x00,0x00};
flash uchar X25[] = {
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; /*全黑*/
flash uchar X26[] = {
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}; /*全白*/
flash uchar X29[] = {
/*-- 文字: 行 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x08,0x84,0xC6,0x73,0x22,0x40,0x44,0x44,0x44,0xC4,0x44,0x44,0x44,0x40,0x00,0x02,0x01,0x00,0xFF,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00};
flash uchar X30[] = {
/*-- 文字: 车 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x04,0x84,0xC4,0xA4,0x9C,0x87,0x84,0xF4,0x84,0x84,0x84,0x84,0x84,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00};
flash uchar X31[] = {
/*-- 文字: 驶 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x02,0xFA,0x82,0x82,0xFE,0x80,0x80,0xF8,0x88,0x88,0xFF,0x88,0x88,0xF8,0x00,0x00,0x08,0x08,0x08,0x44,0x84,0x40,0x3F,0x42,0x24,0x18,0x17,0x20,0x60,0xC0,0x40,0x00};
flash uchar X32[] = {
/*-- 文字: 路 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x7E,0x22,0xE2,0x3E,0x20,0x10,0x08,0x0F,0xB4,0x44,0xA4,0x9C,0x04,0x00,0x00,0x20,0x3F,0x20,0x1F,0x11,0x11,0x02,0x7F,0x23,0x22,0x22,0x22,0x7E,0x03,0x01,0x00};
flash uchar X33[] = {
/*-- 文字: 程 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x12,0xD2,0xFE,0x91,0x11,0x80,0xBF,0xA1,0xA1,0xA1,0xA1,0xBF,0x80,0x00,0x00,0x04,0x03,0x00,0xFF,0x00,0x41,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x44,0x40,0x00};
flash uchar X34[] = {
/*-- 文字: 厘 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0xFE,0x02,0xFA,0x2A,0x2A,0x2A,0xFA,0x2A,0x2A,0x2A,0xFA,0x02,0x02,0x00,0x60,0x1C,0x43,0x40,0x4B,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x4B,0x48,0x40,0x00};
flash uchar X35[] = {
/*-- 文字: 米 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x20,0x20,0x22,0x24,0x38,0xE0,0x20,0xFF,0x60,0xA0,0x30,0x28,0x26,0x20,0x20,0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0xFF,0x00,0x01,0x06,0x08,0x18,0x30,0x10,0x00};
flash uchar X36[] = {
/*-- 文字: 秒 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x12,0x12,0xD2,0xFE,0x91,0x11,0xC0,0x38,0x10,0x00,0xFF,0x00,0x08,0x10,0x60,0x00,0x04,0x03,0x00,0xFF,0x00,0x83,0x80,0x40,0x40,0x20,0x23,0x10,0x08,0x04,0x03,0x00};
flash uchar X37[] = {
/*-- 文字: 检 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x08,0x88,0x68,0xFF,0x28,0x48,0x10,0x48,0x44,0x43,0x44,0x48,0x50,0x10,0x10,0x00,0x02,0x01,0x00,0x7F,0x00,0x20,0x22,0x2C,0x21,0x2E,0x30,0x28,0x27,0x22,0x20,0x00};
flash uchar X38[] = {
/*-- 文字: 测 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00,0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F,0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00};
flash uchar X39[] = {
/*-- 文字: 铁 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x40,0x30,0x2C,0xEB,0x28,0x08,0xC0,0xBC,0x90,0x90,0xFF,0x90,0x90,0x90,0x80,0x00,0x01,0x01,0x01,0x7F,0x21,0x51,0x48,0x20,0x10,0x0C,0x03,0x0C,0x30,0x60,0x20,0x00};
flash uchar X40[] = {
/*-- 文字: 片 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0xFE,0x10,0x10,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x18,0x10,0x00,0x80,0x40,0x30,0x0F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0x00,0x00,0x00,0x00};
flash uchar X41[] = {
/*-- 文字: 数 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x92,0x54,0x38,0xFF,0x38,0x54,0x52,0x80,0xF0,0x1F,0x12,0x10,0xF0,0x10,0x00,0x42,0x42,0x2A,0x2E,0x13,0x1A,0x26,0x02,0x40,0x20,0x13,0x0C,0x33,0x60,0x20,0x00};
flash uchar X42[] = {
/*-- 文字: 块 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x10,0xFF,0x10,0x10,0x00,0x08,0x08,0xFF,0x08,0x08,0x08,0xF8,0x00,0x00,0x00,0x08,0x18,0x0F,0x04,0x85,0x41,0x31,0x0D,0x03,0x05,0x09,0x11,0x31,0x61,0x21,0x00};
flash uchar X43[] = {
/*-- 文字: 距 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x3E,0x22,0xE2,0x22,0x3E,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0xE2,0x02,0x00,0x40,0x7F,0x20,0x3F,0x11,0x11,0x00,0x7F,0x42,0x42,0x42,0x42,0x42,0x43,0x40,0x00};
flash uchar X44[] = {
/*-- 文字: 离 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x04,0x04,0xF4,0x84,0xCC,0xAD,0x96,0x94,0xAC,0xCC,0x84,0xF4,0x06,0x04,0x00,0x00,0x00,0xFE,0x02,0x1A,0x16,0x12,0x13,0x12,0x16,0x1A,0x72,0x82,0x7E,0x00,0x00};
void delay(uint n)//延时
{
for (i=0;i<n;i++)//执行n次延时
for (j=0;j<200;j++){}
}
// External Interrupt 2 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
if(c==0)
{
PORTB.7=1;
distance_fe[t]=distance;
t++;
delay(10);
PORTB.7=0;
}
a=!a;
}
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0xed;
if(b==1)
{
s=0;
if(k>4)
{k=0;s=1;}
k++;
PORTD.7=s;
}
if(b==2)
{
s=0;
if(k>2)
{k=0;s=1;}
k++;
PORTD.7=s;
}
if(b==3)
{
s=1;
if(k>2)
{k=0;s=0;}
k++;
PORTD.7=s;
}
if(e==200)
{
e=0;
time_now++;
number=TCNT1;
distance=(number/4)*12;
}
e++;
}
void nop(void)//延时
{for (j=0;j<5;j++){}}
void LCD_C_D(uchar flag,uchar l) //写命令数据flag=1 common flag=0
{
GXM12864_KS0108_ID=0 ;//控制引脚赋值,准备读状态
nop();nop(); //等待
GXM12864_KS0108_ID=!flag;
PORTA=l; //写命令
GXM12864_KS0108_E=1;//读入数据允许
nop(); //延时
GXM12864_KS0108_E=0;//数据锁定
}
void dis_one_zi(uchar x_add,uchar y_add,char flash *po_to_flash) //写一个字
{
uchar i,j,w;
j=x_add*2+0xb8;
w=(y_add<4?y_add:y_add-4)*16+0x40; //左右半屏判断
GXM12864_KS0108_CSA=(y_add<4);
GXM12864_KS0108_CSB=!(y_add<4);
LCD_C_D(1,j);
LCD_C_D(1,w);
for(i=0;i<32;i++)//循环显示内容
{
if(i==16)
{
LCD_C_D(1,j+1);
LCD_C_D(1,w);
}
LCD_C_D(0,*po_to_flash++);
}
GXM12864_KS0108_CSA=GXM12864_KS0108_CSB=0;
}
void dis_one_ban_zi(uchar x_add,uchar y_add,uchar k_add,char flash *po_to_flash) //写数字K=0,显示前半个字
{
uchar i,j,w,e;
if(k_add==0){e=0;}
if(k_add==1){e=8;}
j=x_add*2+0xb8;
w=(y_add<4?y_add:y_add-4)*16+0x40; //左右半屏判断
GXM12864_KS0108_CSA=(y_add<4);
GXM12864_KS0108_CSB=!(y_add<4);
LCD_C_D(1,j);
LCD_C_D(1,w+e);
for(i=0;i<16;i++)//循环显示内容
{
if(i==8)
{
LCD_C_D(1,j+1);
LCD_C_D(1,w+e);
}
LCD_C_D(0,*po_to_flash++);
}
GXM12864_KS0108_CSA=GXM12864_KS0108_CSB=0;
}
void CLRLCD(void) //清屏
{
p_to_flash=X26;
for(n=0;n<4;n++){
for(m=0;m<8;m++)
{dis_one_zi(n,m,p_to_flash);}}
}
void GXM12864_KS0108_int(void) //显示屏初始化
{
GXM12864_KS0108_CSA=1;GXM12864_KS0108_CSB=0;
LCD_C_D(1,0x3f); // 左半屏
GXM12864_KS0108_CSA=0;GXM12864_KS0108_CSB=1;
LCD_C_D(1,0X3f); // 右半屏
//控制显示开
GXM12864_KS0108_CSA=1;GXM12864_KS0108_CSB=0;
LCD_C_D(1,0Xc0); // 左半屏
GXM12864_KS0108_CSA=0;GXM12864_KS0108_CSB=1;
LCD_C_D(1,0Xc0); // 右半屏
// 写起始行
GXM12864_KS0108_CSA=1;GXM12864_KS0108_CSB=0;
LCD_C_D(1,0X0b8); // 左半屏
GXM12864_KS0108_CSA=0;GXM12864_KS0108_CSB=1;
LCD_C_D(1,0X0b8); // 右半屏
//设置页地址
GXM12864_KS0108_CSA=1;GXM12864_KS0108_CSB=0;
LCD_C_D(1,0X40); // 左半屏
GXM12864_KS0108_CSA=0;GXM12864_KS0108_CSB=1;
LCD_C_D(1,0X40); // 右半屏
//设置y地址指针
CLRLCD();//清屏
}
void switch_p(uchar i) //指针赋值
{
switch(i)
{
case 0:{p_to_flash=X0;}break;
case 1:{p_to_flash=X1;}break;
case 2:{p_to_flash=X2;}break;
case 3:{p_to_flash=X3;}break;
case 4:{p_to_flash=X4;}break;
case 5:{p_to_flash=X5;}break;
case 6:{p_to_flash=X6;}break;
case 7:{p_to_flash=X7;}break;
case 8:{p_to_flash=X8;}break;
case 9:{p_to_flash=X9;}break;
}
}
void display_frist(void)
{
GXM12864_KS0108_int(); //液晶初始化
p_to_flash=X10; dis_one_zi(0,0,p_to_flash); //河海大学常州校区
p_to_flash=X11; dis_one_zi(0,2,p_to_flash);
p_to_flash=X12; dis_one_zi(0,4,p_to_flash);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -