找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1158|回复: 0
收起左侧

实用的51单片机程序

[复制链接]
ID:406037 发表于 2018-10-7 10:12 | 显示全部楼层 |阅读模式
分享一个 拉幕式数码显示技术程序和仿真电路图源码:
#include <REGX51.H>

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,

                               0x66,0x6d,0x7d,0x07,

                               0x7f,0x6f,0x77,0x7c,

                               0x39,0x5e,0x79,0x71,0x00};


/*unsigned char code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};

*/
unsigned char dispbitcode[]={0xf8,0xf9,0xfa,0xfb,

                             0xfc,0xfd,0xfe,0xff};


unsigned char dispbuf[8]={16,16,16,16,16,16,16,16};

unsigned char dispbitcnt;

unsigned int t02scnt;

unsigned char t5mscnt;

unsigned char u;

unsigned char i;



void main(void)

{

  TMOD=0x02;

  TH0=0x06;

  TL0=0x06;

  TR0=1;

  ET0=1;

  EA=1;

  while(1);

}



void t0(void) interrupt 1 using 0

{

  t5mscnt++;

  if(t5mscnt==4)

    {

      t5mscnt=0;

      P3=dispcode[dispbuf[dispbitcnt]];

      P1=dispbitcode[dispbitcnt];

      dispbitcnt++;

      if(dispbitcnt==8)

        {

          dispbitcnt=0;

        }

    }

  t02scnt++;

  if(t02scnt==1600)

    {

      t02scnt=0;

      u++;

      if(u==9)

        {

          u=0;

        }

      for(i=0;i<8;i++)

        {

          dispbuf[i]=16;

        }

      for(i=0;i<u;i++)

        {

          dispbuf[i]=i+1;

        }

    }

}


电路图

电路图
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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