AVR写LCD12864,在写页地址后读状态,一直为忙,那为懂AVR的帮我解决一下呢,用的是atmel studio 6.0

AVR写LCD12864,在写页地址后读状态,一直为忙,那为懂AVR的帮我解决一下呢,用的是atmel studio 6.0,第1张

没能直接找出你程序的明显问题,但有几点可以考虑下:

void LCD_Status()中,仔细对照12864的说明书,看你口线的 *** 作逻辑,是否完全符合说明书。你写开关屏命令正确,但也并不能保证逻辑就是正确的,Y 因为你锁出去的数据是不同的,不仔细看你程序,理论上讲,对后续的程序的影响是不一样的。不同厂家的LCD *** 作,大同小异,但确实各有不同之处。

在AVR中,asm("nop");是可以用NOP();来代替的,后者比前者看起来舒服些。

你没说你的CPU连接LCD的排线的长度,此长度小于5cm时,考虑可以很少;>10cm时,需要考虑电容效应,信号会被延迟,你程序中NOP()的个数可能会不够,因为AVR的机器周期其实是可以小于us级的(看你的晶振速度了),一个NOP可能起不到作用,需要N个。

个人观点供参考,我用LCD时,根本就不去查询LCD是否繁忙,因为现在的LCD接收端口都是硬件锁存的,速度非常快,根本不会出现繁忙拥堵的情况。下面是我使用320240LCD的写命令和数据的函数,没查询,大量使用从来也不出问题:

void LcmWriteADataByte(uchar mydata)     //写数据

{

 pinLcmA00();

 LCM=mydata;

 NOP();

 pinLcmCS0();

 pinLcmWR0();

 NOP();

 pinLcmWR1();

 pinLcmCS1();

}

void LcmWriteAControlByte(uchar mycommand)    //写指令

{

 pinLcmA01();

 LCM=mycommand;

 pinLcmCS0();

 pinLcmWR0();

 NOP();

 pinLcmWR1();

 pinLcmCS1();

 pinLcmA01();

}

总结,不正常工作最可能的两个原因(不是全部原因):A逻辑不完全符合说明书;B延时不够,或某些地点漏做延时了。希望有所帮助。

keiluvision4如何给单片机pc引脚

Keil C51 V900 即09年发布的最新版本uVision 4,版本外观改变比较大

可以使用以前的注册文件

如果全新安装,在VISTA或者WIN 7系统下,请使用管理员方式运行,然后注册即可无限制运行

注册方法:

1 安装Keil C51 V900版本,即uV4

2 打开uVision4,点击File---License Management,打开License Management窗口,复制右上角的CID

3 打开KEIL_Licexe注册机, 在CID窗口里填上刚刚复制的CID,其它设置不变

4 点击Generate生成许可号,复制许可号

5 将许可号复制到License Management窗口下部的New License ID Code,点击右侧的Add LIC

6 若上方的Product显示的是PK51 Prof Developers Kit即注册成功,Support Period为有效期,一般可以到30年左右,若有效期较短,可多次生成许可号重新注册。

使用汇编语言或C语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX可执行文件写入单片机内。KEIL uVISION是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,甚至ARM,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。

作者:月夜

KEIL uVision4比起uVision3或是uVision2界面感觉舒服一些,增加了哪些功能暂且不去研究,毕竟大家都喜欢用新的软件,感叹发展太快了,很多人连uVision2都没有摸透,呵呵。安装的方法和普通软件差不多,这里就不做介绍了。另外提醒大家不要崇拜汉化版软件,还是E文的干净没有BUG!

在这里以51单片机并结合C程序为例(汇编 *** 作方法类似,唯一不同的是汇编源程序文件名后缀为“ASM ”),图文描述工程项目的创建和使用方法:

一、首先我们要养成一个习惯:最好先建立一个空文件夹,把您的工程文件放到里面,以避免和其他文件混合,如下图笔者先创建了一个名为“Mytest”文件夹:

作者:月夜

二、点击桌面上的Keil uVision4图标,出现启动画面:

三、点击“project --- New uVision Project”新建一个工程:

作者:月夜

四、在对话框,选择放在刚才建立的“Mytest”文件夹下,给这个工程取个名后保存,不需要填后缀,注意默认的工程后缀与uVision3及uVision2版本不同了,为uvporj:

作者:月夜

五、d出一个框,在CPU类型下我们找到并选中“Atmel”下的AT89S51或52:

六、以上工程创建完毕,接下来开始建立一个源程序文本:

作者:月夜

七、在下面空白区别写入或复制一个完整的C程序:

