我初学单片机两个星期 看了郭天祥的十天学会单片机看到数码管就有些看不懂了,吃力,到底该怎么自学
关注:123 答案:5 手机版
解决时间 2021-01-16 15:23
- 提问者网友:青春统帅
- 2021-01-16 03:26
我想请问一下 我现在刚学单片机 刚学了模拟电路 数字电路没学,有C语言基础,我看了郭天祥的十天学会单片机视频,单片机书本一点没接触,现在视频也感觉看不太懂。我想请问高手们单片机入门该怎么学能学的快一些
最佳答案
- 二级知识专家网友:不了解我就别说我变了
- 2021-01-16 03:39
先简单了解一下数字电路的一些基本概念。毕竟单片机中用到数字电路器件的比较多,但是不需要都了解。对于寄存器、译码器数据选择器等要有个大概认识,以及电平是如何传递的。
我没有看你说的那部视频,不过数码管那里是需要串行传输数据的吧?这里主要是一个信号时序配合的问题,必须要等待数据位稳定之后再给脉冲让它存储在寄存器中,逐位传完后进行并行输出。这就是单片机里数码管的显示原理了。
不知道我说的明不明白,欢迎追问~
我没有看你说的那部视频,不过数码管那里是需要串行传输数据的吧?这里主要是一个信号时序配合的问题,必须要等待数据位稳定之后再给脉冲让它存储在寄存器中,逐位传完后进行并行输出。这就是单片机里数码管的显示原理了。
不知道我说的明不明白,欢迎追问~
全部回答
- 1楼网友:选择重头再来
- 2021-01-16 05:55
郭天祥的 是十天学会单片机和C语言编程吧目前也是比较火、比较流行、比较快的看不懂。。后来加入了电子协会,大学嘛,这些协会应该都有的。然后一起学习
- 2楼网友:寄出个心动
- 2021-01-16 04:52
应该先把书本基础的东西掌握了,然后再结合软件加以练习!我就是那么学的!
- 3楼网友:绿小萝
- 2021-01-16 04:22
看点数电 入门简单些。
- 4楼网友:這傷,你給的
- 2021-01-16 03:46
<p> 你这个分号加了和没加是不同的。</p> <p> 没加分号,表示变量是unsigned char或unsigned int型。所以uchar肯定会溢出。结果就不是350.</p> <p> 你的结果是092,我调试一下的结果是094.</p> <p>
</p> <p>
</p> <p> 当你加上分号后,表明uint 是用unsigned int;(注意这个分号!!)来替换的。所以你的</p> <p> 这几句话:</p> <p> uchar temp,bai,shi,ge;
uint x,y,z;
uchar code table[]={</p> <p> 等价于:</p> <p> unsigned char; temp,bai,shi,ge;</p> <p> unsigned int;x,y,z;</p> <p> unsigned char; code table[]={</p> <p> 宏定义就是把你的前面符号unchar替换成了unsigned char;
</p> <p> 替换后变成了unsigned char;出现了分号。表明这句话结束了</p> <p> 而后面的temp,bai,shi,ge;</p> <p> 是另一句话了。</p> <p>
</p> <p> 所以你上面的几句就变成了:</p> <p> unsigned char;
</p> <p> temp,bai,shi,ge;</p> <p> unsigned int;</p> <p> x,y,z;</p> <p> unsigned char;
</p> <p> code table[]={</p> <p> 可以看到。unsigned char等等并没有定义任何变量,然后这个句子就结束了。同时,</p> <p> temp,bai,shi,ge,x,y,z,code。。。等变成了独立的一句话,</p> <p> 你可以试一试,直接写temp,bai,shi,ge,x,y,z,code table[]={</p> <p> 肯定编译通过,而且还是350(只不过它们全都是同一个类型的变量)。</p> <p> 当你没有定义变量类型,而直接写变量名时,keil软件会默认给这些变量一个类型,你去用keil的调试功能试试看,在watch窗口中能看到name,value,type</p> <p>
</p> <p> 默认类型我就不说了,给你一个练习的机会哈~~~~</p> <p> 单片机学习愉快~~~~~~~</p>
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!