/*前章节出现过的解释不再重复*/
#include "STC15F2K60S2.H"
typedef unsigned char u8;
typedef unsigned int u16;
u8 count,led;
void close()
{
P0=0XFF;
P2=P2&0X1F|0X80;
P2=P2&0X1F;
P0=0;
P2=P2&0X1F|0XA0;
P2=P2&0X1F;
}
void open()
{
ET0=1;
EA=1;
}
/*允许定时器产生中断*/
void lighten(u8 led)
{
P0=~led;
P2=P2&0X1F|0X80;
P2=P2&0X1F;
}
void Timer0Init(void)
{
AUXR &= 0x7F;
/*寄存器AUXR第7位置0,表示定时器0采取12分频模式*/
TMOD &= 0xF0;
/*寄存器TMOD低4位置0,表示使用16位自动重装载模式,用作定时器,不受INTO引脚控制*/
TL0 = 0x00;
TH0 = 0x4C;
/*设置初值*/
TF0 = 0;
/*溢出标志TF0清零*/
TR0 = 1;
/*定时器0开启*/
}
/*系统频率11.0592MHZ时计时50ms,可以通过STC-ISP自动生成,本处简单解释,具体查询用户手册7.1等部分,后不重复*/
void main()
{
close();
open();
Timer0Init();
while(1)
{
lighten(led);
}
}
void stop1() interrupt 1
{
count++;
if(count==20)
{
led++;
count=0;
}
}
/*每1S参数led的值加一,对应lighten函数内LED灯亮灭改变*/
官方提供的原理图,用户手册等下载地址如下:
链接:https://pan.baidu.com/s/1y8lRYHxLKojL4_r0PZPYRw
提取码:19so
注释无法插入图片,相关信息读者自己在文件夹中寻找。
南京信息工程大学本科学生学习笔记,供大家参考。
如有错误,联系QQ3182097183。