用LED数码管显示计数器T0的计数值

发布时间:2024年01月15日

#include<reg51.h> ? //包含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=0xf7; ? ? ? ?//P2.6引脚输出低电平,DS6点亮?
? ? P0=Tab[x/10]; ? //显示十位
? ? delay();
? ? P2=0xfb; ? ? ?//P2.7引脚输出低电平,DS7点亮?
? ? P0=Tab[x%10]; ?//显示个位
? ? 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;

?}

文章来源:https://blog.csdn.net/qq_46065313/article/details/135609340
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。