📄 t0.c.bak
字号:
/*实验名称:定时中断0
功能:利用定时器,产生秒计数器,使数码管从000计到999
作者:http://www.mcuprog.com
05-02-01
*/
#include <reg51.h>
//LCD的口线
sbit E=P3^5;
sbit RW=P3^6;
sbit RS=P3^7;
//8字LED的连接方法
//P0.7,P0.6,P0.5,P0.4,P0.3,P0.2,P0.1,P0.0
//G, F A E B H C D
unsigned char code ledcode[]={0x84,0xf5,0x46,0x54,0x35,0x1c,0x0c,0xd5,
0x04,0x14,0x05,0x2c,0x8e,0x64,0x0e,0x0f}; //数码管段码表
unsigned char js100ms,jsgw,jssw,t0100ms,t0sm;
void time0(void);
void main(void)
{
E=0; //取消LCD对LED的影响
RW=0;
RS=1;
js100ms=0x00;
jsgw=0x00;
jssw=0x00;
t0100ms=0x14;
t0sm=0x01; //从第一个LED开始显示
TH0=0xee;
TL0=0x00;
TMOD=0x01;
TR0=1;
IE=0x82;
while(1)
{}
}
void time0(void) interrupt 1
{
TH0=0xee;
TL0=0x00;
t0100ms--;
if(t0100ms==0x00)
{
t0100ms=0x14;
js100ms++;
if(js100ms==0x0a)
{
js100ms=0x00;
jsgw++;
if(jsgw==0x0a)
{
jsgw=0x00;
jssw++;
if(jssw==0x0a)
{jssw=0x00;}
}
}
}
t0sm++;
if(t0sm==0x04)
{t0sm=0x01;}
P0=0xff;
switch(t0sm)
{
case 0x01: { P2=0xdf;P0=ledcode[js100ms];}break;
case 0x02: { P2=0xef;P0=ledcode[jsgw]&0x7f;}break;
case 0x03: { P2=0xf7;P0=ledcode[jssw];}break;
default: break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -