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

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

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

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

一、开发软件准备

1. 安装编程软件:Keil

2. 下载软件STC_Isp

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

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

二、STC15F2K60S单片机IO分配

如上图所示,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口模式配置寄存器,可用配置任何一个管脚的输出模式。

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

三、程序编写

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

1.Keil 新建项目

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

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

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

? 添加main.c文件

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‘文件

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

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

四、固件下载

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

? 开发板运行效果

总结

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

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

时间: 2024-10-06 03:21:54

STC15系列单片机教程之一:OneLED的相关文章

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

实现LED的闪烁控制 来熟悉管脚控制

基于STC12系列单片机的通用红外遥控信号分析程序(一)

前言 最近学51单片机学习到红外遥控解码与发送部分,开发板的相关教程只有NEC协议的解码,基本的解码套路是1838接收头输出管脚接单片机外部中断0,当接收到红外信号时产生下降沿触发中断,在中断函数中先延时9ms判断电平再延时4.5ms判断电平,从而跳过引导码:再分别延时560us.1690us左右不等的时间判断电平来解码“0”或“1”,直到结束:红外发送思路就是根据NEC协议及红外码值的二进制码分别控制高低电平,并延时相应的时间.但存在这么几个问题: 1. 解码逻辑写死在中断处理函数中,不方便扩

AVR单片机教程——定时器中断

本文隶属于AVR单片机教程系列. ? 中断,是单片机的精华. 中断基础 当一个事件发生时,CPU会停止当前执行的代码,转而处理这个事件,这就是一个中断.触发中断的事件成为中断源,处理事件的函数称为中断服务程序(ISR). 中断在单片机开发中有着举足轻重的地位--没有中断,很多功能就无法实现.比如,在程序干别的事时接受UART总线上的输入,而uart_scan_char等函数只会接收调用该函数后的输入,先前的则会被忽略.利用中断,我们可以在每次接受到一个字节输入时把数据存放到缓冲区中,程序可以从缓

AVR单片机教程——UART进阶

本文隶属于AVR单片机教程系列. ? 在第一期中,我们已经开始使用UART来实现单片机开发板与计算机之间的通信,但只是简单地讲了讲一些概念和库函数的使用.在这一篇教程中,我们将从硬件与软件等各方面更深入地了解UART. USART组件 一直在讲的UART其实是USART组件的一部分,USART比UART多了同步的一部分,但这一部分用得太少(我从来没用过),而且缺乏实例,所以就略过了.然而,单片机的设计者很机智地把这个鸡肋功能升华了一下,USART组件可以支持SPI模式.SPI是一种同步串行总线,

AVR单片机教程——EasyElectronics Library v2.0手册

本文隶属于AVR单片机教程系列. ? adc.h bit.h button.h buzzer.h dac.h delay.h ee.h exin.h exout.h lcd.h ldr.h led.h pin.h pot.h print.h pwm.h rgbw.h rotary.h segment.h switch.h timer.h tone.h uart.h wave.h ? 主要更新: 由于修改了一些接口,与之前版本不完全兼容,主版本号更新为2: 正式支持中断,初步使用回调: UART支

AVR单片机教程——矩阵键盘

本文隶属于AVR单片机教程系列. ? 开发板上有4个按键,我们可以把每一个按键连接到一个单片机引脚上,来实现按键状态的检测.但是常见的键盘有104键,是每一个键分别连接到一个引脚上的吗?我没有考证过,但我们确实有节省引脚的方法. 矩阵键盘 这是一个4*4的矩阵键盘,共有16个按键只需要8个引脚就可以驱动.我们先来看看它的原理. 每个按键有两个引脚,当按键按下时接通.每一行的一个引脚接在一起,分别连接到左边4个端口,称为"行引脚":每一列的另一个引脚接在一起,分别连接到右边的4个端口,称

《zw版&#183;Halcon-delphi系列原创教程》 酸奶自动分类脚本(机器学习、人工智能)

<zw版·Halcon-delphi系列原创教程> 酸奶自动分类脚本(机器学习.人工智能) Halcon强大的图像处理能力,令人往往会忽视其更加彪悍的机器学习.人工智能.      至少,目前国内.海外机器学习.人工智能方面的学者,没有几位重视这块.      国外,可能是版权问题,毕竟,Halcon是售价高达数万欧元(不是人民币)的商业软件,而且主要用于自控.机器视觉等工业领域,而不是大学.      国内,可能是对于Halcon的了解不够.      其实,图像处理的核心,图像识别.分类,

《zw版&#183;Halcon-delphi系列原创教程》 2d照片-3d逆向建模脚本

<zw版·Halcon-delphi系列原创教程> 2d照片-3d逆向建模脚本 3D逆向建模,是逆向工程的核心要素.       3D逆向建模,除了目前通用的3D点云模式,通过2D图像实现快速3D建模,也是目前的重要手段.       2D图像的3D逆向建模,目前常用的有两种模式,一个是左右视距(或多角度取景)图片叠加处理,google的卫星地图3D化,就是这个模式.       另外一种,就是本文要介绍的3D定标模式(handeye??模式),就是在现场先拍摄一张标准3D定标图片,获取定位参

《zw版&#183;Halcon-delphi系列原创教程》航母舰载机&#183;视觉定位标志的识别代码

<zw版·Halcon-delphi系列原创教程>航母舰载机·视觉定位标志的识别代码 航母舰载机机身上的黄黑圆圈的标志是什么意思,辐射?核动力?战术核弹? <百度百科>介绍如下     这是工业数字摄影测量的人工标志    数字摄影测量(Basic concept of digital photogrammetry)是基于数字影像和摄影测量的基本原理,应用计算机技术.数字影像处理.影像匹配.模式识别    等多学科的理论与方法,提取所摄对像以数字方式表达的几何与物理信息的摄影测量学