数码管的51例程,大家想要的拿走
单片机源程序如下:
- /*------------------------------------------------------------------------------------
- * 项目名称:
- 1位74HC595数码管显示模块测试程序
- * 功能描述:
- 1、动态显示各个数字
- * 版权信息:
- (c) 飞翼电子, 2014.
- * 历史版本:
-
- 2014-11-1:
- - 初始版本 V1.0.0;
- * 配置说明:
- - 编译前,请根据硬件连接配置MCU与模块的通讯接口
- -------------------------------------------------------------------------------------*/
- /************************包含头文件***************************************************/
- #include<reg52.h>
- #include "display.h"
- #include "74hc595.h"
- #define ARRLEN 8 //定义数组长度常量
- /**************************全局数组***************************************************/
- extern unsigned char code Number_arr[10]; //引用在Display.c文件中定义的数组
- extern unsigned char code Seg_test[8]; //引用在Display.c文件中定义的数组
- /*************************************************************************************
- *函数名:Delay(unsigned char time)
- *功 能:延时函数
- **************************************************************************************/
- void Delay(unsigned char time)
- {
- int i,j,k;
- for(i=0;i<time;i++)
- for(j=0;j<50;j++)
- for(k=0;k<90;k++)
- {
- ;
- }
- }
- /*************************************************************************************
- *函数名:DelayMs(unsigned char time)
- *功 能:延时函数
- **************************************************************************************/
- void DelayMs(unsigned char time)
- {
- int i,j;
- for(i=0;i<time;i++)
- for(j=0;j<25;j++)
- {
- ;
- }
- }
- /************************主程序*******************************************************/
- void main()
- {
- unsigned char i,j;
- unsigned char dis[ARRLEN]={0,0,0,0,0,0,0,0}; //要显示的数组
- unsigned char disDecode[ARRLEN]={0}; //保存译码后的数组
-
- DisplayInterfaceInit(); //初始化接口
-
- //上电清屏
- for(i=0;i<ARRLEN;i++) //把要显示的数组赋值为0
- { //为下一步清屏用
- disDecode[i]=0x00;
- }
- DisplayOneArray(disDecode,ARRLEN); //上电清屏作用
-
- //打开显示
- DisplayOn();
- Delay(30);
- //点亮所有位的所有段
- for(i=0;i<ARRLEN;i++) //把要显示的数组赋值为0xFF
- {
- disDecode[i]=0xFF;
- }
- DisplayOneArray(disDecode,ARRLEN); //让所有段都亮
- Delay(50);
- //循环显示
- while(1)
- {
- //循环单独显示每一段
- for(i=0;i<8;i++) //控制显示每一段
- {
- for(j=0;j<ARRLEN;j++)
- {
- disDecode[j]=Seg_test[i]; //对i译码为每一段,赋值显示数组
- }
- DisplayOneArray(disDecode,ARRLEN); //赋值完成后开始显示
- Delay(10); //显示延时
- }
-
- //循环显示0-9数字
- for(i=0;i<10;i++) //控制从0显示到数字9
- {
- for(j=0;j<ARRLEN;j++)
- {
- disDecode[j]=Number_arr[i]; //对i进行译码,赋值显示数组
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
03-例程.zip
(66.66 KB, 下载次数: 4)
|