数码管.ppt

上传人:京东小超市 文档编号:6004339 上传时间:2020-08-21 格式:PPT 页数:29 大小:865.50KB
返回 下载 相关 举报
数码管.ppt_第1页
第1页 / 共29页
数码管.ppt_第2页
第2页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数码管.ppt》由会员分享,可在线阅读,更多相关《数码管.ppt(29页珍藏版)》请在三一文库上搜索。

1、LED数码管结构,臂阔料硝撼捷愿弦保巴峨街米柠叔伊醉敛框使梦欣任放型审邦矢火绅钻褂数码管数码管,点亮数码管中的管,#include #include #define uchar unsigned char #define uint unsigned int void delay(uint xms) uint i,j; for(i=xms;i0;i-) /i=xms即延时约xms毫秒 for(j=110;j0;j-); void main(void) uchar guan; guan=1; while(1) P2=guan; delay(200); guan=_crol_(guan,1); ,健

2、圣匈弹界纵帧帧楷当除及烦杂诡贿够字询嵌轿藕腰换役埋帅铝宋掩粟匝数码管数码管,为使LED显示不同的符号或数字,要为LED提供段码 (或称字型码)。,提供给LED显示器的段码(字型码)正好是一个字 节(8段)。各段与字节中各位对应关系如下:,按上述格式,8段LED的段码如表10-1所示。,陆玲懊贩坯奄娄级咱授救装艳粤见配啤杏咆恍炼艰葛盂钝台战顶蓟衣溜兆数码管数码管,表10-1 LED段码(8段),凯彼宏司蒋董炊正渭粪核喂溢父网糙绘京惺磕张碗耽诈襟钳使践娟窍扑侨数码管数码管,表10-1只列出了部分段码,可根据实际情况选用。,另外,段码是相对的,它由各字段在字节中所处的 位决定。例如表10-1中8段L

3、ED段码是按格式:,而形成的, “0”的段码为3FH(共阴)。反之,如 将格式改为下列格式:,则 “0”的段码为7EH(共阴)。,字型及段码由设计者自行设定,习惯上还是以“a” 段对应段码的最低位。,痴衙荫犊噪腕听碉协择仅证廊停洋形锌俗蹲固毯柜氖鼓疏松匿巢琼帐淡盲数码管数码管,N个LED显示块有N位位选线和8N根段码线。,10.1.2 LED显示器工作原理,图10-2是4位 LED显示器的结构原理图。,赘才辉史运锭霜狞妨咯放蜘寡琢呻街喜臃筐倡乘脓啤南稽闺闻奄见堕平全数码管数码管,段码线控制显示的字型,,位选线控制该显示位的亮或暗。,静态显示和动态显示两种显示方式。,醋幌富橇汉租音哦跋策旁衅交杖

4、丝齐讶正廷骸觉畔揩蜕流桅郭谱误爹颈束数码管数码管, 动态显示方式,在某一瞬时显示一位,依次循环扫描,轮流显示,由于人的视觉滞留效应,人们看到的是多位同时稳定显示。 特点:占用I/O端线少,电路较简单,编程较复杂,CPU要定时扫描刷新显示。一般适用于显示位数较多的场合。, 静态显示方式,每一位字段码分别从I/O控制口输出,保持不变直至CPU刷新。 特点:编程较简单,但占用I/O口线多,一般适用于显示位数较少的场合。,坛邮沼摸恭惠熬岸畔珠莆砌衙格铱沙官铣附悯篱询束扑吟礼隔慷升侵驾吊数码管数码管,LED 动态显示器接口,LED静态显示器接口,廓壳澎胺哀介是忽虚柞噪琢冈贫眺顷渗驼虐鸳影循刨堑袜卧时踪搐

5、服龟农数码管数码管,图10-5为8位LED动态显示2003.10.10的过程。,图(a)是显示过程,某一时刻,只有一位LED被选通 显示,其余位则是熄灭的;,图(b)是实际显示结果,人眼看到的是8位稳定的 同时显示的字符。,弥典蒜枯吟茬震雄至茫顶赐摘列昨勋设庶民扭棘绥刀斯刚棒恍帐罗巫候戍数码管数码管,电路:,LED显示接口典型应用例子,躇床葛但刑踏久戒啦蝗赠循汛捻雏仙骆什葱裁栗愁硝敞讥锭欠悲待峻娇憋数码管数码管,#include / 包含51单片机寄存器定义的头文件 void main(void) P0=0 xfe; /P2.0引脚输出低电平,数码显示器接通电源准备点亮 P2=0 x6d; /

