问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求液晶显示大屏c51原代码

发布网友 发布时间:2022-08-18 00:33

我来回答

1个回答

热心网友 时间:2023-10-15 00:53

#include <reg52.h>
#include <math.h>
#include <stdio.h>
#include <absacc.h>
#include <intrins.h>
#include "math.h"
#include <time.h>
#include <stdlib.h>
#define uchar unsigned char
#define uint unsigned int
#define lcd_com XBYTE[0x8fff] // 定义液晶写命令的地址 1000 1111
#define lcd_data XBYTE[0x87ff] // 定义液晶也数据的地址 1000 0111
void delay(uint); //延时函数
void check();//查忙程序
void write_com(uchar);
void write_data(uchar);
void write_data_com(uchar,uchar);
void write_data2_com(uchar,uchar,uchar);
void init();//液晶初始化函数
void show_point(uchar,uchar);//显示坐标为(x,y)的点
uchar read_data();//读取屏幕当前地址的数据
void init()
{
uint i;
write_com(0x9c);//显示开关设置
write_com(0xa0);//光标形状设置
write_com(0x80);//显示方式设置
write_data2_com(0x00,0x00,0x40);
write_data2_com(0x10,0x00,0x41);
write_data2_com(0x00,0x04,0x42); //图形显示区首地址
write_data2_com(0x10,0x00,0x43); //图形显示区宽度
write_data2_com(0x00,0x00,0x24);
write_com(0xb0);
for(i=0;i<254;i++)
write_data(0);
write_com(0xb2);
write_data2_com(0x00,0x04,0x24);
write_com(0xb0);
for(i=0;i<1024;i++)
write_data(0x00);
write_com(0xb2);
write_data2_com(0,0x00,0x21);
}
void show_point(uchar x,uchar y)//显示坐标为(x,y)的点,左上角为(0,0),右下角为(127,63)
{
uchar temp,temp_old;
switch(x%8)
{
case 0:
temp=0x80;
break;
case 1:
temp=0x40;
break;
case 2:
temp=0x20;
break;
case 3:
temp=0x10;
break;
case 4:
temp=0x08;
break;
case 5:
temp=0x04;
break;
case 6:
temp=0x02;
break;
case 7:
temp=0x01;
break;
}
write_data2_com(y%16*16+x/8,y/16+4,0x24);
temp_old=read_data();
write_com(0xb0);
write_data(temp|temp_old);
write_com(0xb2);
}
uchar read_data()//读取屏幕当前地址的数据
{
uchar temp;
write_com(0xe0);
write_com(0xc5);
check();
temp=lcd_data;
return temp;
}
void write_com(uchar my_com)
{
check();
lcd_com=my_com;
}
void write_data(uchar my_data)
{
check();
lcd_data=my_data;
}
void write_data_com(uchar my_data,uchar my_com)
{
write_data(my_data);
write_com(my_com);
}
void write_data2_com(uchar my_data_1,uchar my_data_2,uchar my_com)
{
write_data(my_data_1);
write_data(my_data_2);
write_com(my_com);
}
void check() //液晶查忙函数
{
uchar a;
do
{
a=lcd_com;
a=a&0x03;
}while(a!=0x03);
}
void delay(uint x) //延时函数
{ uchar k;
while(x--)
{
for(k=0;k<=125;k++)
{;}
}
}

128*64点阵的,以前写的。

参考资料:http://hi.baidu.com/wqfantexi/blog/item/f2dfdb08a20276930a7b828e.html

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
“定是李八百”的出处是哪里 李八百六种说法 李仙指道教传说中仙人 李八百 学习劈叉,每次静压压腿多久 六哥救的叫花子是谁的孩子 大智慧江恩三日图源码,找了无数公式,想在大智慧里用 ,一直没找到_百度... 测试类工具有哪些 服务器压力测试需要用的8种工具 8岁的小孩能玩什么游戏8岁男童和父母玩些什么互动游戏 摩尔庄园手游冲浪板凯文在哪里现在摩尔庄园凯文在哪 限制登录可以解封是什么意思? 补牙杀死牙神经后干嘛 补牙 拔神经后要做什么 根管治疗拔完神经后要做什么了 根管治疗杀了神经后下一步做什么还需要几次还会疼吗 根管治疗抽神经后下一步是做什么 网贷申请次数过多会引响个人征信吗?也没逾期 医保卡怎么开通预交款账户- 问一问 接骨木为什么不能栽在院里 百度这几天怎么有点打不开啊 百度这是怎么回事 好几天了 过来8一下,百度这几天怎么了 百度这几天怎么了? 皮肤颜色偏黄适合什么颜色的衣服 写作任务time to give thanks 谁能用英语翻译这句话:天行键,君子当自强不息;地势坤,君子当厚德载物 陈诚名字打多少分数查询 甲骨文是不是我国最早的文字?为什么? 臣心一片坚如石下一句是什么? C语言 怎么输入一串字符,其中包含数字 字母 符号 无锡松下电冰箱BCD-316PDCA-P(NR-C32WPD1-P液晶显示屏显示屏H29是什么故障? 液晶显示器频频出现蓝屏代码并有一段英文,什么意思? 学校食堂租赁合同结束后有赔偿吗 在食堂跟餐饮公司签订租赁合同三个月不结账能否自动解除合同关系 食堂签了一年合同 没到期不想做了 能把压金拿回吗 他还要扣我一个月_费也 梦见买房子是什么意思?怎么购买新房子 梦见自己买了新房子有何寓意 预兆 win7旗舰版在逗游上下的正当防卫2出现存储空间不足,无法完成此操作怎么办? 我玩正当防卫2为什么说储蓄空间不足 正当防卫2提示储存空间不足,无法完成此操作。 封肉怎么做 小封肉(不负责任食谱)怎样做才好吃? 蒜烧小封肉怎么做才好吃? 客厅阳台上可放什么花? 陪跑是什么意思 事业陪跑的意义 电影《泰塔尼特号》的英文简介 用绑定银行卡的手机号和登录交友软件有那些风险- 问一问 微信登陆,注册,授权软件或平台,会透露什么信息?有可能透露或手机号吗? 中国十大驼奶粉排名?