📄 张德广课题.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 + -