- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51单片机之单双数码管
【实验题目】 单双数码管
【目的与要求】 1.学习单双数码管的构造原理。
2.学习数码管的显示原理。
3.练习数码管的计数显示。
4.要求四个学时完成。
【实验平台】 电脑 伟福 Protuse 7仿真软件
【实验原理】在前面关于二极管的实验中已多次提到数码管的显示的基本原理但与真正的数码管是有所区别的。数码管有共阴共阳之分:
上图中的a,b,c,d,e,f,g,分别对应下图中数码管的相应长形二极管,dp为数码管右下角一个圆形的二极管,用于表示小数点。Com为总线,共阴接地,共阳接电源。通过七个长形的二极管亮灭来显示数字。
由于数码管中二极管的排列固定,接顺序固定,所以有一组固定的十六进制数使其显示固定的数字。从0至9共阴为:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f。
双数码管:双数码管只是将两个单数码管叠加,即将所有的接口并连起来,只留出两个公共端,即单数码管中的com总线,在双数码管中称作“dig”位选线接口,举例:共阳的双数,给dig1一个高电位,就使数码管1接通显示,数码管2就处于关闭状态,同理应用于dig2。所以双数上八个段选接口,和两个位选接口。
看到这里我们或许会不明白,两个数码管,只有一个组段选线口,如何能让两个数码管同时显示呢,这里就有了数码管的显示方式问题。
数码管的显示方式:静态显示,多指单数码管,公共端固定接地或接电源, 直接从I/O口发送相应的字段码,则实际数码管的显示过程是静态不闪动(原理上非视觉上)的显示,即组成数码管的二极管都没有亮灭的闪动。而动态显示是由于双数码管只有一组段选线,不可能使两个数码管同时显示不同的内容,但是我们可以通过快速的交替显示,达到视觉上共同显示的效果,这就是动态显示。
数码管与单片机的接口:既然数码管与二极管的原理相同,那么数码管也是用I/O口控制。
【实验过程】
做数码管的静态固定显示。显示一个数字。
#includereg51.h
main()
{ P1=0x66; //给P1口赋值4共阴
}
从图中我们可以看出单数码管的连接方法,最右端接口就是总线接地。在此还有必要介绍一下数码管在库中名称为“7SEG”带有“CC”的表示共阴,“CA”的表共阳,常用共阴的,以下实验内容也全是使用共阴的数码管。
思考:即然有设定好的数用于数码管的显示,我们可以用其对数组初始化,利用for循环来使数码管显示从0至9的数字。
#includereg51.h
main()
{ int i,s=0; //定义两变量
int a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f}; //从0至9共阴
while(1)
{ i=s%10; //将s除10的余数赋给i为从0至9
P1=a[i]; //i变化使P1被赋予从0至9的数组元素
s++; //运行一次S加1
if(s==10)
s=0; //用if判断语句来使s从0到9不断循环
delay(200); //延时函数的调用
}
}
void delay (int t)
{ int j, k ;
for(j=0;j200;j++)
for(k=0;kt;k++);
}
对于双数码管我们也可采用静态显示,但显示内容是一样的。
#includereg51.h
main()
{ P3=0xfc; //共阴所以赋值给两位选口都为0也可单独赋值
P2=0x66; //显示两个4
}
当我们做单数码管时我们用求余的方法使之显示从0至9,而运用于双数码管使其计数显示,有个位有十位,我们就可用求余得到个位数字,用除法取整得到十位数字。例如:s=14,则s%10=4,s/10=1,利用动态显示方式,就可以做出双数码管的从0至99的累加显示。
#includereg51.h
void delay (int);
int i, j, k, s=0;
int a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f};
main()
{while(1)
{j=s%10; //求余赋予j作为个位
i=s/10; //除10取整赋予i作为十位
for(k=0;k=45;k++) //为了使显示更加协调无闪动使用for循环将用于显示的部分程序括起来
{P3=0xfd; //其实只用到了P30,P31两个口,为了方便可直接全部赋值,关闭P30,开通P31即只使右侧数码
您可能关注的文档
最近下载
- 工程水文及水利计算 小流域设计洪水计算、由暴雨资料推求设计洪水、由流量资料推求设计洪水、准备知识 设计洪水分析计算.doc VIP
- 2019款林肯航海家_汽车使用手册用户操作图解驾驶指南车主车辆说明书电子版.pdf
- 财务管理培训之财务基础知识培训课件.pptx VIP
- 慢性阻塞性肺疾病PPT课件共29张PPT).pptx VIP
- 河北高职单招考试二类单招联考文化试题.docx VIP
- 宅经.pdf VIP
- 金川公司社招技能操作人员考试题.pdf
- 暴雨洪水计算表格.xls VIP
- 年产8万吨乙酸乙酯生产车间的设计论文.docx VIP
- 2026届高考语文复习默写专题训练---看图填诗句类默写.docx
文档评论(0)