C51 PG12864f proteus仿真 - 图文
更新时间:2023-10-13 23:53:01 阅读量: 综合文库 文档下载
- C51单片机推荐度:
- 相关推荐
这个别人是用AVR单片机仿的,我只会C51就把它的仿真图和程序改了下,调试了可以显示。
因为我也没有PG12864f的液晶资料,不过大家可以对着程序理解下,其实原理和1206有点类似。
仿真总图:
单片机接线图:
12864液晶接线:
#include
#define uchar unsigned char #define uint unsigned int
sbit wr=P2^0; sbit rd=P2^1; sbit ce=P2^2; sbit cd=P2^3; sbit rst=P2^4;
void delay(uint t); void init_12864();
void write_data(uchar dat);
void 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;i<128;i++) {
display_char(i/16,i,'0'+i); }
clear_screen();
}
//处在x y处显示ch
void display_char(uchar x,uchar y,uchar ch)//x 0-7 y 0-15 {
write_cmd3((((x*2)<<4)+y),0x00,0x24);//地址指针位置
write_cmd2(ch-32,0xc0);//t6963c字符表与ASCII差32@@@@@@@@@@@@@@@@ }
void delay(uint t) {
uint i,j;
for(i=0;i void init_12864() { P2=0Xff; P1=0Xff; rst=1; delay(10); rst=0; wr=1; rd=1; ce=1; cd=1; rst=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 0 N2 N1 N0 } void clear_screen() { uint i; write_cmd3(0x00,0x00,0x24);//地址指针设置 check_status(); write_cmd1(0xb0);//数据自动写,每写一次,地址指针自动加一 check_status(); for(i=0;i<8192;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=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置为。命令读写准备好。数据读写准备好 }
正在阅读:
C51 PG12864f proteus仿真 - 图文10-13
2016年教师资格证国考小学《综合素质》精选练习题:教育观(四)11-27
物质的量的相关基础计算05-29
工程造价咨询业务在未来的发展前景10-27
江西事业单位招聘信息网02-08
四年级地方课程教案(全册)04-19
德化八中第八届校园文化艺术节活动安排11-04
红星美凯龙员工手册10-30
2017年广东学位英语考试真题及答案03-31
职工运动会开幕式主持人台词(五篇范文)08-22
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 仿真
- PG12864f
- proteus
- 图文
- C51