找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STC单片机直接驱动数码管程序

  [复制链接]
跳转到指定楼层
楼主
ID:242447 发表于 2017-11-14 14:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STC单片机不用驱动芯片直接驱动数码管程序
所有资料51hei提供下载:
led.doc (1.94 KB, 下载次数: 101)

单片机源程序如下:
  1.          
  2. #include "STC15F2K60S2.H"


  3. #define uint unsigned int
  4. #define uchar unsigned char

  5. //P0脚是输出段码,单片机驱动电流小,要加上拉电阻
  6. sbit LED_D1 = P1^6;//第1位数码管
  7. sbit LED_D2 = P1^5;//第2位数码管
  8. sbit LED_D3 = P1^4;//第3位数码管
  9. sbit LED_D4 = P1^7;//第4位数码管
  10. sbit LED_D5 = P1^3;//第5位数码管
  11. sbit LED_D6 = P1^2;//第6位数码管
  12. sbit LED_D7 = P1^1;//第7位数码管
  13. sbit LED_D8 = P1^0;//第8位数码管
  14.       
  15.                                   // 0    1   2    3   4   5   6    7   8   9   -
  16. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};  //共阴数码管字段码
  17. uchar D_word[8];//各个位上的数字的缓存




  18. void Delay_1ms(uint i)                                 //延时函数
  19. {  uchar x,j;
  20.    for(j=0;j<i;j++)
  21.     for(x=0;x<=10;x++)
  22.          ;  
  23. }


  24. void display(unsigned long display_temp)     //数码管显示程序
  25. {
  26.     uchar i=0;
  27.     for(i=0;i<8;i++)            //这块LCD可以显示4位数,逐位拆分要转换的数字
  28.       {
  29.         D_word[i] = display_temp%10;     //个位取模求余数,即得个位上的数字
  30.         display_temp /= 10;              //要转换的数字除10求整数,即是整体向右移一位,下次求余即得十位上的数字,如此类推
  31.       }
  32.     /***************第一至四位数码管*******************************/
  33.     P0 = table[D_word[7]];
  34.          LED_D1= 0;   
  35.     Delay_1ms(2);
  36.          LED_D1=1;

  37.     P0 = table[D_word[6]];
  38.          LED_D2= 0;  
  39.     Delay_1ms(2);
  40.          LED_D2=1;

  41.     P0 = table[D_word[5]];
  42.          LED_D3= 0;  
  43.     Delay_1ms(2);
  44.          LED_D3=1;

  45.     P0 = table[D_word[4]];
  46.          LED_D4= 0;   
  47.     Delay_1ms(2);
  48.          LED_D4=1;
  49.     /****************第五至八位数码管**********************************/
  50.     P0 = table[D_word[3]];
  51.          LED_D5 = 0;  
  52.     Delay_1ms(2);
  53.          LED_D5=1;

  54.     P0 = table[D_word[2]];
  55.          LED_D6 = 0;  
  56.     Delay_1ms(2);
  57.          LED_D6=1;

  58.     P0 = table[D_word[1]];
  59.          LED_D7 = 0;  
  60.     Delay_1ms(2);
  61.          LED_D7=1;

  62.     P0 = table[D_word[0]];
  63.          LED_D8 = 0;  
  64.     Delay_1ms(2);
  65.          LED_D8=1;
  66. ……………………

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




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

使用道具 举报

沙发
ID:318923 发表于 2018-7-26 13:42 | 只看该作者
哎呀,下不了啊
回复

使用道具 举报

板凳
ID:284048 发表于 2018-8-17 21:30 | 只看该作者
感谢提供代码测试!
回复

使用道具 举报

地板
ID:385657 发表于 2018-8-18 00:04 | 只看该作者
学习了,学习了
回复

使用道具 举报

5#
ID:386381 发表于 2018-8-18 07:50 来自手机 | 只看该作者
谢谢分享学习了
回复

使用道具 举报

6#
ID:480828 发表于 2019-9-5 11:38 | 只看该作者
看看可以用不
回复

使用道具 举报

7#
ID:372579 发表于 2020-3-1 13:24 | 只看该作者
谢谢楼主分享的代码
回复

使用道具 举报

8#
ID:15745 发表于 2022-8-4 16:04 | 只看该作者
学习学习,先下载测试看看
回复

使用道具 举报

9#
ID:15745 发表于 2022-8-4 16:04 | 只看该作者
学习学习,先下载测试看看
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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