ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:32.64KB ,
资源ID:12130710      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12130710.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(四位共阳数码管的使用剖析.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

四位共阳数码管的使用剖析.docx

1、四位共阳数码管的使用剖析四位数码管的探究 1硬件准备 1软件准备 2控制思路: 2卞面是实际的焊接之中,考虑到实际电路的连接顺序,采用下面的连接。 4两位数码管源程序:00-99 4异曲同工:000 9999 5更进一步:四位数字时钟 7四位数码管的探究硬件准备四位共阳数码管一块,1K电阻4只。数码管的引脚图如下所示:四位共阳数码管A 11 10 B C 7A B C DBB5BBC接高电平3接低电平时5(夷 1按高电平3授低电平时如2亮A. B. C. D均连接VccKS7IREP3.0 匚TxD/P3.1 匚XTAL2IXTALI匚 rm)/P3.v 匚 EH/P3. 3 匚ECI/T03

2、4 匚 PTO1/PCA0/TPP3.5IGnd匚123456789)sop20 、 DIP20098 7 654321 OG 1 1X 1X 11 1 1X 1X 11 1VCP1.7/SCLKPl.fi/MTSOPl. 5/MO5IPl. 1/Pl.3Pl.2Pl. L/CLK0CI1Pl. O/CLKOCIOP3. 7/PCA0/PW0使用的单片机是STC12C2052,位选町以使用P1接I I控制。参照下面数据手册的内容,可以看出P35, 3.4, 3.3, 3.2均能够作为I/O接口以推挽方式使用。由于数码管所能承受的电流较小,所以外加1K的限流电阻。单片机P3.5, 3.4, 3.

3、3, 3.2四个接口可以作为数码阳极一端,利用推挽方式输出高电平,pi接11作为数码管的段选,输出低电平,驱动每一段数码管,这就为设想的实现取得了理 论的基础。证明了使用20脚单片机控制数码管产生时钟的效果是切实可行的。下面关键的 部分就成了数码管的编程阶段了。P1 口 设定 P1M0 (7: 0P1M1 7: 0I/O Ul模式(Pl.K如做AQ使用,需先将英设置成开漏或高阻输入00准双向口(传统8051 I/O 口模式 灌电流可达20mA 拉电流为230uA 由于制造误差,实际为250uA150uA01推挽输出(强上拉输出.可达20mA.要加限流电阻)10仅为输入(奇阻),如果该UO口需作

4、为A/D使用,可选此模式11开jW(Open Drain).如果该IS口需作为A/D使用.可选此換式P3 口设定 P37, x , P3. 5, P3.4, P3. 3, P3.2, P3. 1, P3. 0 无P3.6 口P3M0 7: 0P3M1 7: 0I/O 口模式00准双向口(传统8051 I/O 口模式). 淞电流可达20mA拉电流为230pA 由于制造误差实际为250uA 15 Ou A01推挽输出(强卜拉输出可达20mA.耍加限流电R1)10仅为输入(高阻)11JTifOpen Drain),内部上拉电阻断开,耍外加卜面将使用单片机控制数码管产生时钟的效果。由于单片机的计时是由

5、软件延时的方法产生,所以说误差会有很人。因此本作品仅供娱乐。初期的想法是加入闹钟的概念。但是由于 闹钟的定时不易调整,只能通过计算机编写软件定闹,这样就不是时钟的简洁的目的。另外, 由于当单片机控制蜂鸣器响的时候,单片机控制数码管的部分势必会停止,这样又会影响时 钟的准确性。因此,首先要实现的只是单片机的简易时钟功能或者说只是一个最人为1小时 的秒表。软件准备将单片机的O接I I设置成推挽输出。P1MO=OXOO;P1M1=OXFF;P3M0=0X00;P3M1=OXFF;控制思路:第三四位作为秒表的秒针部分,每秒钟变化一次。当第四位由0变到9时,第四位自动清零, 第三位由0变成1,实现加一。

6、软件的实现分为两部分。首先先实现后两位的秒针功能,先将前两位置之。卜面是编程的设 想。由于数码管的引脚是共阳极,所有的阳极都是连接在一起的,因此不能同时给所有的阳极供 电,如果那样的话,所有的数码管会有相同的显示方式。考虑到这一情况,只能采用和点阵 屏类似的扫描方法,即将数码管分成四个一位的情况,然后每个4nis扫描一次的方法。 四位共阳数码管A 11 10 B C 7A B C D日日汨日I111 11 1 1/ 4 51 1C授高电平3接低电平 d授高电平3恢低电平时dp2亮A. B. C. D均连接VccP3.5P3.4P3.3P3.2ABCD显示P1.7P1.6P1.5P1.4P1.3

7、P1.2P1.1P1.0十六引脚124571011Dp00001000111111010111D720010010I2531000010185411000011C35100010018960000100109711010101D58000000010191000000I81卜面是对D位数码管的控制,以测试段选的有效性。#include#defiiie weixuan Plsbit a=P3A5;sbit b =P3A4;sbit c =P3A3;sbit d= P3A2;void yanshi(unsigned int a )unsigned int i;while(a)fbr(i=0;i60

8、0;i+);void mam()code unsigned char shuzi=0xll,0xd7,0x25,0x85,0xc3,0x89,0x09,0xd5,0x01,0x81;PlM0=0X00;P1M1=OXFF;/设置Pl, P3接I的工作方式为推挽输P3M0=0X00;P3Ml=0XFF;while(9)unsigned iiit j;d=l;for(j=0j 21 1 1J 4 fc接高电平3接低电平时d小亮 日按高电平3按低电平时如2亮A. B. C. D均连接Vcc12340001011110200113101041110510106001071110800109101011

9、5710十六01000x241101Oxed00010x310001Oxa!10000xe800100xa200100x220101Oxe500000x200000OxaO下面是通过动态扫描的方法,利用单片机控制数码管的后两位(C和D),来实现数码管从 00显示到99的一个程序。单片机每4ms输出一个信号,控制数码管显示一个数字,利用人 眼的视觉暂停效呆来实现显示变化的过程。由于外接电阻1K,所以单片机在亮度上不是很 好,在以后的操作中还是需要改善的。两位数码管源程序:00-99#include define weixuan Pl sbit a=P3A5;sbit b =P3A4;sbit c

10、 =P3A3;sbit d= P3A2;void tOyansliiQ 址时 4nisTMOD=OXOi;/ 十六位TLO = 0x60; /设置定时初值THO = OxFO; /设置定时初值TR0=l;xvhile(TF0=0);TF0=0;void mam()unsigned int j,kj;code unsigned char shuzi=0x24,0xed.0x31 .Oxa 1.0xe8.0xa2.0x22,0xe5,0x20,0xa0;/* 扌非挽设置 * */PlM0=0X00;P1M1=OXFF;/设置Pl, P3接I I的工作方式为推挽输出。P3M0=0X00;P3Ml=0

11、XFF:严*/ a=O;b=O;c=O;d=O;xvhile(l)血(J=O;j v 10J-H-) p (坏fbr(k=O;k 10:k+)个位馆坏for(l=0 ;1125;!+)/! 25* 8ms= 1000nis= 1 sc=l;weixuaii=shuzij;tOyaiishi();c=O; 4ms d=l;weixuaii=shuzik;tOyansluQ;d=O: 4ms接下来将会是对数码管的A.B, C,D四位的控制。由于上面的基础,相信四位控制显示0000 9999的过程将不会很复杂。异曲同工:00009999#include书define weixuan Plsbit a

12、=P3A5;sbit b =P3A4;sbit c =P3A3;sbit d= P3A2;void tOyansliiQ 延时 4nisTMOD=0X01;/+ 六位TLO = 0x60; /设置定时初值THO = OxFO; 设置定时初值TR0=l;while(TF0=0);TFO=O:void mam()unsigned char i,kJaiLii;code unsigned char shuzi=0x24,0xed.0x31 .Oxa 1,0xe8,0xa2.0x22,0xe5,0x20,0xa0;/*ift|& -*/PlM0=0X00;P1M1=OXFF;/设置Pl, P3接门的工

13、作方式为推挽输出。P3MOOXOO;P3Ml=0XFF:*/a=O;b=O;c=O;d=O;xvhile(l)fbr(k=O;k 10;k+) 7 千位fbr(l=0;l10;l+)/ 百位for(m=0 ;m 10 | 位/4ms*4=16nis;fbi(n=O ;n 10 ;n+) 、(Ifoi(i=0;i62;i-H-)/62ms* 16=992ms 1 sa=l;weixuan=shuzik;tOyanshi();a=O: 4ms b= 1 ;weixuan=shuzil ;tOyansluQ;b=O; 4msc=l;weixuan=shuzim;tOvanshi();c=O; 4ms

14、 d= 1 ;weixuan=shuzin;tOyanshi();d=O; 4ms更进一步:1小时定时器#include define weixuan Pl sbit a=P3A5;sbit b =P3A4;sbit c =P3A3;sbit d= P3A2;void tOyansliiQ 址时 4msTMOD=0X01/+A 位TLO = 0x60; 设置定时初值THO = OxFO; 设置定时初值TR0=l;while(TF0=0);TF0=0;void tlyansliiQ/lnisTMOD=0X10;TLl=0xl8; 设置定时初值THl=0xFC; 设置定时初值TR1=1;while

15、(TFl=0);TF1=O;void mam()unsigned char i,kdaiLii;code unsigned char shuzi=0x24,0xed.0x31 .Oxa 1.0xe8. 0xa2.0x22,0xe5,0x20,0xa0;/* 扌非挽设置 * */PlM0=0X00;P1M1=OXFF; /置Pl, P3接I I的工作方式为推挽输出oP3M0=0X00;P3Ml=0XFF:a=O;b=O;c=O;d=O;while(l)fbr(k=0;k6;k+)7T-位for(l=0;l10;l+)/7 百位fbr(m=O ;m6 ;m+) k7 fbi(n=O;n 10;ii

16、-h-).7 个位for(i=0 ;i5 5;i+)/19*55 1045nis=l sa=l;weixuan=shuzik;tOyanshi();a=O: 4msb= 1 ;weixuan=shuzil ;tOyanslu();b=O: 4ms c=l;weixuan=shuzim;tOvanshi();c=O; 4ms d=l;weixuan=shuzin;tOyanshi();d=O; 4ms if(i25)b=l;weixuan=0x20;tlyansliiQ;b=0; inisc=l ;weixuau=0x20;tlyaiisliiQ;c=0; 1ms烁 d= 1 ;weixuan=

17、0x2 O;tl yansliiQ;d=O; 1 ins小数点可能是由3位共同控制的,暂时还没有发现时那两位控制的,所以干脆使用三位控制。 如果小数点的控制也使用4ms的延时,那么每一位数码管显示的时间间隔将会是28ms,经 过实际的测试发现能够明显感觉出闪烁来。由于小数点的显示是连续的,即连续亮25个周 期,灭25个周期,所以使用1ms的延时并不会有什么影响。欲穷千里目下面是24h定时器的源程序。由于实验板的面积有限,不能加入两个调整时间的开关,因此 不能实现调整时间,在未来的实验中将会解决这一问题。增加调节小时,分钟的程序。 #includedefine weixuan Plsbit a=

18、P3A5;sbit b =P3 八 4;sbit c =P3A3;sbit d= P3A2;void tOyansliiQ 延时 InisTMOD=0X01;十六位TL0 = 0xl8; /设置定时初值TH0 = OxFC; /设置定时初值TRO=1;while(TF0=0);TF0=0:void tlyansliiQ/lnisTMOD=0X10;TLl = 0xB4; /设置定时初值TH1 = OxFE; 设置定时初值TR1=1; while(TFl=O);TF1=O;void mam()unsigned char kJjnji; mt i;code unsigned char shuzi=

19、0x24.0xed.0x31 .Oxa 1 .Oxe&0xa2.0x22,0xe5,0x20,0xa0;P1MOOXOO;P1M1=OXFF;/设置Pl, P3接口的工作方式为推挽输出。P3MOOXOO;P3Ml=0XFF:J*/a=O;b=O;c=O;d=O;xvhile(l) fbr(k=0;k2;k+)/T 位fbr(l=0;l10;l+)/ 百位if(k=2&k=4) break; fbr(m=0 ;m6 ;m+) 1、fbi(n=O;n 10;n+丿个仆 for(i=0;i12000;i-H-)/5ms*12000=lniuia=l ;weixuan=shuzik;tOyanslii

20、Q;a=O/ 1msb= 1 ;weixuan=shuzil ;tOyanslii();b=O: 1ms c=l;weixuan=shuzim;tOyanshi();c=O;/lms d= 1 ;weixuan=shuzin ;tOyanshi();d=O;/ 1ms if(i/l 00%2=0),7 小数点闪烁b= 1 ;weixuan=0x2 O;tl yansliiQ; b=0 ;/3 3 Ou sc= 1 ;weixuau=0x20;tlyaiisliiQ;c=O; 33Ous d=l;weixuan=0x20;tlyansliiQ;d=0y/330us注意如果小数点闪烁的程序中同时设置小数点控制为bcd=l,那么将会造成电流较小从而 小数点的闪烁过暗。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1