论坛» 嵌入式开发» MCU

STC51单片机实例之05数码管的各种显示方式(上)

高工
2014-03-06 23:38 1楼
/*************************一位共阴数码管静态显示************************************ * 文件名 : 数码管显示.c * 描述 : 该程序为数码管静态显示程序。 程序实现了最右边数码管的显示一个5,大家可以在程序中修改相应的值而在数码管上显示相应的数字。 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int //数码管的段码编码 uchar table[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //下一行的数组可以显示数值外,还可以显示数码管的点 uchar table_d[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1}; /******************************************************************** * 名称 : Main() * 功能 : 主函数 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void main() { uchar i = 0; P2 = 7; //通过74HC138来控制数码管的位选,P2=0或1,2,3,4,5,6,7点亮相应的数码管 P0 = table[5]; //显示5,大家可以修改里面的数据。 while(1) { } }

/**************************一位数码管静态显示(带小数点)************************************* * 文件名 : 数码管显示.c * 描述 : 该程序为数码管静态显示程序。 程序实现了最右边数码管的显示一个5,大家可以在程序中修改相应的值而在数码管上显示相应的数字。 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int //数码管的段码编码 uchar table[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //下一行的数组可以显示数值外,还可以显示数码管的点 uchar table_d[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1}; /******************************************************************** * 名称 : Main() * 功能 : 主函数 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void main() { uchar i = 0; P2 = 7; //数码管的最后一位显示 P0 = table_d[5]; //显示5,大家可以修改里面的数据。 while(1) { } }

/******************************************************************** * 描述 : 用单个数码管来模拟流水灯。 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int //数码管的段码编码 uchar table[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //下一行的数组可以显示数值外,还可以显示数码管的点 uchar table_d[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1}; /******************************************************************** * 名称 : Delay() * 功能 : 延时,延时时间为 10ms * del * 输入 : del * 输出 : 无 ***********************************************************************/ void Delay(uint del) { uint i,j; for(i=0; i
        

/******************************************************************** * 文件名 : 动态显示.c * 描述 : 8位数码管低两位交替显示 “1,2” 这里是做一个动态的演示实验。 最开始,两个数码管闪烁间隔时间为150豪秒,每闪烁一次, 间隔时间减少2毫秒,当间隔时间小到一定程度的时候, 因为人的视觉暂留现象,就不会发现数码管在闪烁了。 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /******************************************************************** * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 ***********************************************************************/ void Delay(uint i) { uint x,j; for(j=0;j
        

/******************************************************************** * 文件名 : 动态显示.c * 描述 : 8位数码管低两位分别显示 1,2 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar code LED_W[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; /******************************************************************** * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 ***********************************************************************/ void Delay(uint i) { uchar x,j; for(j=0;j
        

/******************************************************************** * 文件名 : 动态显示.c * 描述 : 八位数码管依次显示0,1,2,3,4,5,6,7 这里是做一个动态的演示实验。 最开始,两个数码管闪烁间隔时间为50豪秒,每闪烁一次, 间隔时间减少1毫秒,当间隔时间小到一定程度的时候, 因为人的视觉暂留现象,就不会发现数码管在闪烁了。 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /******************************************************************** * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 ***********************************************************************/ void Delay(uint i) { uint x,j; for(j=0;j=3) //当大于3毫秒的时,执行括号中的语句 { j-=1; //延时时间自减1毫秒 } } }

/******************************************************************** * 文件名 : 动态显示.c * 描述 : 八位数码管依次显示0,1,2,3,4,5,6,7 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /******************************************************************** * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 ***********************************************************************/ void Delay(uint i) { uchar x,j; for(j=0;j
        

/******************************************************************** * 文件名 : 数码管滚动显示.c * 描述 : 八个数码管显示0--7,每个0.5秒钟,数据从左往右移动一位 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /******************************************************************** * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 ***********************************************************************/ void Delay(uint i) { uint x,j; for(j=0;j
        

/******************************************************************** * 文件名 : 数码管滚动显示.c * 描述 : 八个数码管显示0--7,每个0.64秒钟,数据从左往右移动一位 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar code LED_W[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; uint LED_temp = 0; /******************************************************************** * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 ***********************************************************************/ void Delay(uint i) { uchar x,j; for(j=0;j
        

/******************************************************************** * 文件名 : 数码管滚动显示.c * 描述 : 八个数码管显示0--7,每个0.64秒钟,数据从左往右移动一位 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uint LED_temp = 0; /******************************************************************** * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 ***********************************************************************/ void Delay(uint i) { uchar x,j; for(j=0;j
        

菜鸟
2017-10-24 08:08 2楼

感谢楼主、幸苦了。

菜鸟
2017-11-11 09:01 3楼

相看01--04的例程

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]