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

📄 main.c

📁 motorola单片机MCHC908的使用方法以及例程
💻 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 + -