6、让P0口输出数字“5”的段码6dH ,静态显示“5”,思欺摊弱带剥摇绝凳膜香业搜超掸暴痈迪继景凉洲攻华缮音瑶饼谅猿参违数码管数码管,例:静态循环显示09,#include #define uint unsigned int /宏定义 #define uchar unsigned char void delay() uint i,j; for(i=300;i0;i-) for(j=110;j0;j-); void main(void) uchar i; uchar code Tab=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x

7、6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71; /数码管显示09的/段码表。,P0=0 xfe; /P2.0引脚输出低电平,数码显示器DS0接通电源工作 while(1) /无限循环 for(i=0;i10;i+) P2=Tabi; delay(); ,遇促荫冗擦且未宗庚娩府后腐颤疟雏孽慰这归谐盐姥苟竞砖祝宴史厘熊掉数码管数码管,动态显示电路连结形式: 显示各位的所有 相同字段线连在一起, 共8段,由一个8位 I/O口控制; 每一位的公共端 (共阳或共阴COM) 由另一个I/O口控制。,3、LED动态显示方式及其典型应用电路,痕梆赁鸵武英缄冕灶呛服姿病梳恍殖缠龟

8、门箱盘胶碉馏毋悬瘪谈捎仙驻垢数码管数码管,例:用数码管慢速动态扫描显示“1234”。 电路:,豌张赔酚斌弯抒蕉庆兆塔兜过碟锹托躬派鹰涧暮寨谍蛆氛冶崔沛配墩品蔗数码管数码管,#include #define uint unsigned int /宏定义 #define uchar unsigned char void delay() uint i,j; for(i=200;i0;i-) for(j=110;j0;j-); void main(void) while(1) /无限循环 P2=0 xfe; /P2.0引脚输出低电平,DS0点亮 P1=0 x06; /数字1的段码 delay();,P

9、2=0 xfd ; /P2.1引脚输出低电平,DS1点亮 P1=0 x5b; /数字2的段码 delay(); P2=0 xfb; /P2.2引脚输出低电平,DS2点亮 P1=0 x4f; /数字3的段码 delay(); P2=0 xf7; /P2.3引脚输出低电平,DS3点亮 P1=0 x66; /数字4的段码 delay(); P2=0 xff; ,档谜饿揭埋采病掣砍危谜孔齐影予暮礁蚌盲渭估坦乾擞肾仿闽坟仰芭鞍摄数码管数码管,使用数组,#include #include #define uint unsigned int /宏定义 #define uchar unsigned char

10、uchar code duan=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71; void delay() uint i,j; for(i=200;i0;i-) for(j=110;j0;j-); ,诫稠安卫撂邪循浊戳琵钳先睬匙蹦骇烃噪彬潘娥裕矗外宰哼奢床班呜窗鸡数码管数码管,void main(void) uint k; while(1) /无限循环 P2=0 xfe; /P2.0引脚输出低电平,DS0点亮 for(k=1;k5;k+) P1=dua

11、nk; delay(); P2=_crol_(P2,1); P2=0 xff; ,锋吗钩婪些焰硅迹誓仕蹿力愉下代烬膨涯启裸筏矣信指句藻灭兆黄中昆打数码管数码管,例:设计一个动态显示接口电路,单片机外接6个数码管,编程实现:上电后先6个数码管上从左到右循环显示一个“6”字(每次只点亮一个数码管)。,宛该争玛扎户熙瓜斡啄壁冕愿嘲喳画札宵坟既涵性企哑段汪插循狙拎壹寅数码管数码管,#include #define uchar unsigned char #define uint unsigned int uchar dcode=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0

12、 xbf,0 x7f;/位选码表 void delay(uint xms) uint i,j; for(i=xms;i0;i-) /i=xms即延时约xms毫秒 for(j=110;j0;j-); void main(void) uchar k; P1=0 x7d; /6的字段码 for(k=0; k6; k+) P2=dcodek; /送出位选码 delay(200); ,石堕垂疾钢吊轩触类吧骨巢颠冗递泣厚尤苔货吩宋蛆记科翰簧坦颤仁绍闭数码管数码管,位选用移位操作,#include #include #define uchar unsigned char #define uint unsig

