STC8H1K08_介绍与应用(1)
STC8H1K08_介绍与应用(1)

一、配置Keil 在线仿真

二、编程示例
示例1:点亮LED



#include "STC8H.h"
// 上电先配置IO口模式
// 准双向IO口(弱上拉)
int main(void)
{
// P1端口,全部被配置为弱上拉
P1M0 = 0x00;
P1M1 = 0x00;
while(1)
{
}
}
示例二:LED闪烁


#include "STC8H.h"
#include "intrins.h"
// 500ms 延时函数
void Delay(void) //@11.0592MHz
{
unsigned char data i, j, k;
i = 29;
j = 14;
k = 54;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
// 上电先配置IO口模式
// 准双向IO口(弱上拉)
int main(void)
{
// P1端口,全部被配置为弱上拉
P1M0 = 0x00;
P1M1 = 0x00;
while(1)
{
P12 = 0; //熄灭
Delay();
P12 = 1; //熄灭
Delay();
}
}
通过观察开发板发现,弱上拉模式LED灯亮度较低。
P1M0 = 0XFF; // 修改为推挽模式
// 强上拉模式,拉电流可达20mA,要加限流电阻
观察发现,LED灯亮度明显增加。
#include "STC8H.h"
#include "intrins.h"
// @24.000MHz 可调毫秒延时
void Delay_ms(unsigned int ms)
{
unsigned int t;
unsigned char data i, j;
for(t = 0; t < ms; t++)
{
_nop_();
i = 32;
j = 40;
do
{
while (--j);
} while (--i);
}
}
// 上电先配置IO口模式
// 推挽输出IO口(强上拉)
int main(void)
{
// P1端口,全部被配置为强上拉
P1M0 = 0xFF;
P1M1 = 0x00;
while(1)
{
P12 = 0; //熄灭
Delay_ms(500);
P12 = 1; //熄灭
Delay_ms(500);
}
}
#include "STC8H.h"
#include "intrins.h"
// 标准精准100μs底层 @24.000MHz
void Delay100us(void)
{
unsigned char data i, j;
i = 4;
j = 27;
do
{
while (--j);
} while (--i);
}
// 可调微秒延时
// times = 倍数,Delay100us_x(5) = 500μs
void Delay100us_x(unsigned char times)
{
while(times--)
{
Delay100us();
}
}
// 上电先配置IO口模式
// 推挽输出IO口(强上拉)
int main(void)
{
// P1端口,全部被配置为强上拉
P1M0 = 0xFF;
P1M1 = 0x00;
while(1)
{
P12 = 0; //熄灭
Delay100us_x(5);
P12 = 1; //熄灭
Delay100us_x(5);
}
}
浙公网安备 33010602011771号