stc15系列单片机教程之一:oneled

kimiyang的博客 kimiyang的博客     2022-08-25     401

关键词:

STC15系列单片机教程之一:OneLED

STC15系列单片机教程之一:OneLED
一、开发软件准备
二、STC15F2K60S单片机IO分配
三、程序编写
1.Keil 新建项目
2.编写程序
3. 程序的编译
四、固件下载
总结

本系列教程开始学习STC15系列单片机的C语言编程,读者需要有C语言的基础知识。

一、开发软件准备

1. 安装编程软件:Keil

clip_image001

2. 下载软件STC_Isp

3. 配置keil下的STC单片机编程环境

 clip_image003

点击添加信号和头文件到Keil中,为 keil软件添加STC系列单片机器件的支持,以及后面要用到的仿真器。

二、STC15F2K60S单片机IO分配

clip_image004

如上图所示,STC15F2K60S 系列块单排及共有5组管脚:

管脚组名称

可用位数

P0

8bit (P0.0-P0.7)

P1

8bit (P1.0-P1.7)

P2

8bit (P2.0-P2.7)

P3

8bit (P3.0-P3.7)

P4

8bit (P3.0-P3.7)

P5

2bit(P5.4-P5.5)

STC15系列单片机每个管脚都有个IO口模式配置寄存器,可用配置任何一个管脚的输出模式。

 clip_image006

每位管脚模式有以下四种: (默认为00,即准双向口)

clip_image008

三、程序编写

在了解了以上STC单片机的IO特性后,我们来尝试编写程序,控制开发板上的LED灯闪烁,其所在管脚为P5.5

clip_image009

1.Keil 新建项目

• 先在keil 的 Project 菜单下选择new uVision Project...创建新项目,并命名。

clip_image011

• Select a CPU Data Base File 中选择 STC MCU Database,创建STC系列单片机项目

clip_image012

• 根据板子类型,为项目选择CPU型号。我这选的是STC15F2K60S2

clip_image014

• 添加main.c文件

clip_image015

2.编写程序

程序代码如下:

