- 打卡等级:初来乍到
- 打卡总天数:3
- 最近打卡:2026-01-17 09:59:46
已绑定手机
新手上路
- 积分
- 35
|
/*STC8G1K17-8PIN*/
#define uint unsigned int //宏定义
#define uchar unsigned char //宏定义
#define ON 0
#define OFF 1
#include<stc8.h> //52单片机头文件
uchar t0ms5,t1ms5,t0ms500,t1ms500,second,n; //t0和t1都是5ms
sbit keyi=P3^3;
sbit led1=P3^0;
sbit led2=P3^1;
sbit led3=P3^2;
void delayms(ms)
{
unsigned char data i, j;
while (--ms)
{
i = 15;
j = 90;
do
{
while (--j);
} while (--i);
}
}
void init()
{
EA=0;
P3M0 = 0x00;
P3M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//*
AUXR &= 0x3f; //定时器0,1为12T模式
TMOD &= 0x00; //设置定时器0,1为模式0(16位自动重装载)
TL1 = 0x00; //设置定时初始值 5ms
TH1 = 0xEE; //设置定时初始值
TF1 = 0; //清除TF1标志
TR1 = 1; //=1,定时器1开始计时
ET1 = 1; //使能定时器0中断
EA = 1;
}
void tm1_isr() interrupt 3
{
t1ms5++;
if(t1ms5>199) { //每1秒钟second-1
t1ms5=0;
if(second>0)second--;
}
}
void main()
{
init();
second=0;
led3=ON;
led2=ON;
led1=ON;
while(1)
{
if(keyi==ON){
delayms(10);
if (keyi==0){
second=5;
}
}
if (second>0)if(t1ms5>100)
led1=OFF; //就是这里,P31和P32都可以正常闪烁,P30不亮。程序下载时,可以见到P30的LED闪烁
else
led1=ON;
}
}
|
|