TX1C单片机例程分享1

         实现功能:天翔1c单片机用定时器1以间隔500MS在数码管上依次显示0、1、2、3….C、D、E、F,重复,6位数码管同时显示。 

主要涉及知识:

1、数码管动态扫描

2、定时器的配置

// written by WWD 2021/12/3
//天翔1c单片机用定时器1以间隔500MS在数码管上依次显示0、1、2、3….C、D、E、F,重复,6位数码管同时显示。
// 修改指南
/*
 首先删除所有注释
 变量;num\numt0 可以更换名称
 1、将init()函数直接拆到主函数中去、将display函数拆到while循环中去
 2、各个函数的名字都可以修改,但是调用时要注意对应
 3、欢迎关注CSDN博客:孤独的MOS管

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

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

 void init()//初始化函数
  {
  TMOD=0x11;
  TH1=(65536-45872)/256;
  TL1=(65536-45872)%256;
  EA=1;
  ET1=1;
  TR1=1;
  }

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

}//亮 5ms
   void main()//主函数
 {

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

 wela=1;
  P0=0xc0;//选中六位数码管
 wela=0; 
 while(1)
 {
 display(num);
 }
 }



   void T1_time() interrupt 3//
  {
  TH0=(65536-45872)/256;
  TL0=(65536-45872)%256;
  numt0++;
  if (numt0==10) //时间基准值 0.5s
  {
  numt0=0;
  num++;
  }
  if(num==16)
   num=0;
display(num);
  }

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值