四位共阳数码管的使用剖析
4位共阳LED数码管

七段数码管引脚图《七段数码管引脚图》数码管使用条件:a、段及小数点上加限流电阻b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的,4位数码管引脚图数码管使用注意事项说明:(1)数码管表面不要用手触摸,不要用手去弄引角;(2)焊接温度:260度;焊接时间:5S(3)表面有保护膜的产品,可以在使用前撕下来。
这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp (小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如下图所示。
图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个LED的亮灭来显示数字。
那么,实际的数码管的引脚是怎样排列的呢?对于单个数码管来说,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为1~10脚,左上角那个脚便是10脚了,上面两个图中的数字分别与这10个管脚一一对应。
注意,3脚和8脚是连通的,这两个都是公共脚。
还有一种比较常用的是四位数码管,内部的4个数码管共用a~dp这8根数据线,为人们的使用提供了方便,因为里面有4个数码管,所以它有4个公共端,加上a~dp,共有12个引脚,下面便是一个共阴的四位数码管的内部结构图(共阳的与之相反)。
引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚,下图中的数字与之一一对应。
(点击图片放大)。
4bitled数码管

4bitled数码管4位LED数码管是一种常见的显示器件,它由四个独立的发光二极管组成,每个管子都可以显示0到9的数字。
它在电子设备、数码时钟、计算器等各种应用中得到广泛应用。
下面我将就4位LED数码管的原理、使用方法和一些常见问题进行详细介绍。
首先,4位LED数码管使用的是共阴共阳的工作方式。
通过控制四个管子的导通和不导通,可以实现不同数字的显示。
比如,要显示数字0,只需将1、2、3、4四个管子同时导通,其他数字也是相同的道理。
数码管是以数字编码的方式来控制数码管上的显示内容。
常见的编码方式有BCD码和7段码两种。
其中,BCD码是二进制编码的一种,使用4位二进制数来编码0到9的数字。
而7段码则是用7位二进制数来编码0到9的数字和一些字母、符号等。
在使用4位LED数码管时,需要接入控制电路,并通过该电路来实现数字的显示。
常用的控制电路有集成电路和单片机等。
集成电路是一种常见的控制4位LED数码管的方式。
通过将控制电路与数码管连接,可以实现不同数字的显示。
集成电路中有很多种类和型号,常用的有74HC138、74HC595等。
这些集成电路可以将控制信号转化为数码管的工作电压和电流,从而控制数码管的亮灭。
单片机也是常见的控制4位LED数码管的方式。
通过编写程序,将需要显示的数字发送到数码管的对应引脚上,就可以实现数字的显示。
单片机有很多种类和型号,常用的有51单片机、Arduino等。
在使用4位LED数码管时,还需要注意一些问题。
首先,需要合理选择控制电路的工作电压和工作电流,以免损坏数码管。
其次,需要正确连接数码管的引脚,以确保正常工作。
另外,要注意信号的稳定性和抗干扰能力,尽量避免信号的干扰和失真。
总结起来,4位LED数码管是一种常见的显示器件,它通过控制四个发光二极管的亮灭,可以实现不同数字的显示。
使用4位LED数码管需要接入控制电路,常见的控制方式有集成电路和单片机。
在使用过程中,需要注意电压电流的合理选择、引脚的正确连接和信号的稳定性等问题。
四位共阴和共阳数码管的引脚介绍及检测方法概括

内部的四个数码管共用a~dp这8根数据线,为人们的使用提供了方便,因为里面有四个数码管,所以它有四个公共端,加上a~dp,共有12个引脚,下面便是一个共阴的四位数码管的内部结构图(共阳的与之相反)。
引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚,下图中的数字与之一一对应。
数码管使用条件:a、段及小数点上加限流电阻b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的,4位数码管引脚图请在本站搜索我也提供了数码管使用注意事项说明:(1)数码管表面不要用手触摸,不要用手去弄引角;(2)焊接温度:260度;焊接时间:5S(3)表面有保护膜的产品,可以在使用前撕下来。
数码管测试方法与数字显示译码表ARK SM410501K SM420501K 数码管引脚图判断数码管识别ARK SM410501K 共阳极数码管ARK SM420501K 共阴极数码管到百度搜索下,这两种数码管只有销售商,并无引脚图。
对于判断引脚,对于老手来说,很简单,可是对于新手来讲,这是件很难的事情,因为共阴、共阳表示的含义可能还不太懂ZG工作室只是将该数码管的引脚图给出,并让大家一起分享。
注:SM410501K 和SM420501K 的引脚排列是一模一样的。
这张图很明确给出该数码管的引脚排列。
数字一面朝向自己,小数点在下。
左下方第一个引脚为1、右下方第二个引脚为5,右上方第一个引脚为6。
见图所示。
其中PROTEL图中K 表示共阴、A表示共阳。
能显示字符的LED数码管(三)常用LED数码管的引脚排列图和内部电路图CPS05011AR(1位共阴/红色 0.5英寸)、SM420501K(红色 0.5英寸)、 SM620501(蓝色0.5英寸)、SM820501(绿色0.5英寸)SM420361(1位共阴/红色0.36英寸)、 SM440391(红色0.39英寸) SM420322(1位共阴/红色0.32英寸)、SM220322(绿色0.32英寸)SM410561K(1位共阳/红色0.56英寸)、SM610501(蓝色0.5英寸)、 SM810501(绿色0.5英寸)SM410361(1位共阳/红色0.36英寸)、HDSR-7801(红色 0.3英寸)、HDSP-7301(红色 0.3英寸)SM410322(1位共阳/红色0.32英寸)、SM210322(绿色0.32英寸)SN420502(2位共阴/红色静态 0.5英寸)、SN220801(绿色0.8英寸)、KW2-561CGA(绿色 0.56英寸)SN410502(2位共阳/红色静态 0.5英寸)、SN210801(绿色0.8英寸)SN460561(2位共阴/红色动态 0.56英寸)、SN260561(绿色0.56英寸) SN450561(2位共阳/红色动态0.56英寸)、SN250561(绿色0.56英寸)LED数码管简易测试方法一个质量保证的LED数码管,其外观应该是做工精细、发光颜色均匀、无局部变色及无漏光等。
共阳四位八段数码管

共阳四位八段数码管
标题:共阳四位八段数码管
共阳四位八段数码管是一种常见的显示器件,广泛应用于计时器、计数器等电子设备中。
它具有清晰的显示效果和简单的使用方式,为用户提供了便利。
数码管的工作原理是通过控制不同的管脚电平来点亮对应的数字或符号。
共阳四位八段数码管共有12个引脚,其中8个用于控制8段显示,另外4个引脚用于控制四位显示。
使用共阳四位八段数码管的步骤如下:首先,通过电路连接将数码管与主控芯片相连;然后,通过主控芯片发送信号控制数码管的显示内容;最后,数码管根据信号点亮相应的数字或符号。
在使用共阳四位八段数码管时,需要注意以下几点:首先,要保证电路连接正确,引脚对应无误;其次,要根据需要设置合适的亮
度,以便在不同环境下清晰可见;此外,要注意避免过高的电流和过高的温度,以防止数码管损坏。
总结起来,共阳四位八段数码管是一种常用的显示器件,具有清晰的显示效果和简单的使用方式。
在使用时要注意正确的连接和设置适当的亮度,以确保正常运行。
通过合理使用和维护,共阳四位八段数码管能够为用户提供稳定可靠的显示功能。
Arduino 入门到精通 例程16-四位数码管剖析

Arduino 入门到精通例程16这次我们进行的实验是使用arduino驱动一块共阳四位数码管。
驱动数码管限流电阻肯定是必不可少的,限流电阻有两种接法,一种是在d1-d4阳极接,总共接4颗。
这种接法好处是需求电阻比较少,但是会产生每一位上显示不同数字亮度会不一样,1最亮,8最暗。
另外一种接法就是在其他8个引脚上接,这种接法亮度显示均匀,但是用电阻较多。
本次实验使用8颗220Ω电阻(因为没有100Ω电阻,所以使用220Ω的代替,100欧姆亮度会比较高)。
4位数码管总共有12个引脚,小数点朝下正放在面前时,左下角为1,其他管脚顺序为逆时针旋转。
左上角为最大的12号管脚。
下图为数码管的说明手册下面是硬件连接图ARDUINO CODECOPY1.//设置阴极接口2.int a = 1;3.int b = 2;4.int c = 3;5.int d = 4;6.int e = 5;7.int f = 6;8.int g = 7;9.int p = 8;10.//设置阳极接口11.int d4 = 9;12.int d3 = 10;13.int d2 = 11;14.int d1 = 12;15.//设置变量16.long n = 0;17.int x = 100;18.int del = 55; //此处数值对时钟进行微调19.20.void setup()21.{22.pinMode(d1, OUTPUT);23.pinMode(d2, OUTPUT);24.pinMode(d3, OUTPUT);25.pinMode(d4, OUTPUT);26.pinMode(a, OUTPUT);27.pinMode(b, OUTPUT);28.pinMode(c, OUTPUT);29.pinMode(d, OUTPUT);30.pinMode(e, OUTPUT);31.pinMode(f, OUTPUT);32.pinMode(g, OUTPUT);33.pinMode(p, OUTPUT);34.}35.36.void loop()37.{38. clearLEDs();39. pickDigit(1);40. pickNumber((n/x/1000)%10);41.delayMicroseconds(del);42.43. clearLEDs();44. pickDigit(2);45. pickNumber((n/x/100)%10);46.delayMicroseconds(del);47.48. clearLEDs();49. pickDigit(3);50. dispDec(3);51. pickNumber((n/x/10)%10);52.delayMicroseconds(del);53.54. clearLEDs();55. pickDigit(4);56. pickNumber(n/x%10);57.delayMicroseconds(del);58.59. n++;60.61.if(digitalRead(13) == HIGH)62.{63. n = 0;64.}65.}66.67.void pickDigit(int x)//定义pickDigit(x),其作用是开启dx端口68.{69.digitalWrite(d1, LOW);70.digitalWrite(d2, LOW);71.digitalWrite(d3, LOW);72.digitalWrite(d4, LOW);73.74.switch(x)75.{76.case1:77.digitalWrite(d1, HIGH);78.break;79.case2:80.digitalWrite(d2, HIGH);81.break;82.case3:83.digitalWrite(d3, HIGH);84.break;85.default:86.digitalWrite(d4, HIGH);87.break;88.}89.}90.91.void pickNumber(int x)//定义pickNumber(x),其作用是显示数字x92.{93.switch(x)94.{95.default:96. zero();97.break;98.case1:99. one();100.break;101.case2:102. two();103.break;104.case3:105. three();106.break;107.case4:108. four();109.break;110.case5:111. five();112.break;113.case6:114. six();115.break;116.case7:117. seven();118.break;119.case8:120. eight();121.break;122.case9:123. nine();124.break;125.}126.}127.128.void dispDec(int x)//设定开启小数点129.{130.digitalWrite(p, LOW);131.}132.133.void clearLEDs()//清屏134.{135.digitalWrite(a, HIGH);136.digitalWrite(b, HIGH);137.digitalWrite(c, HIGH);138.digitalWrite(d, HIGH);139.digitalWrite(e, HIGH);140.digitalWrite(f, HIGH);141.digitalWrite(g, HIGH);142.digitalWrite(p, HIGH);143.}144.145.void zero()//定义数字0时阴极那些管脚开关146.{147.digitalWrite(a, LOW);148.digitalWrite(b, LOW);149.digitalWrite(c, LOW);150.digitalWrite(d, LOW);151.digitalWrite(e, LOW);152.digitalWrite(f, LOW);153.digitalWrite(g, HIGH);154.}155.156.void one()//定义数字1时阴极那些管脚开关157.{158.digitalWrite(a, HIGH);159.digitalWrite(b, LOW);160.digitalWrite(c, LOW);161.digitalWrite(d, HIGH);162.digitalWrite(e, HIGH);164.digitalWrite(g, HIGH);165.}166.167.void two()//定义数字2时阴极那些管脚开关168.{169.digitalWrite(a, LOW);170.digitalWrite(b, LOW);171.digitalWrite(c, HIGH);172.digitalWrite(d, LOW);173.digitalWrite(e, LOW);174.digitalWrite(f, HIGH);175.digitalWrite(g, LOW);176.}177.178.void three()//定义数字3时阴极那些管脚开关179.{180.digitalWrite(a, LOW);181.digitalWrite(b, LOW);182.digitalWrite(c, LOW);183.digitalWrite(d, LOW);184.digitalWrite(e, HIGH);185.digitalWrite(f, HIGH);186.digitalWrite(g, LOW);187.}188.189.void four()//定义数字4时阴极那些管脚开关190.{191.digitalWrite(a, HIGH);192.digitalWrite(b, LOW);193.digitalWrite(c, LOW);194.digitalWrite(d, HIGH);195.digitalWrite(e, HIGH);196.digitalWrite(f, LOW);197.digitalWrite(g, LOW);198.}199.200.void five()//定义数字5时阴极那些管脚开关201.{202.digitalWrite(a, LOW);204.digitalWrite(c, LOW);205.digitalWrite(d, LOW);206.digitalWrite(e, HIGH);207.digitalWrite(f, LOW);208.digitalWrite(g, LOW);209.}210.211.void six()//定义数字6时阴极那些管脚开关212.{213.digitalWrite(a, LOW);214.digitalWrite(b, HIGH);215.digitalWrite(c, LOW);216.digitalWrite(d, LOW);217.digitalWrite(e, LOW);218.digitalWrite(f, LOW);219.digitalWrite(g, LOW);220.}221.222.void seven()//定义数字7时阴极那些管脚开关223.{224.digitalWrite(a, LOW);225.digitalWrite(b, LOW);226.digitalWrite(c, LOW);227.digitalWrite(d, HIGH);228.digitalWrite(e, HIGH);229.digitalWrite(f, HIGH);230.digitalWrite(g, HIGH);231.}232.233.void eight()//定义数字8时阴极那些管脚开关234.{235.digitalWrite(a, LOW);236.digitalWrite(b, LOW);237.digitalWrite(c, LOW);238.digitalWrite(d, LOW);239.digitalWrite(e, LOW);240.digitalWrite(f, LOW);241.digitalWrite(g, LOW);242.}243.244.void nine()//定义数字9时阴极那些管脚开关245.{246.digitalWrite(a, LOW);247.digitalWrite(b, LOW);248.digitalWrite(c, LOW);249.digitalWrite(d, LOW);250.digitalWrite(e, HIGH);251.digitalWrite(f, LOW);252.digitalWrite(g, LOW);253.}把下面代码复制下载到控制板中,看看效果。
4位共阳-共阴极-LED数码管

4位共阳-共阴极-LED数码管前言LED数码管由多个发光二极管组成,可以显示数字和其他字符。
它们是计算机和电子设备上最常见的视觉显示元件之一。
数码管分为共阳极和共阴极两种类型。
在此文档中,我们将探讨4位共阳-共阴极-LED数码管。
4位共阳-共阴极-LED数码管概述4位共阳-共阴极-LED数码管是一种常见的LED数码管之一。
它允许您显示从0到9之间的数字,以及一些其他字符。
4位数码管由4个共阳或共阴的LED数码管组成。
每个数码管由7个大小不同的短杠组成,这些短杠可以组成数字和字符,例如’A’和’E’。
共阳极4位数码管和共阴极4位数码管之间的区别在于极性。
4位共阳极数码管中,所有阳极都连接在一起,而阴极是分别控制的;而在4位共阴极数码管中,所有阴极都连接在一起,而阳极是分别控制的。
4位共阳-共阴极-LED数码管的特点1. 星型排列4位共阳-共阴极-LED数码管通常排列成星形。
星形排列对于阅读数字和字符非常方便,因为它使它们非常清晰且易于读取。
此外,4位共阳-共阴极-LED数码管的排列方式还允许它们在计算机中常见的矩形电路板上排布。
2. 可靠性4位共阳-共阴极-LED数码管可以在广泛的电压和温度范围内工作。
即使在恶劣的环境下也可以正常工作,同时,这些数码管还具有长寿命和抗微震动的特点。
3. 低功耗与其他显示设备相比,4位共阳-共阴极-LED数码管的功耗非常低,这使得它们非常适合使用在便携设备上。
如何使用4位共阳-共阴极-LED数码管4位共阳-共阴极-LED数码管非常适合用于倒计时器、计时器和温度计等应用中。
使用它们时需要将它们连接到控制器或芯片中,以便能够控制它们的显示内容。
通常,驱动4位共阳-共阴极-LED数码管需要一个控制芯片,例如74HC595芯片。
该芯片可以通过串行数据链路控制数码管的每个段。
在本文档中,我们介绍了4位共阳-共阴极-LED数码管的概述、特点以及如何使用它们。
4位共阳-共阴极-LED数码管具有独特的星形排列方式,可靠性高,低功耗等特点。
4位数码管实验报告

竭诚为您提供优质文档/双击可除4位数码管实验报告篇一:数码管实验报告篇一:实验八数码管led实验报告苏州大学实验报告院、系年级专业姓名学号课程名称成绩指导教师同组实验者实验日期实验名称:数码管led实验一.实验目的理解8段数码管的基本原理,理解8段数码管的显示和编程方法,理解4连排共阴极8段数码管lg5641ah与mcu的接线图。
二.实验内容理解8段数码管原理,运行与理解各子程序,编制一个4连排8段数码管程序,mcu的排8段数码管显示mcu复位后的开始到现在的运行时间。
由于只有四个数码管,所以只显示mcu运行到目前为止的分钟和秒,当计时达到一个小时,就重新从00:00开始计时。
另外,也可以通过pc方的串口通信程序,指定计时的开始值。
三.实验过程(一)原理图图8-2数码管外形dpabcefgdp图8-1数码管(二)接线图图8-3mcu与4连排8段数码管的连接第1页(三)基本原理8段数码管一般由8个发光二极管(llight-emittingdiode,led)组成,每一个位段就是一个发光二极管。
一个8段数码管分别由a、b、c、d、e、f、g位段,外加上一个小数点的位段h(或记为dp)组成。
根据公共端所接电平的高低,可分为共阳极和共阴极两种。
有时数码管不需要小数点,只有7个位段,称7段数码管。
共阴极8段数码管的信号端高电平有效,只要在各个位段上加上相应的信号即可使相应的位段发光,比如:要使a段发光,则在发光。
四.编程(一)流程图图8-4数码管led显示流程图(及其中断子程序)(二)所用寄存器名称及其各个位程序中没有使用与led显示相关的控制和状态寄存器,仅仅使用了通用i/o口a口和b口。
(三)主要代码段1第2页第3页2.c第4页第5页篇二:数码管实验报告单片机实验报告一、实验名称数码管动态扫描显示01234567(实验五)二、实验目的(1)掌握数码管显示数字的原理。
(2)通过不同的编程实现灵活运用数码管。
51单片机中4个数码管的显示实验

51单片机中4个数码管的显示实验一、实验目的:1、看懂电路原理图,明白4个共阳数码管的编程方式。
2、看懂参考程序,学会使用扫描法来对4个数码管进行扫描显示。
学会使用定时器。
二、实验设备:51通用实验板一个,51仿真器一个,40针仿真头一个,12V电源一个,串口线一条。
三、实验电路原理图:四、实验内容:4个数码管一次显示4个数字,下一次加4进行显示,数字最大为9,到9再从0重新进行显示。
中间有一定的时间延时。
改变数据用定时器进行设置。
五、实验步骤:安实物图的形式把实验设备连接在一起。
六、参考程序:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4个数码管的显示实验;使用70H,71H,72H,73H进行数码管显示数据存储。
75H进行定时器定时时间设置,发光二极管L1进行亮灭显示改变数据标志。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SETTIM EQU 75H;定时时间长短设定ORG 0000HLJMP MAINORG 000BHLJMP TIM0;定时器0中断ORG 0030HMAIN: ;主程序MOV SP,#07HMOV SETTIM ,#00HLCALL INIT;初始化数据MOV TMOD,#01H;设值定时器0MOV TH0,#00H;定时初值MOV TL0,#00HSETB EA;开总中断SETB ET0;开中断SETB TR0;开始定时器STAR:LCALL DISPLJMP STAR;****************************************;显示子程序DISP: MOV R0,#0FEHMOV R1,#70HDISP1:MOV A,R0MOV P2,AMOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P0,ALCALL DLYSINC R1MOV A,R0RL AMOV R0,AJB ACC.4,DISP1RET;***************************************;定时器0中断程序TIM0:CLR TR0CLR EAMOV A,SETTIMINC ACJNE A,#9,TM1LCALL CHGMOV A,#00HCPL P1.0;定时器运行标志,使L1灯不断闪动TM1: MOV SETTIM,AMOV TH0,#00HMOV TL0,#00HSETB EASETB TR0RETI;****************************改变要显示的值CHG:MOV R0,#70HMOV R3,#04HCH1:MOV A,@R0INC ACJNE A,#0AH,CH2MOV A,#00HCH2:MOV @R0,AINC R0DJNZ R3,CH1RET;********************************************;初始化程序INIT: ;初始化70H---73H中的数据,使用R0,R1,R3MOV R0,#00H;数据初值MOV R3,#04HMOV R1,#70H;4个数码管数据存储地址IN0:MOV A,R0MOV @R1,AINC R0INC R1DJNZ R3,IN0RET;*****************************************;延时程序DLYS: MOV R6,#5DLYS0:MOV R5,#150DJNZ R5,$DJNZ R6,DLYS0RET;*****************************************;数据表TAB:DB 0C0H,0F9H,0A4H,0B0H; 0,1,2,3DB 99H,92H,82H,0F8H;?,5,6,7DB 80H,90H,88H,83H;?,9,A,BDB 0C6H,0A1H,86H,8EH;C,D,E,FDB 8CH,89H,07fh,0bFH;P,H,.,-11001011END七、思考:修改一下程序,使用定时器2进行定时改变数据进显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
}
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;
引脚
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
1
0
0
0
0xe8
5
1
0
1
0
0
0
1
0
0xa2
6
0
0
1
0
0
0
1
0
0x22
7
1
1
1
0
0
1
0
1
0xe5
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位数码管的控制,以测试段选的有效性。
两位数码管源程序:
#include<stc12c2052.h>
#define weixuan P1
sbit a= P3^5;
sbit b =P3^4;
sbit c =P3^3;
sbit d= P3^2;
void t0yanshi()//延时4ms
{
TMOD=0X01;//十六位
TL0 = 0x60;//设置定时初值
由于数码管的引脚是共阳极,所有的阳极都是连接在一起的,因此不能同时给所有的阳极供电,如果那样的话,所有的数码管会有相同的显示方式。考虑到这一情况,只能采用和点阵屏类似的扫描方法,即将数码管分成四个一位的情况,然后每个4ms扫描一次的方法。
P3.5
P3.4
P3.3
P3.2
A
B
C
D
显示
P1.7
P1.6
P1.5
while(9)
{
unsigned int j;
d=1;
for(j=0;j<=9;j++)
{
weixuan=shuzi[j];
yanshi(1000);
}
}
}
这样的话,第D位会大约每一秒显示一个数字,从0到9不断地循环。证明了段选的设置是真实有效的。接下来的任务就是对ABC位进行控制。
下面是实际的焊接之中,考虑到实际电路的连接顺序,采用下面的连接。
TH0 = 0xF0;//设置定时初值
TR0=1;
while(TF0==0) ;
TF0=0;
}
void main()
{
unsigned int j,k,l;
code unsigned char shuzi[]={0x24,0xed,0x31,0xa1,0xe8,
0xa2,0x22,0xe5,0x20,0xa0};
/********************************推挽设置*************************/
P1M0=0X00;
P1M1=0XFF;//设置P1,P3接口的工作方式为推挽输出。
P3M0=0X00;
P3M1=0XFF;
/*****************************************************************/
8
0
0
1
0
0
0
0
0
0x20
9
1
0
1
0
0
0
0
0
0xa0
下面是通过动态扫描的方法,利用单片机控制数码管的后两位(C和D),来实现数码管从00显示到99的一个程序。单片机每4ms输出一个信号,控制数码管显示一个数字,利用人眼的视觉暂停效果来实现显示变化的过程。由于外接电阻1K,所以单片机在亮度上不是很好,在以后的操作中还是需要改善的。
a=0;b=0;c=0;d=0;
while(1)
{
for(j=0;j<10;j++)//十位循环
{
for(k=0;k<10;k++)//个位循环
{
for(l=0;l<125;l++)//125*8ms=1000ms=1s
{
c=1;weixuan=shuzi[j];t0yanshi();c=0;//4ms
#include<stc12c2052.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;i<600;i++) ;
软件准备
将单片机的I/O接口设置成推挽输出。
P1M0=0X00;
P1M1=0XFF;
P3M0=0X00;
P3M1=0XFF;
控制思路:
第三四位作为秒变成1,实现加一。
软件的实现分为两部分。首先先实现后两位的秒针功能,先将前两位置之。下面是编程的设想。
四位数码管的探究
硬件准备
四位共阳数码管一块,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脚单片机控制数码管产生时钟的效果是切实可行的。下面关键的部分就成了数码管的编程阶段了。
d=1;weixuan=shuzi[k];t0yanshi();d=0;//4ms
}
}
}
}
}
接下来将会是对数码管的A,B,C,D四位的控制。由于上面的基础,相信四位控制显示0000——9999的过程将不会很复杂。