📄 main.c
字号:
/**************************************************************************************************
说明;继电器控制使用了12V外部电源,所以在使用时连接仿真器的同时还要外接12V电源从J1输入,不然在下载时会
弹出一个检测到未上电的对话框.
本程序的功能: 使用定时器1产生中断使继电器周期性的断开闭合
要求:打开拨码开关J11的1脚
**************************************************************************************************/
#include <sh88f516.h>
unsigned char i=0;
bit time1flag;
main()
{
char i,j=0;
CLKCON = 0x00;
P4M0 = 0x00;
P4M1 = 0x10; //P4_7推挽输出模式
TMOD = 0x10; //定时器工作方式1,16位
TH1 = 0xF6; //(65536-1536)/16M=4ms
TL1 = 0x00;
TR1 = 1; //开始计数
ET1 = 1; //打开定时器1中断
EA = 1; //打开总中断
while(1)
{
if(time1flag)
{
time1flag = 0;
i++;
if(i>10)
{
i=0;
P4_7 = ~P4_7; //Relay control bit
}
if(j<11)
{
P1_5=~P1_5;
P1_4=~P1_4;
j++;
P1_7=~P1_7;
P1_6=~P1_6;
}
P1_2=~P1_2;
P1_3=~P1_3;
}
}
}
void TIME1_INT() interrupt 3 //定时器1的中断号为3.
{
ET1 = 0; //close定时器1中断
TH1 = 0x06; //(65536-1536)/16M=4ms
TL1 = 0x00; //(65536-1536)/16M=4ms
i++;
if(i>=250) //250ms*4=1s
{
i = 0;
time1flag=1;
}
ET1 = 1; //打开定时器1中断
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -