矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 5875|回复: 43

学单片机的体会和疑问

[复制链接]
     
发表于 2022-10-1 20:22:27 来自手机 | 显示全部楼层 |阅读模式
十多年前学过51单片机,学的是汇编语言,虽说根据那些知识自制成了89C2051单片机编程器,但有的问题还是没搞懂,中断,定时器,把我头都绕晕了。

几年前又学了两次单片机,因为听说现在都是以C语言为主,就学C语言,但是我C语言没学会。无心插柳柳成荫,C语言虽没学会,却意外地理解了汇编语言里以前没弄懂的一些知识。我感觉学汇编语言,我好比一个师长,直接指挥到士兵级,所有官兵都听我指挥,我发出去的命令没有一点走样(缺点是自己比较累)。而学C语言,虽说自己还是师长,但只指挥到旅级,团级,等到我的命令到了士兵级,已经有了较大走样(优点是自己比较轻松)。

另外有个问题想问一下大家,假设定时器T0工作于8位模式,它溢出了,另外8位给它重装,这个重装过程需不需要耗费时间~哪怕是2微秒,因为如果用51单片机做一个时钟,2微秒也不能忽视,几百个周期内有2微秒误差看起来不算什么,但一天甚至几天用下来,时钟的累积误差就大了。另外听说定时器T2的自动重装更好,不知详情。
     
发表于 2022-10-8 07:26:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 2 反对 0

使用道具 举报

     
发表于 2022-10-7 23:18:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 1 反对 0

使用道具 举报

     
 楼主| 发表于 2022-10-2 21:30:15 来自手机 | 显示全部楼层
谢谢大家意见,这几天我又开始学C语言,目前基本能看懂了,今天看到数码管动态显示这一节,看了一半。

关于汇编语言和C语言的区别,几年前看到一种说法,比如计算3乘以5,对C语言是很简单的事,汇编语言就要困难很多。
回复 支持 1 反对 0

使用道具 举报

     
发表于 2022-10-4 14:09:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 0 反对 1

使用道具 举报

     
发表于 2022-10-1 21:11:44 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 1 反对 0

使用道具 举报

     
发表于 2022-10-15 12:56:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 1 反对 0

使用道具 举报

     
发表于 2022-10-1 20:48:42 | 显示全部楼层
顶上去听内行的
回复 支持 反对

使用道具 举报

     
发表于 2022-10-1 21:17:51 | 显示全部楼层
根据我的经验,程序中重装初值肯定需要时间,这样造成的累计误差可以在一定时间后通过程序处理掉,不过为了减少麻烦,应该优先使用“自动重装初值”的模式。
一般地,要要求时间精确的时钟,最好使用专门的时钟芯片。
回复 支持 反对

使用道具 举报

     
发表于 2022-10-1 21:59:18 | 显示全部楼层
T0可以自动重装,有这个模式
简易的时钟,精度靠外部晶振
回复 支持 反对

使用道具 举报

     
发表于 2022-10-1 22:19:53 | 显示全部楼层
汇编的所谓的高效,仅限于简单的功能, 复杂的功能用汇编别说效率, 连实现都做不到
回复 支持 反对

使用道具 举报

     
发表于 2022-10-1 22:38:13 | 显示全部楼层
本帖最后由 yjmwxwx 于 2022-10-1 22:41 编辑

51单片机我十多年前跟着那个郭天祥10天学会单片机视频学的,很快学会怎么复制粘帖程序,还做了个数码管时钟https://v.youku.com/v_show/id_XMjE5MDQ1MjQ0.html?spm=a2hcb.profile.app.5~5!2~5~5!3~5!2~5~5!149~A

按下按键等松手的错误同样也被抄下来了,按一下按键数码管灭一下,学的快忘的也快现在都忘记51单片机和C语言怎么用了。

C和汇编差不多,C就是不用自己分配内存和操作堆栈,操作单片机本身资源不难,难的是实现一个功能的方法,很多东西别人不开源的时候自己想破脑袋都写不出来,别人开源了发现原来很简单,就拿数码管时钟来说如果没人开源不参考别人的程序,自己写对于初学者还是有难度的,这个能自己写出来感觉就算入门了


621165_dliywrh32yyb65w.jpg

程序.zip (5.02 KB, 下载次数: 55)

上图是俺2016年单片机入门作品数码管时钟,当时到俺家拜年上过研究生学计算机的堂哥还感觉很惊奇呢,奇怪我这没啥文化的人怎么还会做这个。我当年是因为我的CBR400摩托车点火器坏了,买个进口的要400元国产的也要上百才自己学单片机的,结果多年下来可能花了得有3000到5000元了,可预见的未来看不到能扭亏为盈的希望,当年买CBR400二手的才8000元,摩托没修好又砸进快一辆摩托车的钱

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2022-10-3 14:11:50 | 显示全部楼层
本帖最后由 杨白劳 于 2022-10-3 14:54 编辑

入门了其实都没啥难度。楼主十多年前就开始单片机,也算是我前辈,但您到现在都搞不清定时器,可能没这天赋学这个很勉强。这需要自己摸索的,获得的小成功会给你自信和动力,别人教你搞不懂也没有用全得靠自己,加油吧否则就放弃,再过十年您再勉强搞懂定时器,就没多少时间了
回复 支持 反对

使用道具 举报

     
发表于 2022-10-4 14:05:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
发表于 2022-10-4 17:14:17 | 显示全部楼层
对编程类的学习,一定要有一个目的,如:做一个电子钟,奔着这个目标学,很快就会入门,做成后会有成就感,再向下个目标奔。如果按部就班,为学会单片机而学,估计很艰难。
回复 支持 反对

使用道具 举报

     
发表于 2022-10-7 19:16:15 | 显示全部楼层
ccczzzyy 发表于 2022-10-4 17:14
对编程类的学习,一定要有一个目的,如:做一个电子钟,奔着这个目标学,很快就会入门,做成后会有成就感, ...

说得非常好,有目标驱动就会有效果。
回复 支持 反对

使用道具 举报

     
发表于 2022-10-8 01:23:21 | 显示全部楼层
造双联 发表于 2022-10-4 14:09
你想的有点简单,如果需要有5到10个功能,一定会让你读写程序到吐血都搞不定,实用程序没那么简单的。
...

所以在 51 上跑啥语言更好? C++ 还是 scratch ?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-27 21:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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