📄 main.c
字号:
#include <hidef.h> /* for EnableInterrupts macro */
#include <MC68HC908GZ16.h> /* include peripheral declarations */
#include <stdio.h>
#define D_I PTA_PTA3
#define R_W PTA_PTA2
#define E PTA_PTA4
#define CS1 PTC_PTC2
#define CS2 PTC_PTC3
char buf[20];
void lcd_busy(void) {DDRD_DDRD7=0;
D_I=0;R_W=1;
while(1){E=1;asm nop;
if(!PTD_PTD7)break;}
E=0;DDRD_DDRD7=1;
}
void set_xy(unsigned char x,unsigned char y) {
if (x>=64) {CS1=0;CS2=1;} else {CS2=0;CS1=1;}
lcd_busy();
E=1;D_I=0;R_W=0;PTD=0x40|x;E=0;
lcd_busy();
E=1;D_I=0;R_W=0;PTD=0xb8|y;E=0;
}
void lw(unsigned char x,unsigned char y,unsigned char dd) {
set_xy(x,y);
lcd_busy();E=1;D_I=1;R_W=0;PTD=dd;E=0;
}
void lcd_init(void) {
unsigned char x,y;
E=1;D_I=0;R_W=0;PTD=0x3f;E=0;
for (y=0;y<8;y++) {
for (x=0;x<128;x++) lw(x,y,0x00);
}
}
void initial(void){
CONFIG2=0x0b; //Bit 3:Enable CAN, Bit 2:Disable extra divide-by-128 prescaler in timebase module
//Bit 0:Internal data bus clock used as clock source for SCI
CONFIG1=0x3b;//0x4b;//LVI disable, COP disable
SCBR = 0x00;
SCPSC=0x2e;
SCC1 = 0x40;SCC2 = 0x08;SCS1;
DDRA_DDRA2=1;
DDRA_DDRA3=1;
DDRA_DDRA4=1;
DDRC_DDRC2=1;
DDRC_DDRC3=1;
DDRD=0xff;
}
void Transmit (unsigned char* sMessage){
while(*sMessage!= 0){SCDR = *sMessage;sMessage++;while(!SCS1_SCTE);}
}
unsigned char hz[]={
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xc0,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x40,0xf0,0x0f,0x02,0x00,0xfe,0x92,0x92,0x81,0x91,0x92,0x92,0xfe,0x00,0x00,
0x00,0x00,0x7f,0x00,0x40,0x20,0x11,0x0c,0x03,0x00,0x3f,0x40,0x40,0x41,0x78,0x00,
0x00,0x10,0x10,0x10,0x90,0x70,0x00,0xff,0x20,0x60,0x90,0x08,0x04,0x00,0x00,0x00,
0x10,0x10,0x08,0x06,0x01,0x40,0x80,0x7f,0x00,0x00,0x01,0x06,0x0c,0x18,0x08,0x00,
0x10,0x10,0xf0,0x1f,0x10,0xf0,0x80,0x82,0x82,0x82,0xf2,0x8a,0x86,0x82,0x80,0x00,
0x80,0x43,0x22,0x14,0x0c,0x73,0x20,0x00,0x40,0x80,0x7f,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x3f,0xc2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x40,0x20,0x10,0x0c,0x03,0x00,0x00,0x01,0x06,0x0c,0x18,0x30,0x60,0x20,0x00
};
void dh(unsigned char x,unsigned char y,unsigned char n) {
unsigned char i,dd;
for (i=0;i<16;i++) {
dd=hz[i+n*32];
lw(x+i,y,dd);
dd=hz[i+n*32+16];
lw(x+i,y+1,dd);
}
}
void main(void) {
initial();
EnableInterrupts; /* enable interrupts */
/* include your code here */
lcd_init();
dh(0,0,0);
dh(18,2,4);
for(;;) {
} /* loop forever */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -