外中断计数2位数码管显示

发布者:blazings最新更新时间:2016-10-27 来源: eefocus关键字:外中断  计数  数码管显示 手机看文章 扫描二维码
随时随地手机看文章
//用LED数码管显示计数器T0的计数值

#include   //包含51单片机寄存器定义的头文件
sbit S=P3^2 ;  //将S位定义为P3.2引脚
unsigned char Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};  //段码表
unsigned char x;
/******************************************************************
函数功能: 延时约0.6ms
********************************************************************/
 void delay(void)      
 {
    unsigned char j;
   for(j=0;j<200;j++)
         ;
  }

/******************************************************************
函数功能:显示计数次数的子程序
入口参数:x
********************************************************************/
 void Display(unsigned char x)
{
    P2=0xbf;        //P3.6引脚输出低电平,DS6点亮 
    P0=Tab[x/10];   //显示十位
    delay();
  delay();
   delay();
  delay();
    P2=0x7f;      //P3.7引脚输出低电平,DS7点亮 
    P0=Tab[x%10];  //显示个位
    delay();
  delay();
   delay();
  delay();
 P2=0xff;
 P0=0xff;
  delay();
  delay();
   delay();
  delay(); 
 }

/*******************************************
函数功能:主函数
******************************************/ 
void main(void)
  {
   EA=1;   //开放总中断
   EX0=1;  //允许使用外中断
   IT0=1;  //选择负跳变来触发外中断
 x=0;
 
 while(1) 
    Display(x);
    
 }
/**************************************************************
函数功能:外中断T0的中断服务程序
**************************************************************/
void int0(void) interrupt 0 using 0 //外中断0的中断编号为0
{
  x++;
  if(x==100)
   x=0;

 }

关键字:外中断  计数  数码管显示 引用地址:外中断计数2位数码管显示

上一篇:数码管显示数字 5 C语言程序设计
下一篇:数码管循环显示0-9 C语言程序设计

推荐阅读最新更新时间:2024-03-16 15:17

ADC0832数字电压表数码管显示(示例程序)
;******************************************************************************** 描述: ADC0832数字电压表数码管显示 调节ADC0832旁边的电位器,数码管显示 ADC0832 转换值的大小 ;******************************************************************************* *************************************
[单片机]
51单片机对8位数码管依次显示0-7的设计
共阳极数组0~9:display[]={0xC0,0xF9,0xA4,0xB0,0x91,0xA2,0x82,0xF8,0x80,0x90} 共阳极数组A~F:display[]={0x88,0x83,0xA6,0xC1,0x86,0x8E} 共阴极数组0~9:display[]={0x3F,0x06,0x5B,0x4F,0x6E,0x6D,0x7D,0x07,0x7F,0x6F} 共阴极数组A~F:display[]={0x77,0x7C,0x59,0x3E,0x79,0x71} 共阴、两组四位一体数码管,位选接74LS138译码器,输入(位选)CBA接P20,P21,P22。段选通过74573后接P1口。 若不使用译码器,可直
[单片机]
51单片机对8位<font color='red'>数码管</font>依次<font color='red'>显示</font>0-7的设计
51单片机(二十一)—— 定时器计数功能
在本文,我们对51单片机定时器的计数功能进行测试,采用定时器0通过方式2产生10KHz的方波,并通过单片机的P1.0口输出。定时器1采用方式1的计数功能,即对外部输入的脉冲进行计数。T1与P3.5引脚复用。实验时,需要用杜邦线将单片机的P1.0引脚,与P3.5引脚连接在一起。T0输出的脉冲又通过P3.5引脚输入给定时器1的计数器。定时器1对脉冲进行计数,设置为5000个脉冲溢出一次。脉冲的周期为0.1ms,即定时器1的溢出周期为500ms,所以LED1以1秒一次的频率闪烁。 定时器0和定时器1的初始化代码如下所示 void init_T0_T1(void) { TMOD= 0x52; //定时器0使用方式2,8位自
[单片机]
STM32 外部计数ETR计算频率
STM32 外部计数ETR计算频率,测量100K频率,用定时器2定时250ms,定时器3PD2(TIM3_ETR)计数,计算公式f=n*t; void Tim3_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Prescaler = 0x00; TIM_TimeBaseStructure.TIM_Period = 0xFFFF; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStr
[单片机]
单片机定时/计数工作方式
单片机中的定时/计数器都能有多种用途,要通过定时/计数器的方式控制字来设置,需要的用途。 在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。 iframe id="iframe_0.48663783678784966" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://www.51hei.com/UpFiles/Pic/2007-
[单片机]
单片机定时/<font color='red'>计数</font>工作方式
C51单片机的定时器计数器怎么用?
方法有很多的,给你一个,你可以调试一下,你可以通过不同的晶振去计算定时器初值,如果你懂定时器这部分很好调通的 #include sbit p1_0=P1^0; int i; //全局变量 void timing(void) //晶振为3.6864M { TMOD|=0x01; //定时器T0,工作方式1 TH0=0xC3; TL0=0xC7; //这两个寄存器存的是计数器的计数开始的值,这两个值累加至溢出后正好是50ms ET0=1; //使T0中断可以溢出 EA=1; //开启总中断 TF0=0; //溢出位清零 TR0=1; //开启T0 } /********定时中断
[单片机]
计数测试数码管显示程序
计数测试数码管显示程序 #include AT89X51.H //6.000MHz #define uchar unsigned char #define uint unsigned int #define L 0 #define R 1 uchar SEG7 ={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f};/*0~9的数码管段码*/ #define reset() {WDT=0x1e;WDT=0xe1;} uchar act ={0xf3,0xfc};//数码管位码 /*******************************************
[单片机]
串行口通信 AD采集信号,显示数码管,发送给上位机
一. 程序功能 用AD以1HZ的频率采集模拟信号,然后转换成数字量,显示在数码管上,再将其以1200bps发送到计算机,在计算机上显示. 二. 程序源码 #include reg52.h #include intrins.h //需要用到_nop_()函数 #define uchar unsigned char #define uint unsigned int sbit dula = P2 ^ 6; //申明U1锁存器的锁存端 sbit wela = P2 ^ 7; //申明U2锁存器的锁存端 sbit adwr = P3 ^ 6; //申明AD的WR端口 sbit
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved