大众信息网

我初学单片机两个星期 看了郭天祥的十天学会单片机看到数码管就有些看不懂了,吃力,到底该怎么自学

关注:123  答案:5  手机版
解决时间 2021-01-16 15:23
我想请问一下 我现在刚学单片机 刚学了模拟电路 数字电路没学,有C语言基础,我看了郭天祥的十天学会单片机视频,单片机书本一点没接触,现在视频也感觉看不太懂。我想请问高手们单片机入门该怎么学能学的快一些
最佳答案
先简单了解一下数字电路的一些基本概念。毕竟单片机中用到数字电路器件的比较多,但是不需要都了解。对于寄存器、译码器数据选择器等要有个大概认识,以及电平是如何传递的。
我没有看你说的那部视频,不过数码管那里是需要串行传输数据的吧?这里主要是一个信号时序配合的问题,必须要等待数据位稳定之后再给脉冲让它存储在寄存器中,逐位传完后进行并行输出。这就是单片机里数码管的显示原理了。
不知道我说的明不明白,欢迎追问~
全部回答
郭天祥的 是十天学会单片机和C语言编程吧目前也是比较火、比较流行、比较快的看不懂。。后来加入了电子协会,大学嘛,这些协会应该都有的。然后一起学习
应该先把书本基础的东西掌握了,然后再结合软件加以练习!我就是那么学的!
看点数电 入门简单些。
<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>
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!