我们先认识一下数码管,同样的需要先看看数码管的工作原理图:
首先是,数码管分两种:共阴极和共阳极。这一点不是特别的重要,我们只需要记住在51单片机上是共阳极的即可。其次就是如何让它显示值得问题,这是一个8段的数码管,在控制的时候,我们需要记住从a开始顺时针旋转一圈,依次是:a,b,c,d,e,f,g,dp,这8个灯管。实际上,这只是理论层面的,下一步是具体的实操。这时,我们需要用到数电中的进制转换的知识,其次就是要知道P0口不仅控制LED灯,还控制了数码管。
我们还是先来看一张图,对进制有一个直观的认识:
这里我们只需要注意二进制与十六进制之间的转换即可。好了现在将原理图和进制两样东西结合在一起,我们就可以显示具体的值了。举个栗子,我们要显示“1”:
图凑合着勉强能看,这时我们已将二进制转换为十六进制了。但在这里需要着重注意一点,因为涉及到高8位和低8位的问题,此时应是F9。现在,我们可以对P0口进行赋值了。写为:P0=0XF9;数码管就显示了“1”。那么剩下的那些是以此类推的。
实际上,数码管主要显示的就是0~9,要么就是加点小数点。这里,有一个小技巧,我们可以将这些常用的值记下来。这里我会展示一个图给大家:
这样记住后,在比赛时就会剩下一些时间,不用去一个一个去推导了。
但实际上,我们是要将其封装成一个头函数,以便于我们随时调用。
效果如下:
uchar code tab[]={0xc0
05 蓝桥杯---数码管与动态数码管
最新推荐文章于 2023-05-21 23:17:05 发布