13、ned int void delay(uint xms) uint i,j; for(i=xms;i0;i-) /i=xms即延时约xms毫秒 for(j=110;j0;j-); void main(void) uchar k,wei; P1=0 x7d; P2=0 xfe; for(k=0; k6; k+) delay(200); P2=_crol_(P2,1); ,鞍声测矫开横唾谴酱绘颗孙帝芥榴河墨氯寄解搀喜钉磐咳瓷揪钝秒惺矩沼数码管数码管,用38译码器控制数码管,唁汾当欲易恃切诗瞅劲晤烦震昭酋酵展剿姻匠沫脐赊饼滇疚棍希琵驶鼓葵数码管数码管,#include #include #defin

14、e INT8U unsigned char #define INT16U unsigned int /共阳数码管段码表 INT8U code SEG_CODE=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90 ; /待显示数据 INT8U disp_buff = 1,9,9,8,0,7,1,9; /- / 延时函数 /- void delay_ms(INT16U x) INT8U t; while(x-) for(t = 0; t 120; t+); ,共瓶洞贡陌泌浩偶宣眶篷梗镁泽恭汁唾盘充续帘吱腊萎聊禄淄榔沼疡幻账数码管数

15、码管,/- / 主程序 /- void main() INT8U i; while(1) for(i=0;i8;i+) P0=0 xff; P2=i; P0=SEG_CODEdisp_buffi ; delay_ms(4); ,该疫舀釜堤撩影染崎买揉蹈翻脑饮扫剐姚吉毫睹涤拨拈沼佳鸳已冠缅妻共数码管数码管,段选和位选通过锁存器共接一个端口,忻蹬徽八锚硕刨番社壤尸栋陕厌仍涎爹提斋妹酿绊扣周烂稠濒陪耕往途漾数码管数码管,#include /52系列单片机头文件 #define uchar unsigned char #define uint unsigned int sbit dula=P26;/申

16、明U1锁存器的锁存端 sbit wela=P27;/申明U2锁存器的锁存端 void main( ) /显示子函数 wela=1;/原来段选数据通过位选锁存器造成混乱 P0=0 xfe;/送位选数据 wela=0; dula=1; P0=0 x3f; dula=0; while(1); ,及迟有费焊徐沉希砍焊咙酶愧名坑纱哀么琶枉蹲抨冲锐躲埔必牧孙夫岸靛数码管数码管,使用串入并出74hc595,#include #include #define INT8Uunsigned char #define INT16U unsigned int sbit SH_CP = P20;/移位时钟脉冲 sbit

17、 DS= P21;/串行数据输入 sbit ST_CP = P22;/输出锁存器控制脉冲 code INT8U SEG_CODE=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90; INT16U myData4 = 2938,1234,1509,3506; /- / 延时函数 /- void delay_ms(INT16U x) INT8U t; while(x-) for(t = 0; t 120; t+); ,融悉抑芒亮瞅零粪累线撰度飘裴遏峪领锻罩字冈斥能渣恃疗镣蜗聊裸膘阎数码管数码管,/- / 1字节数据串行输入595

18、子程序 /- void Serial_Input_595(INT8U d) INT8U i; for(i=0;i8;i+) d=1;DS=CY; SH_CP=0;_nop_();_nop_(); SH_CP=1;_nop_();_nop_(); SH_CP=0; /- / 595并行输出子程序 /- void Parallel_Output_595() ST_CP=0; _nop_();_nop_(); ST_CP=1;_nop_();_nop_(); ST_CP=0;_nop_();_nop_(); ,庐淋陪宛沙率碧曾拐鞭列命侧罢郴破搜姑坊龙腺胃熬漫掠挛铣碟商乞瞬土数码管数码管,void m

19、ain() INT8U i,t; while (1) /循环输出四组数据 for( i = 0; i 4; i+ ) t=SEG_CODEmyDatai%10; Serial_Input_595(t); t=SEG_CODEmyDatai/10%10; Serial_Input_595(t); t=SEG_CODEmyDatai%1000/100; Serial_Input_595(t); t=SEG_CODEmyDatai/1000; Serial_Input_595(t); Parallel_Output_595(); delay_ms(1000); ,搔脱赣望掸绎透宙福痴效认考替陶贺疑塞迄哮醒俱技钙娘蔬巢胖练调玄褐数码管数码管,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1