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

📄 cm320240._c

📁 CM320240程序
💻 _C
字号:
//ICC-AVR application builder : 2008-3-11 14:38:57
// Target : M128
// Crystal: 8.0000Mhz
// CM320240-7 EricYY

#include <iom128v.h>
#include <macros.h>

//
#define data PORTA
#define lcd_busy PORTB0
#define lcd_int PORTB1
#define lcd_cs1 PORTB2
#define lcd_cs2 PORTB3
#define lcd_rs PORTB4
#define lcd_wr PORTB5
#define lcd_rd PORTB6
#define lcd_rst PORTB7



void port_init(void)
{
 PORTA = 0x00;
 DDRA  = 0xFF;
 PORTB = 0x00;
 DDRB  = 0xFF;
 PORTC = 0x00; //m103 output only
 DDRC  = 0x00;
 PORTD = 0x00;
 DDRD  = 0x00;
 PORTE = 0x00;
 DDRE  = 0x00;
 PORTF = 0x00;
 DDRF  = 0x00;
 PORTG = 0x00;
 DDRG  = 0x00;
}

//call this routine to initialize all peripherals
void init_devices(void)
{
 //stop errant interrupts until set up
 CLI(); //disable all interrupts
 XDIV  = 0x00; //xtal divider
 XMCRA = 0x00; //external memory
 port_init();

 MCUCR = 0x00;
 EICRA = 0x00; //extended ext ints
 EICRB = 0x00; //extended ext ints
 EIMSK = 0x00;
 TIMSK = 0x00; //time interrupt sources
 ETIMSK = 0x00; //extended timer interrupt sources
 SEI(); //re-enable interrupts
 //all peripherals are now initialized
}

//delay 1ms
void delay_1ms(void)
{
 unsigned int i;
 for(i=1;i<(unsigned int)(8*143-2);i++)
 ;
}

//communiate with CM320240****************************
//write to register
void lcd_regwr(unsigned char regdata)
{
 data=regdata;//将传输数据置于PORTA
 lcd_cs1=0;//模块使能,开始接收数据
 ;
 lcd_rd=1;//禁止读
 ;
 lcd_rs=0;//存取缓存器
 ;
 lcd_wr=0;//开启写,允许写数据进入缓存器
 delay_1ms();
 delay_1ms();
 ;
 lcd_wr=1;//关闭写
 ;
 lcd_rs=1;
 ;
 lcd_cs1=1;//模块禁止,切断与MCU联系,对于PORT口可以进行复用
}

//write to DDRAM
void lcd_dataWrite(unsigned char wrdata)
{
 data=wrdata;
 lcd_cs1=0;//模块使能,开始接收数据
 ;
 lcd_rd=1;//禁止读
 ;
 lcd_rs=1;//存取DDRAM
 ;
 lcd_wr=0;//开启写,允许写数据进入缓存器
 delay_1ms();
 delay_1ms();
 ;
 lcd_wr=1;//关闭写
 ;
 lcd_rs=1;
 ;
 lcd_cs1=1;//模块禁止,切断与MCU联系,对于PORT口可以进行复用
}

//向固定的配制参数写入数值,用来初始化LCD
void lcd_regWrite(unsigned char regname,unsigned char regdata)
{
 lcd_regwr(regname);
 delay_1ms();
 delay_1ms();
 delay_1ms();
 delay_1ms();
 delay_1ms();
 delay_1ms();
 delay_1ms();
 delay_1ms();
 delay_1ms();
 delay_1ms();
 lcd_regwr(regdata);
}

//读缓存器的固定地址数据
unsigned lcd_regread(unsigned regname)
{
 unsigned regdata;
 lcd_regwr(regname);
 data=oxff;//端口赋初值
 lcd_cs1=0;
 ;
 lcd_wr=1;
 ;
 lcd_rs=0;
 ;
 lcd_rd=0;//开始读
 delay_1ms();
 delay_1ms();
 regdata=data;
 delay_1ms();
 delay_1ms();
 lcd_rd=1;//关闭读
 ;
 lcd_rs=1;
 ;
 lcd_cs1=1;//模块禁止
 ;
 return regdata;
}

void main(void)
{
 while(1)
 ;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -