c51 pg12864f proteus仿真

上传人:简****9 文档编号:100507350 上传时间:2019-09-23 格式:DOC 页数:7 大小:344.50KB
返回 下载 相关 举报
c51 pg12864f proteus仿真_第1页
第1页 / 共7页
c51 pg12864f proteus仿真_第2页
第2页 / 共7页
c51 pg12864f proteus仿真_第3页
第3页 / 共7页
c51 pg12864f proteus仿真_第4页
第4页 / 共7页
c51 pg12864f proteus仿真_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《c51 pg12864f proteus仿真》由会员分享,可在线阅读,更多相关《c51 pg12864f proteus仿真(7页珍藏版)》请在金锄头文库上搜索。

1、这个别人是用AVR单片机仿的,我只会C51就把它的仿真图和程序改了下,调试了可以显示。因为我也没有PG12864f的液晶资料,不过大家可以对着程序理解下,其实原理和1206有点类似。仿真总图:单片机接线图:12864液晶接线:#include #define uchar unsigned char#define uint unsigned intsbit wr=P20;sbit rd=P21;sbit ce=P22;sbit cd=P23;sbit rst=P24;void delay(uint t);void init_12864();void write_data(uchar dat);v

2、oid write_cmd1(uchar cmd);void write_cmd2(uchar dat,uchar cmd);void write_cmd3(uchar data1,uchar data2,uchar cmd);uchar read_status();void check_status();void clear_screen();void display_char(uchar x,uchar y,uchar ch);int main()uchar i,j=0;init_12864();for(i=0;i128;i+) display_char(i/16,i%16,0+i); c

3、lear_screen();/处在x y处显示chvoid display_char(uchar x,uchar y,uchar ch)/x 0-7 y 0-15write_cmd3(x*2)4)+y),0x00,0x24);/地址指针位置write_cmd2(ch-32,0xc0);/t6963c字符表与ASCII差32void delay(uint t)uint i,j;for(i=0;it;i+) for(j=0;j114;j+);void init_12864()P2=0Xff;P1=0Xff;rst=1;delay(10);rst=0;wr=1;rd=1;ce=1;cd=1;rst=

4、1;check_status();write_cmd3(0x01,0x00,0x21);/光标指针设置check_status();write_cmd3(0x00,0x00,0x40);/文本区首地址check_status();write_cmd1(0x80);/显示方式设置,正常显示check_status();write_cmd1(0x94);/。显示状态设置 1 0 1 0 N3 N2 N1 N0 文本显示,光标不显示,不闪烁/write_cmd1(0x98);/图形方式显示,不显示字母,只打点check_status();write_cmd1(0xa1);/光标形状设置1 0 1 0

5、 0 N2 N1 N0void clear_screen()uint i;write_cmd3(0x00,0x00,0x24);/地址指针设置check_status();write_cmd1(0xb0);/数据自动写,每写一次,地址指针自动加一check_status();for(i=0;i8192;i+) check_status(); write_data(0X00);check_status();write_cmd1(0xb2);/数据自动写结束void write_data(uchar dat)rd=1;cd=0;ce=0;wr=0;P0=dat;delay(10);wr=1;ce=

6、1;cd=1;void write_cmd1(uchar cmd)rd=1;cd=1;ce=0;wr=0;P0=cmd;delay(10);wr=1;ce=1;cd=0;/先送参数,再送指令void write_cmd2(uchar dat,uchar cmd)check_status();write_data(dat);check_status();write_cmd1(cmd);void write_cmd3(uchar data1,uchar data2,uchar cmd)check_status();write_data(data1);check_status();write_data(data2);check_status();write_cmd1(cmd);uchar read_status()uchar status;P0=0;/端口b置为输入rd=0;wr=1;ce=0;cd=1;status=P1;return status;void check_status()uchar s;P0=0Xff;/端口b置为输出while(s&0x03)!=0x03) s=read_status();/等待位1,2置为。命令读写准备好。数据读写准备好

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号