//************************************
//STC_XGboard 51单片机学习板
//author:Kimiyang
//OneLEDFlash
//实现单个LED闪烁
//20170109
//************************************
// NAME Pin
// LED P55
#include <STC15F2k60S2.H> //单片机寄存器资源头文件
#include <intrins.h> //使用_nop_();空操作函数时必须包含此头文件
#define LED P55 //定义LED管脚号
void Delay1ms() //@11.0592MHz
{
unsigned char i, j;
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
//************************************
//*函数名称:delay
//*函数功能:延时函数
//*参 数:Dtime:延时时间mS
//*返 回 值:无
//************************************
void delay_nMs(unsigned int Dtime)
{
unsigned int i; //255
for(i=0;i<Dtime;i++) // 10us
{
Delay1ms(); //1s
}
}
//************************************
//*函数名称:main
//*函数功能:主函数,程序开机运行的第一个函数
//*参 数:无
//*返 回 值:无
//************************************
int main(void)
{
LED = 1; //灯灭
while(1) //重复执行下面大括号中的4行程序
{
LED = 0; //点亮LED
delay_nMs(500); //延时约为0.5s
LED = 1; //熄灭LED
delay_nMs(500);
}
}

3. 程序的编译

• 设置生成可下载文件-'hex'文件

clip_image017

• 使用Keil软件工具条上的Rebuild图标按钮对程序编译

clip_image018

• 编译后观察keil软件底下的Build output窗口,了解编译信息错误或警告: 0 Error,0 Warning

clip_image019

四、固件下载

• 编译成功后(0 Error,0 Warning),使用STC_isp软件,通过单片机的串口下载hex程序到单片机内,观察运行现象。

clip_image021

• 开发板运行效果

总结

clip_image022

• STC单片机头文件STC15F2K60S.h中对管脚的位定义为 管脚组名+管脚bit号,如P15代表的是P1口的第5位。

• #define LED P55 使用#define 定义P55名称为 LED,在下面程序中可用LED 代表P55管脚。对程序阅读比较有帮助。

proteus8.12无法仿真stc15系列单片机解决办法(代码片段)

Proteus8.12无法仿真STC15系列单片机解决办法问题说明原来在Proteus8.9版本上仿真STC15系列单片机很正常,这里的STC15系列单片机特指STC15W4K32S4,因为目前Proteus软件8.9版本以及之后版本中有且只能找到的一款STC型号的单片机。... 查看详情

stc15系列单片机通过串口多字节数据读写eeprom操作

STC15系列单片机通过串口多字节数据读写EEPROM操作 查看详情

stc15系列单片机eeprom读写示例(代码片段)

STC15系列单片机EEPROM读写示例🌼STC15手册有关EEPROM描述🌾STC15系列单片机内部集成了大容量的EEPROM,其与程序空间是分开的。利用ISP/IAP技术可将内部DataFlash当EEPROM,擦写次数在10万次以上。EEPROM可分为若干个扇区&#... 查看详情

stc15读取内部id示例程序(代码片段)

...对象。📑STC15ID序列介绍STC15系列STC最新一代STC15系列单片机出厂时都具有全球唯一身份证号码(ID号)。最新STC15系列单片机的程序存储器的最后7个字节单元的值是全球唯一ID号,用户不可修改,但IAP15系列单片机的整个... 查看详情

stc15系列单片机利用eeprom统计开机次数(代码片段)

STC15系列单片机利用EEPROM统计开机次数📺测试效果:📌相关篇《STC15系列单片机EEPROM读写示例》✨采用的是无符号整数(unsignedint)变量计数方式,可统计次数位:65535,如果还觉得不够,还可以定义... 查看详情

stc15系列单片机利用eeprom统计开机次数(代码片段)

STC15系列单片机利用EEPROM统计开机次数📺测试效果:📌相关篇《STC15系列单片机EEPROM读写示例》✨采用的是无符号整数(unsignedint)变量计数方式,可统计次数位:65535,如果还觉得不够,还可以定义... 查看详情

stc15系列之sdccstc15系列sdcc专用头文件内容分享(代码片段)

...5系列SDCC专用头文件内容分享如果使用VSCodePlatformIO开发STC单片机,所提供的型号的头文件很有限,除非自己添加,像STC系列单片机一些型号的头文件还没有只能依赖8052头文件使用,而8052的头文件所提供的的特殊... 查看详情

2.stc15w408as单片机时钟(代码片段)

        STC15W408AS单片机有两个时钟源:内部高精度R/C时钟和外部时钟(外部输入时钟或外部晶体振荡器产生的时钟)。内部高精度R/C时钟(±0.3%),±1%温漂,常温下温漂±0.6%(-20℃~+65℃)。一、内部时钟配置内部时钟... 查看详情

stc15w408as系列型号命名规则和含义

...序区的程序FLASH当EEPROM使用,但有专门的EEPROM,该单片机为1T8051单片机,同样工作频率时,速度是普通8051的8~12倍,其工作电压为5.5V~2.5V,SRAM空间大小为 查看详情

stc15w408as单片机通过adc端口采集模拟量并从串口打印数值

STC15W408AS单片机通过ADC端口采集模拟量并从串口打印数值0-1023数据采集STC15W408AS引脚功能图STC15系列单片机的A/D转换器A/D转换器的结构STC15系列单片机ADC由多路选择开关、比较器、逐次比较寄存器、10位DAC、转换结果寄存器(ADC_RES... 查看详情

stc不同系列单片机的软串口位时间函数差异(代码片段)

STC不同系列单片机的软串口位时间函数差异不同型号的单片机的运行速度是不一样的,所以在库函数当中,的位处理时间也是存在差异的。STC8系列库函数官方下载地址:http://www.stcmcudata.com/STC8F-DATASHEET/STC8G-STC8H-LIB-DEMO... 查看详情

10.stc15w408as单片机a/d转换器(代码片段)

        10.STC15W408AS单片机A/D转换器        STC15系列单片机内部集成了8路10位高速A/D转换器。STC15系列单片机的A/D转换口在P1口(P1.7-P1.0),有8路10位高速A/D转换器,速度到300KHz(30万次/秒)。8路电压输入型A/D,可做... 查看详情

10.stc15w408as单片机a/d转换器(代码片段)

        10.STC15W408AS单片机A/D转换器        STC15系列单片机内部集成了8路10位高速A/D转换器。STC15系列单片机的A/D转换口在P1口(P1.7-P1.0),有8路10位高速A/D转换器,速度到300KHz(30万次/秒)。8路电压输入型A/D,可做... 查看详情

10.stc15w408as单片机a/d转换器(代码片段)

        10.STC15W408AS单片机A/D转换器        STC15系列单片机内部集成了8路10位高速A/D转换器。STC15系列单片机的A/D转换口在P1口(P1.7-P1.0),有8路10位高速A/D转换器,速度到300KHz(30万次/秒)。8路电压输入型A/D,可做... 查看详情

stc15比较器做adc程序示例(代码片段)

【STC15】比较器做ADC程序示例STC15系列单片机A/D转换的结构图SOP28引脚功能定义图类似运放电路的电压跟随器。主程序代码这是一个官方给出的示例程序,可以在STC官网下载,STC15系列库函数与例程测试版。/*-------------------... 查看详情

stc15比较器介绍以及比较器中断方式作为掉电检测示例程序(代码片段)

...系列及STC15W1K16S系列的比较器内部规划如下图所示:有ADC的单片机STC15W401AS系列及STC15W4K32S4系列的比较器内部规划如下图所示:比较器正极输入端CMP+电平可以与比较器负极输入端CMP-的电平进行比较,也可以与内部 查看详情

1.stc15w408as单片机硬件资源

一、简介        STC15W401AS系列单片机是STC生产机器周期(1T)的单片机,是宽电压/高可靠/低功耗/超强抗干扰的新一代8051单片机,采用STC第九代加密技术,无法解密,代码完全兼容传统8051,但速度快8-12倍。内部... 查看详情

1.stc15w408as单片机硬件资源

一、简介        STC15W401AS系列单片机是STC生产机器周期(1T)的单片机,是宽电压/高可靠/低功耗/超强抗干扰的新一代8051单片机,采用STC第九代加密技术,无法解密,代码完全兼容传统8051,但速度快8-12倍。内部... 查看详情