找回密码
 立即注册

QQ登录

只需一步,快速开始

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

8只数码管显示13145-020 单片机源代码

[复制链接]
跳转到指定楼层
楼主
ID:511857 发表于 2019-9-30 11:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. /***************代码注释***************/
  2. /*这个代码的实现需要74H138模块的控制才能实现,
  3. 关于模块的资料如下:
  4. 74HC138D 是一种三通道输入、八通道输出译码器,主要应用于消费类电子产
  5. 品。
  6. 主要特性
  7. ①采用 CMOS 工艺
  8. ②低功耗
  9. ③工作电压:3.0V-5.0V
  10. ④封装形式:SOP16
  11. 管脚功能定义说明
  12. 从上面的管脚功能定义说明及真值表可以知道该芯片使用方法非常简单,给
  13. E1、E2 使能管脚低电平,E3 管脚为高电平,至于哪个管脚输出有效电平(低电
  14. 平),要看 A0,A1,A2 输入管脚的电平状态。如果 A0,A1,A2 都为低电平,则
  15. Y0 输出有效电平(低电平),其他管脚均输出高电平。如果 A0 为高电平,A1,
  16. A2 都为低电平,则 Y1 输出有效电平(低电平),其他管脚均输出高电平。其他
  17. 几种输出大家可以对照真值表查看。如果 E1、E2 使能管脚任意一个为高电平或
  18. 者 E3 为低电平,不论输入是什么,输出都为高电平。
  19. 这里给大家总结一个方法:A0、A1、A2 输入就相当于 3 位 2 进制数,A0 是
  20. 低位,A1 是次高位,A2 是高位。而 Y0-Y7 具体哪一个输出有效电平,就看输入
  21. 二进制对应的十进制数值。比如输入是 101(A2,A1,A0),其对应的十进制数
  22. 是 5,所以 Y5 输出有效电平(低电平)。
  23. ***************************/

  24. #include "reg52.h" //此文件中定义了单片机的一些特殊功能
  25. #define uint unsigned int
  26. #define uchar unsigned char
  27. sbit LSA=P2^2;
  28. sbit LSB=P2^3;
  29. sbit LSC=P2^4;
  30. uchar code smgduan[17]={0x06,0x4f,0x06,0x66,0x40,0x6d,0x5b,0x3f,
  31. 0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e};// 显 示0~F 的值
  32. void delay(uint i)
  33.     {
  34.     while(i--);     
  35.     }

  36. void DigDisplay()
  37. {
  38. uchar i;
  39. for(i=0;i<8;i++)
  40.     {
  41.     switch(i) //位选,选择点亮的数码管,
  42.         {
  43.         case(0):
  44.         LSA=0;LSB=0;LSC=0; break;//显示第 0 位
  45.         case(1):
  46.         LSA=1;LSB=0;LSC=0; break;//显示第 1 位
  47.         case(2):
  48.         LSA=0;LSB=1;LSC=0; break;//显示第 2 位
  49.         case(3):
  50.         LSA=1;LSB=1;LSC=0; break;//显示第 3 位
  51.         case(4):
  52.         LSA=0;LSB=0;LSC=1; break;//显示第 4 位
  53.         case(5):
  54.         LSA=1;LSB=0;LSC=1; break;//显示第 5 位
  55.         case(6):
  56.         LSA=0;LSB=1;LSC=1; break;//显示第 6 位
  57.         case(7):
  58.         LSA=1;LSB=1;LSC=1; break;//显示第 7 位
  59.         }
  60.     P0=smgduan[i];//发送段码
  61.     delay(100); //间隔一段时间扫描
  62.     P0=0x00;//消隐
  63.     }
  64. }

  65. void main()
  66. {
  67. while(1)
  68.     {
  69.     DigDisplay(); //数码管显示函数
  70.     }
  71. }
复制代码

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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