首页 数码管显示实验

数码管显示实验

举报
开通vip

数码管显示实验数码管显示实验 一、实验内容 1、 选用一位数码管,编送不同码字,显示静态数据; 2、 轮流选择不同位数码管,编送不同码字,并做视觉残留,实现动态显示。 二、实验目的 1、了解七段数码显示数字的原理。 2、掌握四个LED动态显示,即一位一位地轮流点亮显示器各个位(扫描)。 三、实验原理 七段LED显示器有共阳极和共阴极两种,共阴极LED显示器是发光二极管的阴极连在一起,通常此公共阴极接地;共阳极LED显示器是发光二极管的阳极连在一起,公共阳极接正电压。通过LED显示器中二极管的亮灭,则显示不同的字符或数字。 数...

数码管显示实验
数码管显示实验 一、实验内容 1、 选用一位数码管,编送不同码字,显示静态数据; 2、 轮流选择不同位数码管,编送不同码字,并做视觉残留,实现动态显示。 二、实验目的 1、了解七段数码显示数字的原理。 2、掌握四个LED动态显示,即一位一位地轮流点亮显示器各个位(扫描)。 三、实验原理 七段LED显示器有共阳极和共阴极两种,共阴极LED显示器是发光二极管的阴极连在一起,通常此公共阴极接地;共阳极LED显示器是发光二极管的阳极连在一起,公共阳极接正电压。通过LED显示器中二极管的亮灭,则显示不同的字符或数字。 数码管外形图如下, 共阴极显示如“HELLO”的数据代码如下。 D7 D6 D5 D4 D3 D2 D1 D0 显示 数值代码 h g f e d c b a 0 1 1 1 0 1 1 0 H 76H 0 1 1 1 1 0 0 1 E 79H 0 0 1 1 1 0 0 0 L 38H 0 0 1 1 1 0 0 0 L 38H 0 0 1 1 1 1 1 1 O 3FH 0 1 0 0 0 0 0 0 - 40H                       共阴极发光二极管内部结构图 (可参考学习板89C52学习板说明书做补充说明 ) 四、实验电路 (见学习板说明书) 五、连线方法 (见学习板说明书) 五、参考程序 #include #define uint unsigned int #define uchar unsigned char sbit wei1=P2^0; //第一位数码管位选 uchar num; uchar code table[]={0xC0,0xF9,0xA4,0xB0, 0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83, 0xC6,0xA1,0x86,0x8E}; void delay(uint z); void main() { while(1) { for(num=0;num<16;num++) { wei1=0; P0=table[num]; delay(1000); } } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } 程序二、 /*************************************************************** 功能:实现4位数码管显示"2009"这四个数字 ***************************************************************/ #include "reg52.h" #define uchar unsigned char sbit wei1=P2^0; sbit wei2=P2^1; sbit wei3=P2^2; sbit wei4=P2^3; uchar code table[]={0xC0,0xF9,0xA4,0xB0, 0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83, 0xC6,0xA1,0x86,0x8E}; //函数声明 void led_display(unsigned char *temp ); void Delay_xuS(unsigned int x); /*------------------------------------------------- 主程序 -------------------------------------------------*/ void main() { uchar temp[4]={2,0,0,9}; while(1) { led_display(temp); } } /*------------------------------------------------- 功能100uS延时子程序 -------------------------------------------------*/ void Delay_xuS(unsigned int x) { unsigned int i,j; for( i =0;i < x;i++ ) { for( j =0;j<50;j++ ); } } /*------------------------------------------------- 功能:数码管显示子程序 -------------------------------------------------*/ void led_display(unsigned char *temp ) { wei1=0; //点亮第一个数码管 P0 = table[temp[0]]; Delay_xuS(5); wei1=1; wei2=0; //点亮第二个数码管 P0 = table[temp[1]]; Delay_xuS(5); wei2=1; wei3=0; //点亮第三个数码管 P0 = table[temp[2]]; Delay_xuS(5); wei3=1; wei4=0; //点亮第四个数码管 P0 = table[temp[3]]; Delay_xuS(5); wei4=1; } 程序三、显示字母ABCD #include //包含头文件 #define shuma P0 //定义数码管数据位 sbit LED_0=P2^0; //定义4个控制脚 sbit LED_1=P2^1; sbit LED_2=P2^2; sbit LED_3=P2^3; void delay(unsigned int x); //声明延时函数 void display(unsigned char d1,unsigned char d2,unsigned char d3,unsigned char d4); //声明显示函数 /*=====0-9=====A-G=====*/ unsigned char a[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //共阳极数码管的段码0 1 2 3 4 5 6 7 8 9 A B C D E F void main() //主函数开始 { while(1) { display(10,11,12,13); //在循环中调用显示函数 } } void delay(unsigned int x) //延时函数,有效效果为数码管不闪烁 { unsigned int i; for(i=0;i
本文档为【数码管显示实验】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_212655
暂无简介~
格式:doc
大小:32KB
软件:Word
页数:0
分类:互联网
上传时间:2019-08-09
浏览量:5