- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
四位共阳数码管的使用
四位数码管的探究 1
硬件准备 1
软件准备 2
控制思路: 2
下面是实际的焊接之中,考虑到实际电路的连接顺序,采用下面的连接。 4
两位数码管源程序:00-99 4
异曲同工:0000——9999 5
更进一步:四位数字时钟 7
四位数码管的探究
硬件准备
四位共阳数码管一块,1K电阻4只。数码管的引脚图如下所示:
使用的单片机是STC12C2052,位选可以使用P1接口控制。
参照下面数据手册的内容,可以看出P3.5,3.4,3.3,3.2均能够作为I/O接口以推挽方式使用。由于数码管所能承受的电流较小,所以外加1K的限流电阻。
单片机P3.5,3.4,3.3,3.2四个接口可以作为数码阳极一端,利用推挽方式输出高电平,P1接口作为数码管的段选,输出低电平,驱动每一段数码管,这就为设想的实现取得了理论的基础。证明了使用20脚单片机控制数码管产生时钟的效果是切实可行的。下面关键的部分就成了数码管的编程阶段了。
下面将使用单片机控制数码管产生时钟的效果。由于单片机的计时是由软件延时的方法产生,所以说误差会有很大。因此本作品仅供娱乐。初期的想法是加入闹钟的概念。但是由于闹钟的定时不易调整,只能通过计算机编写软件定闹,这样就不是时钟的简洁的目的。另外,由于当单片机控制蜂鸣器响的时候,单片机控制数码管的部分势必会停止,这样又会影响时钟的准确性。因此,首先要实现的只是单片机的简易时钟功能或者说只是一个最大为1小时的秒表。
软件准备
将单片机的I/O接口设置成推挽输出。
P1M0=0X00;
P1M1=0XFF;
P3M0=0X00;
P3M1=0XFF;
控制思路:
第三四位作为秒表的秒针部分,每秒钟变化一次。当第四位由0变到9时,第四位自动清零,第三位由0变成1,实现加一。
软件的实现分为两部分。首先先实现后两位的秒针功能,先将前两位置之。下面是编程的设想。
由于数码管的引脚是共阳极,所有的阳极都是连接在一起的,因此不能同时给所有的阳极供电,如果那样的话,所有的数码管会有相同的显示方式。考虑到这一情况,只能采用和点阵屏类似的扫描方法,即将数码管分成四个一位的情况,然后每个4ms扫描一次的方法。
P3.5 P3.4 P3.3 P3.2 A B C D 显示 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 十六 引脚 1 2 4 5 7 10 11 Dp 0 0 0 0 1 0 0 0 1 11 1 1 1 0 1 0 1 1 1 D7 2 0 0 1 0 0 1 0 1 25 3 1 0 0 0 0 1 0 1 85 4 1 1 0 0 0 0 1 1 C3 5 1 0 0 0 1 0 0 1 89 6 0 0 0 0 1 0 0 1 09 7 1 1 0 1 0 1 0 1 D5 8 0 0 0 0 0 0 0 1 01 9 1 0 0 0 0 0 0 1 81 下面是对D位数码管的控制,以测试段选的有效性。
#includestc12c2052.h
#define weixuan P1
sbit a= P3^5;
sbit b =P3^4;
sbit c =P3^3;
sbit d= P3^2;
void yanshi(unsigned int a )
{
unsigned int i;
while(--a)
{
for(i=0;i600;i++) ;
}
}
void main()
{
code unsigned char shuzi[]={0x11,0xd7,0x25,0x85,0xc3,0x89,0x09,0xd5,0x01,0x81};
P1M0=0X00;
P1M1=0XFF;//设置P1,P3接口的工作方式为推挽输出。
P3M0=0X00;
P3M1=0XFF;
while(9)
{
unsigned int j;
d=1;
for(j=0;j=9;j++)
{
weixuan=shuzi[j];
yanshi(1000);
}
}
}
这样的话,第D位会大约每一秒显示一个数字,从0到9不断地循环。证明了段选的设置是真实有效的。接下来的任务就是对ABC位进行控制。
下面是实际的焊接之中,考虑到实际电路的连接顺序,采用下面的连接。
引脚 1.7 1.6 1.5 1.4 1.3 1.2 1.1 1.0 1 2 3 4 11 5 7 10
1 2 3 4 11 5 7 10 十六 0 0 0 1 0 0 1 0 0 0x24 1 1 1 1 0 1 1 0 1 0xed 2 0 0 1 1 0 0 0 1 0x31 3 1 0 1 0 0 0 0 1 0xa1 4 1 1 1
文档评论(0)