找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1274|回复: 0
打印 上一主题 下一主题
收起左侧

1位4英寸显示模块测试源程序

[复制链接]
跳转到指定楼层
楼主
ID:325774 发表于 2018-5-9 10:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数码管的51例程,大家想要的拿走

单片机源程序如下:
  1. /*------------------------------------------------------------------------------------
  2. * 项目名称:

  3.      1位74HC595数码管显示模块测试程序

  4. * 功能描述:

  5.          1、动态显示各个数字

  6. * 版权信息:

  7.      (c) 飞翼电子, 2014.

  8. * 历史版本:
  9.          
  10.      2014-11-1:
  11.        - 初始版本 V1.0.0;

  12. * 配置说明:

  13.      - 编译前,请根据硬件连接配置MCU与模块的通讯接口
  14. -------------------------------------------------------------------------------------*/
  15. /************************包含头文件***************************************************/

  16. #include<reg52.h>
  17. #include "display.h"
  18. #include "74hc595.h"


  19. #define ARRLEN 8                   //定义数组长度常量
  20. /**************************全局数组***************************************************/

  21. extern unsigned char code Number_arr[10];                //引用在Display.c文件中定义的数组
  22. extern unsigned char code Seg_test[8];                        //引用在Display.c文件中定义的数组

  23. /*************************************************************************************
  24. *函数名:Delay(unsigned char time)
  25. *功  能:延时函数
  26. **************************************************************************************/
  27. void Delay(unsigned char time)
  28. {
  29.         int i,j,k;
  30.         for(i=0;i<time;i++)
  31.                 for(j=0;j<50;j++)
  32.                         for(k=0;k<90;k++)
  33.                         {
  34.                                 ;
  35.                         }
  36. }
  37. /*************************************************************************************
  38. *函数名:DelayMs(unsigned char time)
  39. *功  能:延时函数
  40. **************************************************************************************/
  41. void DelayMs(unsigned char time)
  42. {
  43.         int i,j;
  44.         for(i=0;i<time;i++)
  45.                 for(j=0;j<25;j++)
  46.                 {
  47.                         ;
  48.                 }
  49. }
  50. /************************主程序*******************************************************/
  51. void main()
  52. {
  53.         unsigned char i,j;
  54.         unsigned char dis[ARRLEN]={0,0,0,0,0,0,0,0};                          //要显示的数组
  55.         unsigned char disDecode[ARRLEN]={0};                                          //保存译码后的数组
  56.        
  57.         DisplayInterfaceInit();                                                                  //初始化接口
  58.        
  59.         //上电清屏
  60.         for(i=0;i<ARRLEN;i++)                                                                          //把要显示的数组赋值为0
  61.         {                                                                                                                  //为下一步清屏用
  62.                 disDecode[i]=0x00;
  63.         }
  64.         DisplayOneArray(disDecode,ARRLEN);                                                  //上电清屏作用
  65.                
  66.         //打开显示
  67.         DisplayOn();       
  68.         Delay(30);

  69.         //点亮所有位的所有段
  70.         for(i=0;i<ARRLEN;i++)                                                                          //把要显示的数组赋值为0xFF
  71.         {                                                                                                                  
  72.                 disDecode[i]=0xFF;
  73.         }
  74.         DisplayOneArray(disDecode,ARRLEN);                                                  //让所有段都亮
  75.         Delay(50);

  76.         //循环显示
  77.         while(1)
  78.         {
  79.                 //循环单独显示每一段
  80.                 for(i=0;i<8;i++)                                                                        //控制显示每一段
  81.                 {
  82.                         for(j=0;j<ARRLEN;j++)
  83.                         {
  84.                                 disDecode[j]=Seg_test[i];                                          //对i译码为每一段,赋值显示数组
  85.                         }
  86.                         DisplayOneArray(disDecode,ARRLEN);                                  //赋值完成后开始显示
  87.                         Delay(10);                                                                                  //显示延时
  88.                 }
  89.                
  90.                 //循环显示0-9数字       
  91.                 for(i=0;i<10;i++)                                                                        //控制从0显示到数字9
  92.                 {
  93.                         for(j=0;j<ARRLEN;j++)
  94.                         {
  95.                                 disDecode[j]=Number_arr[i];                                          //对i进行译码,赋值显示数组
  96. ……………………

  97. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
03-例程.zip (66.66 KB, 下载次数: 4)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表