[最新]四位共阳数码管的应用四位数码管的探究1硬件准备???????????????????????????????????????????????????????????????????????????????????1软件准备???????????????????????????????????????????????????????????????????????????????????2控制思路:????????????????????????????????????????????????????????????????????????2下面是实际的焊接之中,考虑到实际电路的连接顺序,采用下面的连接。4两位数码管源程序:00-99??????????????????????????????????????????????????4异曲同工:0000——9999???????????????????????????????????????????????????6更进一步:四位数字时钟???????????????????????????????????????????????????7四位数码管的探究硬件准备四位共阳数码管一块,1K电阻4只。数码管的引脚图如下所示:使用的单片机是STC12C2052,位选可以使用P1接口控制。参照下面数据手册的内容,,,,。由于数码管所能承受的电流较小,所以外加1K的限流电阻。,,,,利用推挽方式输出高电平,P1接口作为数码管的段选,输出低电平,驱动每一段数码管,这就为设想的实现取得了理论的基础。证明了使用20脚单片机控制数码管产生时钟的效果是切实可行的。下面关键的部分就成了数码管的编程阶段了。下面将使用单片机控制数码管产生时钟的效果。由于单片机的计时是由软件延时的方法产生,所以说误差会有很大。因此本作品仅供娱乐。初期的想法是加入闹钟的概念。但是由于闹钟的定时不易调整,只能通过计算机编写软件定闹,这样就不是时钟的简洁的目的。另外,由于当单片机控制蜂鸣器响的时候,单片机控制数码管的部分势必会停止,这样又会影响时钟的准确性。因此,首先要实现的只是单片机的简易时钟功能或者说只是一个最大为1小时的秒表。软件准备将单片机的I/O接口设置成推挽输出。P1M0=0X00;P1M1=0XFF;P3M0=0X00;P3M1=0XFF;控制思路:第三四位作为秒表的秒针部分,每秒钟变化一次。当第四位由0变到9时,第四位自动清零,第三位由0变成1,实现加一。软件的实现分为两部分。首先先实现后两位的秒针功能,先将前两位置之。下面是编程的设想。由于数码管的引脚是共阳极,所有的阳极都是连接在一起的,因此不能同时给所有的阳极供电,如果那样的话,所有的数码管会有相同的显示方式。考虑到这一情况,只能采用和点阵屏类似的扫描方法,即将数码管分成四个一位的情况,然后每个4ms扫描一次的方法。**********D72001001012531000010185411000011C35100010018960000100109711010101D58000000010191000000181下面是对D位数码管的控制,以测试段选的有效性。#include<>#defineweixuanP1sbita=P3^5;sbitb=P3^4;sbitc=P3^3;sbitd=P3^2;voidyanshi(unsignedinta){unsignedinti;while(--a){for(i=0;i<600;i++);}}voidmain(){codeunsignedcharshuzi[]={0x11,0xd7,0x25,0x85,0xc3,0x89,0x09,0xd5,0x01,0x81};P1M0=0X00;P1M1=0XFF;//设置P1,P3接口的工作方式为推挽输出。P3M0=0X00;P3M1=0XFF;while(9){unsignedintj;d=1;for(j=0;j<=9;j++){weixuan=shuzi[j];yanshi(1000);}}}这样的话,第D位会大约每一秒显示一个数字,从0到9不断地循环。证明了段选的设置是真实有效的。接下来的任务就是对ABC位进行控制。下面是实际的焊接之中,考虑到实际电路的连接顺序,采用下面的连接。
[最新]四位共阳数码管的应用 来自淘豆网m.daumloan.com转载请标明出处.