完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
我LCD是T6963C控制器,我是用总线方式连接,P0口为LCD数据口,就是P2^0接C/D, P2^1接CE, WR接 P3^6, RD 接P3^7;这样后用程序的XBYTE[0x0000] //数据口;XBYTE[0x0100] //命令口 这样定义后是不是P2口的其他口就不能用了,不然很难显示出来,如图我有连接了两个器件,所以LCD不显示,把那两个去掉就可以了,什么原因,知道朋友告知下,初学者来的,谢谢了!
|
|
相关推荐
3个回答
|
|
|
是不是你的程序的问题呢?
|
|
|
|
|
|
程序太长了,还得慢慢找...我其实还有歌地方搞不懂,如下: 芯片为AT89S52,P2.1口与T6963C的片选相连,P2.0口与T6963C读/写使能控制口相连,其它5个口用于别的芯片控制,P0口与T6963C的数据/命令口(8位)相连,但我总是搞不明白为什么XBYTE[0xXXXX]定义后的宏是怎么回事。 #include #include #define d_add XBYTE[0xfc00]//为什么说这就是数据通道 #define c_add XBYTE[0xfd00]//为什么说这就是命令通道 上面的意思就是说当数据通道时P2.0 P2.1 都为0,那为什么要P2口其他位为1,P0口都为0构成0xfc00,还是其他位是随便的,只要那两位为0就为数据口了? |
|
|
|
|
|
粗略地说d_add就等价于0xfc00,即二进制的1111 1100 0000 0000。
总线方式时先是P2口输出高八位地址,P0口输出低八位地址,维持短暂的时间后(好像是一条指令的时间),P0口又输出数据,P2口仍保持之前的高8位地址,这些是单片机硬件自动完成的。 此处P0口输出低八位地址,即上面的低八位的8个0,P2口输出高八位地址,即上面的的高8位的1111 1100,此时是不是刚好P2.0=0(T6963写有效,为1时读有效?),P2.1=0(T6963片选有效),而P2.2~P2.7=1呢?这样是不是选中了T6963,同时写信号也有效呢,跟你单个口线赋值的效果是一样的。之后数据0x90出现在P0上,t6963会把这个数据读走的。这样就完成了一次数据的写。 你没有外部RAM ,当然不会写到外部RAM里去,其实如果有的话写外部RAM的方式跟以上类似的。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
140 浏览 0 评论
483 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
815 浏览 0 评论
1346 浏览 2 评论
804 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16903 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 16:20 , Processed in 0.861487 second(s), Total 74, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2740