完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
好,我试着写一个非常简单的LCD显示代码,我知道它很简单,但我不知道为什么没有显示在LCD上。我使用MPLABX和C18编译器。我使用PIC18F420和PICtiT2。这是我的密码。
|
|
相关推荐
19个回答
|
|
|
我会做两件事:第一,确保液晶显示器连接正确。许多简单的LCD都有一个对比度/亮度引脚,你应该把电位器打开,这样你就可以调整设置,直到你在LCD上看到一些东西。如果您甚至没有看到一个条形码标记您要打印字符的开始位置,这可能就是问题。第二件事情是,在传递ASCII字符时,我通常使用无符号字符,而不是char。所以我会把一个无符号字符传递给写和命令函数。第7位(0是第一位)用于有符号字符中作为有符号位。您的启用引脚延迟远远大于300ns。您正在使用(1)的延迟函数,它实际上是1000个时钟周期,虽然我怀疑这是一个问题。您在此代码中没有指定振荡器选择。因此,我不确定你怎么知道你的“延迟”模块要延迟多久,因为它们是基于TCY的。当写函数仅设置为接受字符时,您正在传递一个字符串write("hello")。尝试一个写字符串函数:void writeStr(unsigned char*str){.(*str)_write(*str+)}。
|
|
|
|
|
|
用端口位定义输出引脚是不好的:将它们更改为相应的LAT位,以避免RMW效应带来的麻烦。
|
|
|
|
|
|
而且,由于OP使用C18报告,请小心ROM和RAM字符串。
|
|
|
|
|
|
为什么?已经有很多可用的代码。甚至C18编译器安装都包含一个。(最好不要一开始就尝试使用预编译库)除了其他人已经提到的所有内容之外,在基本初始化之后您不使用任何延迟或检查忙碌标志。
|
|
|
|
|
|
@维洛基。每次我尝试在项目中加入XLCD.H,它就不会编译。我的项目在任何地方都有延误,你的权利我没有包括任何繁忙的标志。
|
|
|
|
|
|
好的,所以我做了一些改变。我从PORTbits到LATbits,加入了OSCCon信息并收录了Wrand()。我有一个罐的对比度的液晶显示器,我可以调整它。我在LCD上看不到任何东西。这是我更新的代码。谢谢
|
|
|
|
|
|
发布错误信息?((或者你可以试试我的LCD测试项目))
|
|
|
|
|
|
为什么?已经有许多(工作)代码可用。甚至C18编译器安装都包含一个。(最好不要一开始就尝试使用预编译的库)还有很多做得不好的代码,它们只是偶尔工作,或者只用于某些显示。
|
|
|
|
|
|
我找出了为什么我有错误信息。我正在重新声明XLCD中的PIN。此外,XLCD说它是一个不同的驱动程序,然后是我的LCD。
|
|
|
|
|
|
它是用ROM中的字符串来工作的吗?
|
|
|
|
|
|
@ HfBulyy:你发布的新代码比你之前发布的代码好得多。首先,请学习关于“Apple Primar命令”。您甚至可以在编程之前设置振荡器配置位。我没有使用过C18编译器,而是使用XC8编译器,其中您将使用某种效果:#pragma config OSC=HSPLL将振荡器选择设置为具有高速PLL(基本上是x4乘法器)的外部振荡器。不需要像在代码中那样设置振荡器。其次,您的init()函数包含在.(1)循环中,这意味着您将不断地初始化。这样做毫无意义,而且你的初始化程序可以很容易地包括所有的启动因素,比如监视振荡器等等。这可能有点过时了,但是这本书应该证明非常有用:在Google上搜索他们不允许我使用的mazidi pic微控制器pdfas。超链接这里。根据迄今为止从您的代码中看到的,回顾一些C实践和技术可能会对您有所帮助。此外,这有点重要,请考虑查看一些已经为LCD屏幕编写的代码。外面有太多的东西。即使您打算最终编写自己的库,在尝试自己解决这个问题之前,只需回顾一下其他人使用的方法。这样,在考虑自己的代码时,您至少可以看到什么是重要的,什么是不那么重要的。尝试OSCCON=0x70,它避免设置休眠模式选项,并且不影响较低位的位,这些位是应该检查以确保振荡器正确操作的状态位。
|
|
|
|
|
|
为什么?已经有很多可用的代码。甚至C18编译器安装都包含一个。(最好不要一开始就尝试使用预编译库)。还有很多做得不好的代码有时只工作,或者只用于某些显示。甚至我还用几个di测试了自己的库不同的显示器,我敢肯定它在任何情况下都不能工作。问题是人们似乎认为所有的东西都能够被用到,而且没有能力做一些调整……
|
|
|
|
|
|
我认为TIS风格来自C18。如果在MPLABX中使用Config settings菜单,无论如何都会创建正确的语法。这是必须在配置位中完成的外部振荡器;-)OSCCON寄存器中的设置只有在程序被执行时才能起作用,如果配置错误,这种情况永远不会发生。然后,系统时钟选择位可以保留在0b00,用于“主振荡器”(由con选择的那个)图位-gt;
|
|
|
|
|
|
最困扰我的是我有2年前工作的LCD的代码。我尝试使用相同的代码,我什么也看不出来。硬件没有变化,也没有连接。我用MPLAB V85写了原来的一个,现在我不能让它在MPLABX工作。
|
|
|
|
|
|
您没有在代码中设置配置位吗?你确定你的照片正在运行吗?您尝试过离子调试或释放模式吗?
|
|
|
|
|
|
MPLAB是IDE而不是编译器。“我什么也没显示。”屏幕是空白的?那是什么,没有什么是一排盒子,还有vloki问的东西。
|
|
|
|
|
|
是的,我有一排箱子。我可以从PIC看,所以我知道它是连接和工作?我甚至使用了不同的PIC18F420。除了盒子我什么都没有??
|
|
|
|
|
|
有范围吗?得到你正在使用的确切数据的数据表吗?它不是看代码,而是调试时间。
|
|
|
|
|
|
如果你有方框,那么就是Init序列(意思是:糟糕的延迟,糟糕的管脚设置,糟糕的管脚连接。)
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475 浏览 0 评论
5794 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1098浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 10:50 , Processed in 1.228959 second(s), Total 78, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2639