找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机驱动5个LED静态显示代码

[复制链接]
跳转到指定楼层
楼主
新人初学写的程序。


  1.         #include <reg51.h>
  2.                         #define uchar unsigned char
  3.                         #define uint unsigned int
  4.                         #include<intrins.h>
  5.                         uchar code tab[] = {0x3F,0x06,0x5B,0x4f,
  6.                                0x66,0x6D,0x7f,0x07,0x7F,
  7.                                                    0x6F,0x77,0x7C,0x39,
  8.                                                    0x5E,0x79,0x71};
  9.                         uchar code disp1[] = {1,2,3,4,5};
  10.                         uchar code disp2[] = {8,9,0xc,5,1};
  11.                         uchar code disp3[] = {0,0,0,0,0};
  12.                         sbit dout = P2^0;
  13.                         sbit clk =        P2^1;
  14.                         void delayms(uint x);
  15.                         void sendonebety(uchar temp);
  16.                         void main(void)
  17.                         {                                 
  18.                                 uchar i;
  19.                                 uchar temp;
  20.                                 IT0 =1;
  21.                                 EX0 =1;
  22.                                 EA =1;
  23.                                 while(1)
  24.                                 {
  25.                                 for( i = 0; i < 5;i ++)
  26.                                 {
  27.                                         temp = tab[disp1[i]];
  28.                                         sendonebety(temp);
  29.                                 }
  30.                                 delayms(500);
  31.                                         for( i = 0; i < 5;i ++)
  32.                                 {
  33.                                         temp = tab[disp2[i]];
  34.                                         sendonebety(temp);
  35.                                         }
  36.                                         delayms(500);
  37.                                 }
  38.                         }

  39.                                 void sendonebety(uchar temp)
  40.                                 {
  41.                                         uchar j;
  42.                                    for(j = 0; j < 8;j ++)
  43.                                         {
  44.                                                 dout = 0;
  45.                                                 if(temp & 0x80)
  46.                                                 dout = 1;
  47.                                                 clk = 1;
  48.                                                 _nop_();
  49.                                                 clk = 0;
  50.                                                 _nop_();
  51.                                         temp = temp << 1;
  52.                                              }
  53.                                         }
  54.                                         void delayms(uint x)
  55.                                         {
  56.                                                 uchar j;
  57.                                                 while(--x)
  58.                                                 {
  59.                                                         for(j = 0;j < 120;j ++);
  60.                                                 }
  61.                                         }
  62.                                         void int00(void) interrupt 0
  63.                                         {
  64.                                                  uchar i,j;
  65.                                                  uchar temp;
  66.                                                  for( i = 0; i < 5;i ++)
  67.                                                  {
  68.                                                          for( i = 0; i < 5;i ++)
  69.                                                    {
  70.                                                          temp = tab[disp3[i]];
  71.                                                         sendonebety(temp);
  72.                                                         }
  73.                                                   delayms(1000);
  74.                                                         for( i = 0; i < 5;i ++)
  75.                                                         {
  76.                                                            temp = tab[disp3[i]];
  77.                                                                 sendonebety(temp);
  78.                                                         }

  79.                                                  }
  80.                                                  delayms(2000);
  81.                                         }
  82.                                           

复制代码


全部资料下载地址:
实验五代码.doc (20 KB, 下载次数: 6)

评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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