首页 / 单片机 / 51单片机 数码管的显示与译码器
51单片机 数码管的显示与译码器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了51单片机 数码管的显示与译码器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2936字,纯文字阅读大概需要5分钟。
内容图文
![51单片机 数码管的显示与译码器](/upload/InfoBanner/zyjiaocheng/1193/79af32f752a64343a6cadbf9ec12512e.jpg)
共阳极数组0~9:display[]={0xC0,0xF9,0xA4,0xB0,0x91,0xA2,0x82,0xF8,0x80,0x90}
共阳极数组A~F:display[]={0x88,0x83,0xA6,0xC1,0x86,0x8E}
共阴极数组0~9:display[]={0x3F,0x06,0x5B,0x4F,0x6E,0x6D,0x7D,0x07,0x7F,0x6F}
共阴极数组A~F:display[]={0x77,0x7C,0x59,0x3E,0x79,0x71}
共阴、两组四位一体数码管,位选接74LS138译码器,输入(位选)CBA接P20,P21,P22。段选通过74573后接P1口。
若不使用译码器,可直接将位选段接IO口,赋值改变。
1 /* ****************************************************************************** 2 * 实 验 名 : 动态数码管显示 3 * 实验说明 : 8位数码管依次显示0~7 4 * 作 者 : L2 5 * 时 间 : 2016-08-02 6 7 ****************************************************************************** */ 8 #include<reg51.h> 910#define GPIO_DIG P1 //Digitron 数码管11 sbit LSA= P2^0; 12 sbit LSB= P2^1; 13 sbit LSC= P2^2; 1415 unsigned char code DIG_CODE[10]={ 160x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9的显示码17void DigDisplay(); 1819void main(void) 20{ 21while(1) 22 DigDisplay(); 23} 242526void DigDisplay() 27{ 28 unsigned char i; 29 unsigned int j; 30for(i=0;i<8;i++) 31 { 32switch(i) //位选,选择点亮的数码管,33 { 34case(0): 35 LSA=0;LSB=0;LSC=0; break;//显示第0位36case(1): 37 LSA=1;LSB=0;LSC=0; break;//显示第1位38case(2): 39 LSA=0;LSB=1;LSC=0; break;//显示第2位40case(3): 41 LSA=1;LSB=1;LSC=0; break;//显示第3位42case(4): 43 LSA=0;LSB=0;LSC=1; break;//显示第4位44case(5): 45 LSA=1;LSB=0;LSC=1; break;//显示第5位46case(6): 47 LSA=0;LSB=1;LSC=1; break;//显示第6位48case(7): 49 LSA=1;LSB=1;LSC=1; break;//显示第7位 50 } 51 GPIO_DIG=DIG_CODE[i];//发送段码52 j=10000; //扫描间隔时间设定,若减少j,可观察到稳定显示的0~7 (扫描速度太快,人眼识别不了)53while(j--); 54 GPIO_DIG=0x00;//消隐55 } 56 }
1 /* ****************************************************************************** 2 * 实 验 名 : 数码管秒表显示 3 * 实验说明 : 0~59依次显示 4 * 作 者 : L2 5 * 时 间 : 2016-08-03 6 7 ****************************************************************************** */ 8 #include<reg51.h> 910#define GPIO_DIG P1 //Digitron 数码管11#define uchar unsigned char 12#define uint unsigned int 13 sbit LSA= P2^0; 14 sbit LSB= P2^1; 15 sbit LSC= P2^2; 1617 uchar shi,ge,num1=0,num=0; 18 uchar code DIG_CODE[10]={ 190x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9的显示码20void Delay5ms(); 21void DigDisplay(uchar shi,uchar ge); 222324void main() 25 { //200微秒@20MHz26 TMOD = 0x01; //设置定时器模式27 TL0 = 0xA8; //设置定时初值28 TH0 = 0xFD; //设置定时初值29 EA = 1; // 开总中断30 TF0 = 0; //清除TF0标志31 ET0 = 1; // 开定时器0中断32 TR0 = 1; //定时器0开始计时33while(1) 34 { 35 DigDisplay(shi,ge); 36 } 37} 3839void DigDisplay(uchar shi,uchar ge) 40{ 41 GPIO_DIG=DIG_CODE[shi]; //段选42 LSA=0;LSB=0;LSC=0; 43 Delay5ms(); 44 GPIO_DIG=DIG_CODE[ge]; 45 LSA=1;LSB=0;LSC=0; 46 Delay5ms(); 47} 4849void Timer0Init(void) interrupt 150{ 51 TL0 = 0xA8; //重装初52 TH0 = 0xFD; 53 num1++; 54if(num1==200) //5次200ms即为1s到55 { 56 num1=0; 57 num++; 58if(num==60) 59 num=0; 60 shi=num/10; 61 ge = num%10; 62 } 63} 646566void Delay5ms() //@12.000MHz67{ 68 unsigned char i, j; 6970 i = 59; 71 j = 90; 72do73 { 74while (--j); 75 } while (--i); 76 }
原文:http://www.cnblogs.com/l20902/p/5732477.html
内容总结
以上是互联网集市为您收集整理的51单片机 数码管的显示与译码器全部内容,希望文章能够帮你解决51单片机 数码管的显示与译码器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。