标题:
简易计算器的制作中遇到的问题
[打印本页]
作者:
le51
时间:
2017-3-23 16:30
标题:
简易计算器的制作中遇到的问题
wcmd(0x38,0);请问各位大神这是什么意思。wcmd是写数据或命令输入到1602地址中设的子函数;这个程序片段是液晶初始化时的程序。主要是后面是0是和是1时代表什么。
作者:
admin
时间:
2017-3-23 18:10
wcmd是一个自定义函数,楼主需要把全部源码贴上来 结合上下文 才能看明白意思
作者:
g753388438
时间:
2017-3-23 21:00
我猜你这个0和1分别是液晶写指令和写数据,但是具体的还得看你的源码
作者:
le51
时间:
2017-3-24 11:13
void wdat(uchar dat) //数据在1602显示
{
P0=dat;
busy();
rs=1;
rw=0;
delay(5);
e=1;
delay(5);
e=0;}
void wcmd(uchar cmd,uchar BFC) //写命令或写数据输出到1602的地址
{
P0=cmd;
if(BFC) busy();
rs=0;
rw=0;
delay(5);
e=1;
delay(5);
e=0;}
void init() //1602初始化
{ e=0;
wcmd(0x38,0);
wcmd(0x38,0);
wcmd(0x38,0);
wcmd(0x38,1);
wcmd(0x08,1);
wcmd(0x01,1);
wcmd(0x06,1);
wcmd(0x0c,1);}
拜托大家再帮忙看一下吧
作者:
ljq1978
时间:
2017-3-24 16:27
这个是自己定义的吧。不是系统函数哦
作者:
eee123
时间:
2017-3-24 16:35
不行啊,你这个代码不全啊,根本没办法看
作者:
123ert
时间:
2017-3-24 17:11
母鸡啊
作者:
angmall
时间:
2017-3-24 18:57
//主要是后面的是0时和是1时代表要不要 忙信号检测。 BF(液晶显示器是否忙) 检测
void wcmd(uchar cmd,uchar BFC) //写指令到1602
{
P0=cmd;
if(BFC) busy(); //进行忙检测
rs=0;
rw=0;
delay(5);
e=1;
delay(5);
e=0;
}
void init()
{
e=0;
wcmd(0x38,0); //不进行忙检测,强制执行三次。
wcmd(0x38,0);
wcmd(0x38,0);
wcmd(0x38,1); //工作模式设置,8位数据线,双行显示,要忙检
wcmd(0x08,1); //关闭显示屏幕和光标
wcmd(0x01,1); //显示清屏
wcmd(0x06,1); //显示光标向右移动
wcmd(0x0c,1); //显示屏幕开启,但光标不出现
TMOD=0x01; //定时器0的工作模式为定时器0方式1,16位
复制代码
作者:
le51
时间:
2017-3-24 21:40
angmall 发表于 2017-3-24 18:57
多谢指点,受教了。
作者:
shudai123
时间:
2017-3-25 13:37
好难呀
作者:
run12
时间:
2017-3-25 13:49
不错,学习了
作者:
lib@
时间:
2017-3-25 20:58
不错 学习了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1