八、输入源程序文件名名称,在这里笔者示例输入“test”,这个名称,同样大家可以随便命名。注意:如果您想用汇编语言,要带后缀名一定是“test asm”,如果是C语言,则是“test c”,然后保存:

九、接下来需要把刚创建的源程序文件加入到工程项目文件中,大家在点“ADD”按钮时会感到奇怪,怎么对话框不会消失呢?不管它,直接点击“Close”关闭就行了,此时大家可以看到程序文本字体颜色已发生了变化:

51单片机为什么破解后是atmel wireless&uc,而不是Atmel,这个不需要额外解决,破解后你需要的知识程序代码,而非其他,将读取出来的程序二进制码反汇编后得到汇编源码,你也可以再将之转换为C源码,不过需要花费一定的功夫,第一步的转换为汇编源码,可以通过反汇编软件完成,之后靠手工调整为易读性较强的汇编程序,第二步可以依次汇编程序,写成C代码,让更多人易于理解和阅读。

一般来说,AVR的编程方式有:

(1)串行编程(即ISP编程)

ISP是In System Program的缩写,意思是在系统编程。目前的AVR芯片基本上都具备ISP接口,可通过ISP接口进行编程。它一共使用了两条电源线:VCC、GND,三条信号线:SCK、MOSI、MISO,以及复位线:RESET。由于仅仅使用了几条数据线,所以我们亦常将其称为串行编程。值得注意的是,虽然下载器端使用的信号线名为SCK、MOSI、MISO,但AVR MCU的信号端不一定是名为SCK、MOSI、MISO。

AVR的串行编程方式有很多种,如:

(1)STK200/STK300:并口下载器多采用该烧写方式,最早期的一种烧写方式,支持型号少,烧写速度低,不支持AVR Studio。

(2)STK500:ATMEL最推荐的编程方式,由于采用ATMEL官方的STK500固件,使得它可烧写全系列AVR(若对固件进行升级亦可支持未来的AVR型号),烧写速度非常快,支持AVR Studio。

(3)AVRISP(准STK500):由于采用ATMEL官方的STK500固件,使得它可烧写大部分AVR(若对固件进行升级亦可支持未来的AVR型号),烧写速度非常快,支持AVR Studio。

(4)AVRISPmkII:由于采用ATMEL官方的AVRISPmkII固件,使得它可烧写大部分AVR(若对固件进行升级亦可支持未来的AVR型号),烧写速度非常快,支持AVR Studio。

(5)当然还有其它的ISP方式,但已经那些均不是最为常见的串行编程方式,在此不在作一一介绍。

(2)(2)高压/并行编程

AVR的高压编程/并行编程,实际上是更早出现的编程方法,它功能强大,但需要:

1)连接较多的引脚(故称“并行编程”)

2)使用12V电压(故称“高压编程”)

(3)JTAG编程

JTAG烧写方式仅适用于带JTAG接口的AVR,另外,JTAG对比ISP烧写方式主要有个缺点:必须占用JTAG对应的IO端口。例如,ATMEGA16必须占用PC2-PC5这几个端口。然而,有时候,缺点也是优点,因为对于IO够用的AVR来说,在产品开发过程,可以用JTAG接口来仿真调试,产品量产后,产品板预留的JTAG接口还可以用来烧写程序。

(4)IAP编程

AVR MCU的ISP功能和debugWIRE功能是互斥的,也就是说,使能了AVR MCU的 debugWIRE 功能后ISP功能就无法使用,使能了ISP功能后debugWIRE功能就无法使用。

最后说明下 AVR烧写需要配置熔丝位的 也可以使用语句声明。这个和51不一样

网上down一个IIC模拟程序分析一下就是了,时序要求没那么精确的,大于多少ns就行了。稍作延时。上拉电阻一般就弄个10K。无论是对于哪种芯片IIC的时序是没多大差别的,弄个大概出来,在用示波器看,再比较手册,看哪不对再改。这样是调IIC最好方法。

还有,我不是记得STM32有硬IIC核吗,为何还需要用模拟IIC时序的方式去实现

以上就是关于AVR写LCD12864,在写页地址后读状态,一直为忙,那为懂AVR的帮我解决一下呢,用的是atmel studio 6.0全部的内容,包括:AVR写LCD12864,在写页地址后读状态,一直为忙,那为懂AVR的帮我解决一下呢,用的是atmel studio 6.0、keiluvision4如何给单片机pc引脚、51单片机为什么破解后是atmel wireless&uc,而不是Atmel,如何解决,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9687065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存