datasheet

c51中断/定时寄存器的典型运用程序

2016-10-10来源: eefocus关键字:c51  中断  定时寄存器
c51中断/定时寄存器的典型运用程序 -  此生不換? - 此生不換?de博客

 

程序如下:

 

#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
0x76,0x79,0x38,0x3f,0};
uchar temp,t0,t1,bai,shi,ge,flag,flag1;
uint shu;
void init();
void display(uchar,uchar,uchar,uchar,uchar,uchar);
void delay(uint z)
{
 uint t1,y;
 for(t1=z;t1>0;t1--)
  for(y=110;y>0;y--);
}
void main()
{
 init();
 while(1)
 {
  if(flag1!=1)
   display(7,6,5,bai,shi,ge);
  else
   display(16,17,18,18,19,20); 
 }
}

void init()
{
 shu=432;
 temp=0xfe;
 P1=temp;
 TMOD=0x11;
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 TH1=(65536-50000)/256;
 TL1=(65536-50000)%256;
 EA=1;
 ET0=1;
 ET1=1;
 TR0=1;
 TR1=1;
}

void timer0() interrupt 1
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 t0++;
 if(flag!=1)
  {
  if(t0==10)
   {
    t0=1;
    temp=_crol_(temp,1);
    P1=temp;
   }
  }
 else
  {
   if(t0%4==0)
    P1=~P1;
   if(t0==60)
   {
    TR0=0;
    P1=0xff;
    flag1=1;
   }
  } 
}

void timer1() interrupt 3
{
 TH1=(65536-50000)/256;
 TL1=(65536-50000)%256;
 t1++;
 if(t1==2)
  {
   t1=0;
   shu--;
   bai=shu/100;
   shi=shu%100/10;
   ge=shu%10;
   if(shu==398)
    {
     TR0=0;
     TH0=(65536-50000)/256;
     TL0=(65536-50000)%256;
     TR0=1;
     flag=1;
     t0=0;
     P1=0xff;
     TR1=0;
    } 
  } 
}

void display(uchar aa,uchar bb,uchar cc,uchar ba,uchar sh,uchar g)
{
        dula=1;
  P0=table[aa];
  dula=0;
  P0=0xff;
  wela=1;
  P0=0xfe;
  wela=0;
  delay(1);

        dula=1;
  P0=table[bb];
  dula=0;
  P0=0xff;
  wela=1;
  P0=0xfd;
  wela=0;
  delay(1);

       dula=1;
  P0=table[cc];
  dula=0;
  P0=0xff;
  wela=1;
  P0=0xfb;
  wela=0;
  delay(1);
        dula=1;
  P0=table[ba];
  dula=0;
  P0=0xff;
  wela=1;
  P0=0xf7;
  wela=0;
  delay(1);

  dula=1;
  P0=table[sh];
  dula=0;
  P0=0xff;
  wela=1;
  P0=0xef;
  wela=0;
  delay(1);

  dula=1;
  P0=table[g];
  dula=0;
  P0=0xff;
  wela=1;
  P0=0xdf;
  wela=0;
  delay(1);
}

关键字:c51  中断  定时寄存器

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/article_2016101030289.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:解决STM32 J-FLASH不能读RAM 下载的问题
下一篇:STM32初学笔记1之RCC(上)

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

TÜV测试证实:大陆集团MK C1制动系统可减少混动汽车每百公里

线控混合制动系统相比,安装在中型标准插电式混合动力汽车中的MK C1线控电液制动系统可减少约5克/公里的二氧化碳排放量和约0.24升/百公里的油耗。这样可以有效地帮助中国汽车制造商满足企业平均燃料消耗量 (CAFC)的目标值,实现到2020年乘用车新车的消耗量达到 5 升/百公里和2025年 4 升/百公里的目标。”二氧化碳排放和燃料消耗的减少获得WLTP测试结果的证实全球统一轻型车辆排放测试规程( WLTP)是世界公认的用于确定车辆废气排放和燃料/电量消耗的测试规程。该测试是在TÜV专家的全程现场监督下,严格按照WLTP的标准在滚筒道路模拟机上进行。测试共三轮,在每一轮测试中,装有MK C1的车辆
发表于 2019-04-17
TÜV测试证实:大陆集团MK C1制动系统可减少混动汽车每百公里

