×
嵌入式 > 嵌入式开发 > 详情

基于AVR单片机的CD纹机的自动控制程序

发布时间:2020-08-26 发布时间:
|


首先要感谢 反省(网名),给我提供的思路。否则我那个停止按钮估计弄到今年年底都搞不定了。
再要感谢 天狼星 提供的视屏教程,向你的无私奉献致敬。以下是源代码,欢迎各位高手拍砖。另外还有一个修改版本功能更完善大家可以参考一下 :/zixunimg/eepwimg/www.51hei.com/mcu/2721.html

//环境:编译为ICC 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
}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
USB接口定义图