TX1C单片机例程分享2

         天翔1c单片机用delay函数控制流水灯循环,定时时间自拟;用定时器0控制数码管从1到F循环,重复,六位数码管同时显示。

主要设计知识:

1、数码管动态扫描

2、定时器配置

3、IO口输入输出

// written by WWD 2021/12/3
//天翔1c单片机用delay函数控制流水灯循环,定时时间自拟;用定时器0控制数码管从1到F循环,重复,六位数码管同时显示。
// 修改指南
/*
 首先删除所有注释
 变量;num\numt0\ i,j,k可以更换名称
 1、将init()函数直接拆到主函数中去、将display函数拆到while循环中去
 2、各个函数的名字都可以修改,但是调用时要注意对应
 3、delayms()的传入参数x可以自定
 4、欢迎关注CSDN博客:孤独的MOS管

*/
#include<reg51.h>
#include<intrins.h>
 #define uchar unsigned char
 #define uint unsigned int

sbit dula=P2^6; //锁存器控制端定义
sbit wela=P2^7;
 uchar num=0,numt0=0,i,j,k;
 uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
     0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//数码管数表

 void init()//初始化函数
  {
  TMOD=0x11;
  TH0=0x4c00;
  TL0=0x4c00;
  EA=1;
  ET0=1;
  TR0=1;
  }

 void delayms(int x)//延时函数
  {
  for(i=x;i>0;i--)
  for(j=110;j>0;j--);
  }

void display(num) //显示函数
{ 
 dula=1; 
 P0=table[num]; //显示数字
 dula=0;  
}
   void main()//主函数
 {

 init();//初始化定时器1

 wela=1;
  P0=0xc0;//选中六位数码管
 wela=0; 
 while(1)
 {
 for(k=0;k<8;k++)
  {
    P1=_crol_(0xfe,k);
delayms(500);

    }
 }
 }



   void T0_time() interrupt 1//
  {
  TH0=0x4c00;
  TL0=0x4c00;
  numt0++;
  if (numt0==10) //时间基准值 0.5s
  {
  numt0=0;
  num++;
  }
  if(num==16)
   num=0;
display(num);
  }

        各位同学作业切记不要交雷同代码,多少动手改点,当然能看懂并且自己写最好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值