C51中的内存单元与位地址

单片机中的RAM8个bit为一个单元,就是说每8位二进制数为一个存储单元,RAM共有256个这样的存储单元,前128个单元是一般的存储单元,后128个单元为特殊功能寄存器每一个存储单元就像一个房子一样,而这个房子里面的房间就表示各自的具体的位地址sfr P1 = 0x90;P1=0xff;其中0x90就是这个房子的所在位置,P1=0xff;就是在给这个房子的不同房间赋值其中P1就是地址,0xff就是内容。
发表于 2019-04-16

仙知自主研,助力3C制造业自动化升级

随着市场竞争加剧,3C电子产品不断向个性化、智能化、精细化方向发展,与此同时,品牌商对3C电子制造产业提出了更高的要求,需要更快的生产效率与更加精密的生产工艺来满足市场需求,市场需求倒逼产业自动化升级。3C电子产品涵盖电脑(Computer)、通讯(Communication)和消费性电子(Consumer Electronic),从上世纪90年代后期出现之后便呈现爆发式成长,迅速成为世界性的新兴科技产业,是目前发展最迅速、变动最频繁的一种产业。以3C产品中的手机行业为例,市场空间大,更新换代频繁,同时市场竞争十分激烈,对品牌商和生产制造的企业的要求也越来越高。处于生产制造环节的企业面临越来越多的困境:人工需求与招工难的矛盾不断
发表于 2019-04-15
仙知自主研,助力3C制造业自动化升级

写STM32 的I2c库函数

I2c协议: I2c是一种双向串行通讯标准,常用于嵌入式系统中。利用I2c总线可以利用有限的I/O接口来扩展多功能的外围设备。主要由SCL(时钟线)和SDA(数据线组成)。I2c总线上可以连接多个带有I2c接口的设备,每个设备都有自己唯一的地址。设备地址一般看该设备对应的手册。当总线空闲的时候SDA线和SCL线都为高电平,如果SCL处于高电平时SDL产生下降沿则认为起始位,如果SCL处于高电平SDA产生上升沿时则为停止位。主发送从接收:主要讲的是Stm32配置I2c协议成主发送从接收模式,我们之前看到的都是调用STM32的I2c的官方库函数来配置I2c,今天呢我们是自己配置寄存器来写一个I2c的库函数。第一步:开启时钟
发表于 2019-04-11
写STM32 的I2c库函数

技术文章—遵循统一标准:USB Type-C增加HDMI

HDMI 可选模式(Alt Mode)规范是全新的,因此专门为这类应用而设计的芯片仍然还在开发过程中,不过很快就可以使用了,此外我们还可以采用HDMI转换器。图6显示的是同时支持USB、HDMI可选模式以及全USB PD规范的USB Type-C接口的完整结构。图6:USB Type-C/HDMI接口内部结构两款器件是这样设计的基础:第一个是TI的TPS65982 USB Type-C接口以及PD控制器,用于执行多种操作需求:● 检测USB Type-C线缆的插入以及插头的方向● 协商功率传输等级,通过I2C协议将信息传递给微控制器单元,从而决定采用哪种操作模式
发表于 2019-04-11
技术文章—遵循统一标准:USB Type-C增加HDMI

I2C协议---I2C时序图解析

一、I2C协议简介  I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地 使用在系统内多个集成电路(IC)间的通讯。   关于I2C协议的更多内容,可阅读《I2C总线协议》,本博文主要分析I2C波形图,对于I2C的基础知识不在做介绍。二、I2C协议标准代码2.1 起始信号&停止信号  起始信号:当 SCL 线是高电平时 SDA 线从高电平向低电平切换。   停止信号:当 SCL 线是高电平时 SDA 线由低电平向高电平切换。  
发表于 2019-04-09
I2C协议---I2C时序图解析

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved