⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 张德广课题.c

📁 这是本人在学习51单片机时练习的C程序 lgl_5923@163.com
💻 C
字号:

/*------------------------------------------*/
//                                          //
//                                          //
//              天津工程师范学院学院        //
//            梁光林: lgl_5923@163.com      //
//                                          //
//                                          //
/*-----------------------------------------*/


// 时针程序的秒钟部分,LED为共阳,P2为数据,P10\P11为位选

#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long


uchar code TABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数据表0-90x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60
//共阴是:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f


uint i,j=0;

//*********************显示程序********************
 display()
 {
 int delay(int qq);
 P2=TABLE[i];        //查表给到P2口
P1=0x01;            //打开个位数码管
delay(10);           //调用延时
if(i==10)           //判断个位是否溢出
  {
   i=0;
   j++;
  }
//--------------------//
P2=TABLE[j];           //查表给到P2口
P1=0x02;               //打开十位数码管
delay(10);              //调用延时
if(j==6)
  {
  j=0;
  }
}


//-------------------延时程序-------------------------------//
int delay(int t)

{
int r;
ulong e;

 for(r=0;r<t;r++)
  {
  for(e=0;e<20;e++);
  }
 }

         

//----------------------------------------------------------------//
main()//主程序
{
int display();

TH0=(65536-50000)/256;//重设初值,50MS
TL0=(65536-50000)%256;

TMOD=0x01;//定时器T0工作方式1,16位计时
ET0=1;
EA=1;
TR0=1;

//-----------------//
while(1)
{
display();

//----------------------------
 }
}




/*------------------------------------------*/
//                                          //
//                                          //
//              天津工程师范学院学院        //
//            梁光林: lgl_5923@163.com      //
//                                          //
//                                          //
/*-----------------------------------------*/




/*通过定时器T0工作方式1,16位计时,每溢出一次50MS
配合软件定时给主程序提供秒脉冲M位*/

//#include <reg51.h>


//bit m;//主程序秒脉冲标志位

timer1() interrupt 1//秒脉冲程序
{
static n;//设置一个表态变量以保证每次中断后值不变

TH0=-50000/256;//重设初值,50MS
TL0=-50000%256;

n++;
if(n==20)//到1秒M溢出
{
n=0;
i++;

}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -