找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2817|回复: 13
打印 上一主题 下一主题
收起左侧

我建议初学者学 51单片机直接使用三总线接法,暂时不要学模拟接口

  [复制链接]
跳转到指定楼层
楼主
      我学习51单片机很长时间了,C语言学废了。转学汇编,现在能用汇编语言实现一些简单的想法。比较之前学C语言的时候,像1602lcd用模拟端口接法,既要延时 又要写写数据程序 写指令程序。很麻烦,       我C语言没学下去在lcd显示控制这方面卡了好长时间,以至于没有机会做想做的东西,整天消耗在控制硬件上失败再调试 再失败再调试。真正的算法没来得及应用,已经被模拟端口操作整的晕头转向。     51单片机可以用三总线模式,接lcd1602就像图上那样,编程的时候根本不需要考虑什么时序 什么延时 和写数据指令。数据直接塞进去就显示。不是很好吗。模拟总线操作真的让人感到痛苦。特别是新手。
      像18b20 这些单总线器件 更是让人难受,当你学会这些器件操作的时候,你当初学习单片机的想法 目的 激情,可能已经消散殆尽。

      作为初学者,我真正经历这种痛苦。我不想再在控制时序方面折磨自己。

       所以,我对初学者的建议是,直接使用8位并口器件接P0口,用控制三总线法 来控制器件  尽量不使用需要模拟端口的器件。
       这样你可以集中精神在算法 逻辑 功能上 ,这样学起来会更好。

无标题.jpg (57.86 KB, 下载次数: 54)

无标题.jpg

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:297903 发表于 2022-3-5 08:24 | 只看该作者
LCD1602也可以用I2C转接模块驱动,两个I/0就可以了!!

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:69115 发表于 2022-3-5 08:54 | 只看该作者
接口信号时序都是基础的知识,稍加练习,都容易掌握的.

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:230500 发表于 2022-3-5 14:00 | 只看该作者
与C和汇编没有关系; 对于各种周边外设, 首先自己仔细的把时序图理清楚,51 本来就是通过IO口模拟各种时序, 如果时序都搞不懂, 我想你搞汇编一样也搞不明白;

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:73992 发表于 2022-3-6 08:44 | 只看该作者
比如用总线法接LCD1602.
要在80H地址显示字符A,
MOV R1,80H    ;80H值传递给R1
MOV A,0X41     ;0X41传递给累加器
MOVX @R1,A    ;将0x41传递到片外80H地址
end
用汇编总共用3句话,
用C语言应该更简单      
片外寻址指令   80H   =  "A";
只用一句话。
这样可以让新手直接针对数据和算法和目标, 而不是针对硬件
回复

使用道具 举报

6#
ID:343102 发表于 2022-3-6 10:02 | 只看该作者
LCD1602是常用模块,有现成驱动程序,搬过来嵌入主程序就行。增加硬件不麻烦吗?
回复

使用道具 举报

7#
ID:192294 发表于 2022-3-8 17:55 | 只看该作者
呵呵,我觉得LZ还是初学者。。。
回复

使用道具 举报

8#
ID:1008454 发表于 2022-3-9 18:40 来自手机 | 只看该作者
我只会C呢,和你相反。
回复

使用道具 举报

9#
ID:887371 发表于 2022-3-11 08:44 | 只看该作者
lyonkon 发表于 2022-3-6 08:44
比如用总线法接LCD1602.
要在80H地址显示字符A,
MOV R1,80H    ;80H值传递给R1

新手就不需要知道函数吗?(汇编叫子程序,C叫函数)
不管是总线法,还是接口法,甚至更换MCU,都可以封装成同一个函数lcd1602_write(cmd,dat).
这才是让新手“直接针对数据和算法和目标”的正确方式。
回复

使用道具 举报

10#
ID:965189 发表于 2022-3-11 09:27 | 只看该作者
其实学单片机,串口.并口都要学。这是基础。我使用12864一直都是使用串口,为了节省IO口。还没用过并口。
回复

使用道具 举报

11#
ID:299519 发表于 2022-3-11 10:05 | 只看该作者
你选择了Intel时序。
回复

使用道具 举报

12#
ID:73992 发表于 2022-3-14 10:40 来自手机 | 只看该作者
myemcu 发表于 2022-3-11 10:05
你选择了Intel时序。

你说之前我还不知道有Intel时序,现在我知道了
回复

使用道具 举报

13#
ID:1007932 发表于 2022-3-15 23:04 | 只看该作者
只会C,表示单总线确实难搞,主要是延时不准,I2C倒是用的挺顺手。
回复

使用道具 举报

14#
ID:468878 发表于 2022-3-16 08:30 | 只看该作者
我感觉我就没楼主遇到的这些问题,因为我都是抄别人的程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表