• PUDN用户
    了解作者
  • Visual C++
    开发工具
  • 15KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 7
    下载次数
  • 2012-09-06 07:54
    上传日期
12864 串口 基本功能 范例 12864 串口 基本功能 范例
12864ES.zip
  • 12864a
  • BACKUP
  • 12864.c.120905171808
    2KB
  • 12864._c
    2KB
  • 12864.c.120905165658
    2KB
  • 12864a.prj
    1.2KB
  • 12864A.hex
    878B
  • 12864.c
    2KB
  • 12864A.mak
    490B
  • 12864A.cof
    1.9KB
  • 12864A.SRC
    42B
  • 12864A.mp
    1.1KB
  • 12864A.dbg
    1.4KB
  • 12864.lis
    13.7KB
  • 12864A.lk
    10B
  • 12864A.lst
    8.2KB
  • 12864.o
    2.9KB
内容介绍
#include<iom8v.h> #include<macros.h> #define uchar unsigned char #define uint unsigned int #define RSH PORTD|=(1<<PD0) #define RSL PORTD&=~(1<<PD0) #define RWH PORTD|=(1<<PD1) #define RWL PORTD&=~(1<<PD1) #define INITLCD() {DDRD=(1<<PD0)|(1<<PD1)|(1<<PD2)|(1<<PD3)|(1<<PD4);} #define EH PORTD|=(1<<PD2) #define EL PORTD&=~(1<<PD2) #define PSB_H PORTD|=(1<<PD3) #define PSB_L PORTD&=~(1<<PD3) #define RST_H PORTD|=(1<<PD4) #define RST_L PORTD&=~(1<<PD4) void delay(uint MS) { uint i,j; for( i=0;i<MS;i++) for(j=0;j<1141;j++); //1141是在8MHz晶振下,通过软件仿真反复实验得到的数值 } void Wcmd(uchar c,uchar z) //指令发送函数 { uchar s,d; RSH; //使能为1 EL; //同步信号 if(z==1) d=0xf8; else d=0xfa; /*指定命令指令读指令时序图规定5个1开头引导码*/ for(s=8;s>0;s--) //发送8次 把8个数据全部发出 { if(d&0x80) {RWH;} else {RWL;} EH; EL; d=d<<1; } d=c&0xf0; /*高4为数据发送8位数据时分高低4位串口协议高4位有效低4位全0为验证*/ for(s=8;s>0;s--) { if(d&0x80) {RWH;} else {RWL;} EH; /*使能端同步信号根据串口协议在数据送上前E=0,送数据后E=1为有效后再拉低*/ EL; d=d<<1; //下一次就是次高位数据 } d=c<<4; /*低4为数据发送8位数据时分高低4位串口协议高4位有效低4位全0为验证*/ for(s=8;s>0;s--) { if(d&0x80) {RWH;} else {RWL;} EH; /*使能端同步信号根据串口协议在数据送上前E=0,送数据后E=1为有效后再拉低*/ EL; d=d<<1; } RSL; } void init(void) //初始化函数 { INITLCD(); Wcmd(0x30,1); /*选择基本指令集*/ delay(1); Wcmd(0x20,1); /*DDRAM的 AC清0*/ delay(1); Wcmd(0x0e,1); /*整体显示 游标开*/ delay(1); Wcmd(0x01,1); /*整体显示 游标开*/ delay(1); } void main(void) { PSB_L; RST_H; init(); Wcmd(0x81,1); Wcmd('9',0); while(1); }
评论
    相关推荐