找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3008|回复: 3
收起左侧

刚刚写的avr操作12864驱动

[复制链接]
ID:51090 发表于 2014-9-18 00:10 | 显示全部楼层 |阅读模式


#include<iom16v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
#define RS_ PORTB&=~BIT(0)
#define RS PORTB|=BIT(0)
#define RW_ PORTB&=~BIT(1)
#define RW PORTB|=BIT(1)
#define EN_ PORTB&=~BIT(2)
#define EN PORTB|=BIT(2)
#define PSB_ PORTB&=~BIT(3)
#define PSB PORTB|=BIT(3)
#define CS2_ PORTB&=~BIT(4)
#define CS2 PORTB|=BIT(4)
#define RET_ PORTB&=~BIT(5)
#define RET PORTB|=BIT(5)
#define DATA PORTA
void delay(uint z)
{
while(z--);
}
void write_dat(uchar dat)
{
EN_;//????????
RS;//????????????????
RW_;//????
delay(3);
DATA=dat;
delay(3);
EN;
delay(3);
EN_;
delay(8);

}
void write_com(uchar com)
{
EN_;
RS_;//??????????ü????
RW_;
delay(3);
DATA=com;
delay(3);
EN;
delay(3);
EN_;
delay(8);
}
void init()        
{
RET;
delay(3);
RET_;
delay(9);
RET;
delay(5);
PSB;
CS2_;
write_com(0x30);
write_com(0x0c);
write_com(0x01);
write_com(0x02);
write_com(0X08);
}
void set_xy(uchar xpop,char ypop)
{
switch(ypop)
{
case 1:
write_com(0x80|xpop);break;
case 2:
write_com(0x90|xpop);break;
case 3:
write_com(0x88|xpop);break;
case 4:
write_com(0x98|xpop);break;
default :break;
}
}
void printf(uchar x,uchar y,uchar *str)
{
uchar temp;
set_xy(x,y);
temp=*str;
while(temp!=0x00)
{
write_dat(temp);
temp=*(++str);
}
}
main()
{
DDRA=0XFF;
DDRB=0XFF;
init();
  printf(8,3,“ ??????????????????ú??ü??????????????ù??????????????±??????????×??ù??????±??????????ò??é??????ê??????????????????????????????á??ò????????????????????????????????");

上行为汉字取码,不知怎地复制过来就出问题了

while(1)
{

}


}
回复

使用道具 举报

ID:58502 发表于 2014-11-13 01:12 | 显示全部楼层
正在学习avr。参考下
回复

使用道具 举报

ID:72323 发表于 2015-1-16 14:51 | 显示全部楼层
好,感谢分享
回复

使用道具 举报

ID:74365 发表于 2015-3-8 22:03 | 显示全部楼层
初学都,学习学习。谢了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表