首先要感谢 检讨(网名),给我供给的思路。不然我那个中止按钮估量弄到今年年底都搞不定了。
再要感谢 天狼星 供给的视屏教程,向你的无私奉献问候。以下是源代码,欢迎各位高手拍砖。别的还有一个修正版别功用更完善我们能够参阅一下 :http://www.51hei.com/mcu/2721.html
//环境:编译为%&&&&&%C AVR6.25A
//硬件:ATMEGA16芯片
//日期:2013年10月20日
//功用:CD纹机控制器
//作者:李亚新
//晶振:内部RC震动,主频1M
//补白:合适用于 CD纹机的自动控制
#include
#include
#define uchar unsigned char
#define uint unsigned int
///////以下是宏界说液晶控制线和继电器所用到的IO口////////////
#define rs_L PORTD&=~BIT(0)
#define rs_H PORTD|=BIT(0)
#define rs_out DDRD|=BIT(0)
#define rw_L PORTD&=~BIT(1)
#define rw_H PORTD|=BIT(1)
#define rw_out DDRD|=BIT(1)
#define en_L PORTD&=~BIT(2)
#define en_H PORTD|=BIT(2)
#define en_out DDRD|=BIT(2)
#define s0L PORTD&=~BIT(4)
#define s0H PORTD|=BIT(4)
#define s0out DDRD|=BIT(4)
#define s1L PORTD&=~BIT(5)
#define s1H PORTD|=BIT(5)
#define s1out DDRD|=BIT(5)
#define s2L PORTD&=~BIT(6)
#define s2H PORTD|=BIT(6)
#define s2out DDRD|=BIT(6)
#define s3L PORTD&=~BIT(7)
#define s3H PORTD|=BIT(7)
#define s3out DDRD|=BIT(7)
///////合美特精细五金有限公司的Logo//////////////////////////
uchar table1[]=”Himetech v1.0″;
////////界说程序中所用到的全局变量///////////////////////////
uchar t1=0,t2=0,t3=0,t4=0,tt1=0,tt2=0,tt3=0,tt4=0;
uchar gg=0,jj=0,xx=0;
uint addata,adc;
/////////延时子程序//////////////////////////////////////////
void delay(uint ms)
{uchar a;uint b;for(a=0;a
void zhilin(uchar zhi)
{
rs_H; rw_H; en_L;
rs_L; rw_L;
PORTB=zhi;
delay(1);
en_H;
delay(1);
en_L;
}
/////////液晶写数据函数没有读状况////////////////////////////
void shujv (uchar shu)
{
rs_L; rw_H; en_L;
rs_H; rw_L;
PORTB=shu;
delay(1);
en_H;
delay(1);
en_L;
}
/////////液晶写指令和写数据函数//////////////////////////////
void dizhishujv(uchar dizhi,uchar shu)
{zhilin(dizhi);shujv(shu);}
///////////////////////////////////////////////////////////////////////////////
void init_lcd (void)
{
uchar e;
rs_out; rw_out; en_out;
DDRB=0xff;
rs_out; en_out;
delay(1);
zhilin(0x38);delay(1);
zhilin(0x38);delay(1);
zhilin(0x38);zhilin(0x38);zhilin(0x08);
zhilin(0x01);zhilin(0x06);zhilin(0x0c);
zhilin(0x80+1);
for(e=0;e<13;e++){shujv (table1[e]);delay(1);}//写Logo
}