STM8 点亮第一个发光二极管

最新更新时间:2021-10-18来源: eefocus关键字:STM8  点亮  发光二极管 手机看文章 扫描二维码
随时随地手机看文章

当 I/O 输出低电平时,LED 导通,LED被点亮;当 I/O 输出高点平时,LED 截止,LED 熄灭;当 I/O 周期性的交替输出高电平、低电平,LED就会闪烁


void InitLED(void)

{

PC_DDR|=0x08;//设置 PC3 为输出模式

PC_CR1|=0x08;//设置 PC3 为推挽输出

PC_CR2|=0x00;//设置 PC3 为 10MHz 快速输出

PE_DDR|=0x01;//设置 PE0 为输出模式

PE_CR1|=0x01;//设置 PE0 为推挽输出

PE_CR2|=0x00;//设置 PE0 为 10MHz 快速输出

PD_DDR|=0x08;//设置 PD3 为输出模式

PD_CR1|=0x08;//设置 PD3 为推挽输出

PD_CR2|=0x00;//设置 PD3 为 10MHz 快速输出

}


void main( void )

{

InitLED(); //初始化 LED 端口

while(1)

{

PC_ODR&=0xF7;//PC_ODR 第 3 位清零,输出低电平

PE_ODR&=0xFE; //PE_ODR 第 0 位清零,输出低电平

PD_ODR&=0xF7; //PD_ODR 第 3 位清零,输出低电平

Delay(5000); //延时

PC_ODR|=0x08;//PC_ODR 第 3 位置位,输出高电平

PE_ODR|=0x01; //PE_ODR 第 0 位置位,输出高电平

PD_ODR|=0x08; //PD_ODR 第 3 位置位,输出高电平

Delay(5000); //延时

}

}


在代码中出现的|=是在嵌入式 C 语言开发中比较常用的位操作方式,PC_DDR|=0x08;这句代码用来将PC_DDR寄存器的[3]位置位,而不影响寄存器的其他位。这句代码实质上是将 PC_DDR寄存器的值与0x08进行或操作,然后再赋值给 PC_DDR 寄存器。


在程序中出现的&=也是嵌入式 C 语言中比较常用的位操作方式,它用来将某位清零,而不影响寄存器的其他位。它实质上是将寄存器的值与等号后面的值进行与操作,然后再赋值给寄存器。


位操作

#include "iostm8s208mb.h"//主控芯片的头文件

/************************常用数据类型定义*************************/

#define u8  uint8_t

#define u16 uint16_t

#define u32 uint32_t 

typedef unsigned char    uint8_t;

typedef unsigned short   uint16_t;

typedef unsigned long    uint32_t;

/*************************端口/引脚定义区域***********************/

#define LED   PI_ODR_ODR0//连接至LED引脚PI0  

/**************************函数声明区域***************************/


/**************************主函数区域*****************************/

void main(void)

{

  PI_DDR_DDR0=1; //配置PI0端口为输出模式

  PI_CR1_C10=1;  //配置PI0端口为推挽输出模式

  PI_CR2_C20=0;  //配置PI0端口低斜率输出2MHz

  LED=0;         //让PI0引脚输出低电平

}

关键字:STM8  点亮  发光二极管 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic547870.html

上一篇:搭建STM8S001开发环境
下一篇:关于STM8S001J学习过程记录

推荐阅读

51单片机点亮LED灯、流水灯
2-1点亮一个LED灯1.首先在keil中新建一个工程,这里需要注意,将所写的工程可以统一一个地方进行存储,这样方便查找。之后再右击添加新文件2.首先右击代码行,引用文件3.之后再编写主函数4.以其中亮一个LED灯为例,编写程序如下:P2=0xFE;//1111 1110 转换成十六进制0x表示前缀代表的是十六进制数P2=0xFE;//1111 1110下载程序后到STC-ISP中选择单片机的型号,串口号,打开相应的程序文件,进行下载编程5.实现效果6.当然,也可以加上循环语句表示让其一直循环下去,实现效果是一样的通过点亮第一个LED灯,可以知道以八个一组为例改变0101......的位置可以转换灯的亮灭情况例如:实现效果为:2-
发表于 2022-09-27
51单片机<font color='red'>点亮</font>LED灯、流水灯
MSP430笔记1——I/O口的设置(点亮LED)
基本配置PxDIR 选择寄存器 (x:1/2)0:输入 1:输出复位后默认:0000 0000PxOUT 输出寄存器0:低电平 1:高电平PxIN 输入寄存器读取某个端口连接的是高低电平(只读不写)PxREN 上拉/下拉电阻寄存器0:不使能外部电阻,该寄存器为无效状态 ;1:使能外部电阻,该寄存器为有效状态)PxSEL 功能选择寄存器0:普通I/O端口1:应用于外围电路的特殊功能(一旦置1则该引脚不能再用于中断)BITx(x:0~7) eg: BIT0:0000 0001C语言tipP1DIR |= BIT0;P1DIR = P1DIR | BIT0;//按位或//P1DIR :0000 0000 BIT0:0000 0001 结果
发表于 2022-09-26
MSP430笔记1——I/O口的设置(<font color='red'>点亮</font>LED)
51单片机小白零基础教程——点亮第一个小灯以及流水灯
一、LED灯电路图分析(1)LED灯的描述LED灯:LED全称为发光二级管,可以将电能转换为光能,可以将电信号转为光信号的发光器件。此图片中LED1-LED8为单片机开发板上的0603型号的贴片LED灯。此图片为LED灯在电路图中的符号,要想导通LED就必须给二极管正向流过工作电流,LED的基本工作特性为正向导通,反向截止。(2)LED灯在电路图中的分析J9:跳线帽,只有合上跳线帽,2引脚和1引脚才相通,拔掉J9,5V的电压只能在2引脚,到不了1引脚。RL6、RL7:限流电阻,防止流过LED灯的电流太大,而导致LED灯的烧毁。我们从图中可以发现LED灯的阳极连接在一起,这种接法被称为共阳极接法。共阳极接法:几个二极管的阳极接在一起,
发表于 2022-09-23
51单片机小白零基础教程——<font color='red'>点亮</font>第一个小灯以及流水灯
STM32如何新建工程+寄存器点亮LED灯
STM32新建工程跟51差不多的,但是32会多点东西,比如加载芯片支持包啦,启动文件啦。还有一个很重要的 你得有KEIL5 是吧哈哈 我这里就不写如何安装KEIL5了 网上挺多资源的,这里就主要写一下如何新建工程点亮一个LED灯。我这里用STM32F103C8T6我这里用STM32F103C8T6一: 如何新建工程1:下载芯片支持包Keil.STM32Fxxxx.pack文件1.进入KEIL5官网。找到自己的型号这样就下载了 芯片支持包了。2:打开KEIL5 加载Keil.STM32Fxxxx.pack文件.打开KEIL5把 下载的 Keil.STM32Fxxxx.pack文件 加载进去。3:添加编写代码文件main.c 以及 添加
发表于 2022-09-23
STM32如何新建工程+寄存器<font color='red'>点亮</font>LED灯
基于STM32F103入门1——点亮LED灯
1:新建固件库工程文件1.1找到一个固件库模板1.2:打开KEIL5新建工程最终效果:1.3:添加相关文件然后我们针对不同文件夹 我们添加不同的文件进来。双击STARTUP 添加我们固件库的启动文件STARTUP:添加Libraries——>CMSIS——>startup中的启动文件USER:添加固件库的User文件夹中的.c文件CMSIS 添加Libraries——>CMSIS文件夹中的.c文件DOC:添加固件库中Doc文件夹的readme.txtFWLIB:添加Libraries——>STM32F10x_StdPeriph_Driver文件夹中的.c文件添加完效果1.4:手动添加其他文件路径进来打开stm
发表于 2022-09-23
基于STM32F103入门1——<font color='red'>点亮</font>LED灯
发光二极管的测量方法
1、用模拟式判别发光模拟式万用表判断发光二极管的极性的方法与判断普通二极管的方法是一样的,只不过一般发光二极管的正向导通电压可超过lv,实际使用电流可达100ma以上,测量时可用量程较大的×lk和×10k档测其正向和反向电阻。一般正向电阻小于50kω,反向电阻大于200kω为正常。2、发光二极管工作电流的测量
发表于 2022-09-22
<font color='red'>发光二极管</font>的测量方法

推荐帖子

关于上拉电阻和下拉电阻的资料
虽然不是我自己整理的,但是我是综合很多的相关资料整理的,发出来不为别的,只为养家糊口,大家看着有用的话就收藏吧! 算了还是不卖了,来这的新手也不容易,大家实惠才是真的!关于上拉电阻和下拉电阻的资料
wzc_1984 模拟电子
[TI低功耗设计大赛】按键控制加减PWM波占空比
本帖最后由0℃的春天于2014-12-613:40编辑 最近个把月烦心事真多又是跟媳妇闹分手又是创新实验大赛都忘记这个事了收拾东西的是发现了板子才想起来进论坛一看比赛延期了正好反正最近心塞复习也复习不进去接着写写程序吧说多了都是泪。 自己摸索着写了个按键加减PWM波的占空比按键S1(P4.5)减占空比S2(P1.1)加占空比为了好区分加减步进的幅度不一样我亲自用示波器看过程序运行正常。 下面是程序: #include"msp43
0℃的春天 微控制器 MCU
三极管——识别与判断
三极管——识别三极管——识别与判断
zuie 模拟电子
深圳地铁4号线QDLIntegrate电力监控系统的设计与应用
一、基本信息项目名称:深圳地铁4号线龙华车辆段通道工程项目电力监控项目项目地点:广东省深圳市项目时间:2021.02.07二、项目概述深圳地铁4号线(ShenzhenMetroLine4),是中国广东省深圳市第2条建成运营的地铁线路,于2004年12月28日开通运营一期工程,2011年6月16日开通运营二期工程,2020年10月28日开通运营三期工程,其标志色为红色,北起牛湖站,途经龙华区、福田区,贯穿深圳北站、市民中心、会展中心等重要区域,南至福田口岸站,是贯穿深圳南北的地铁
wwdpj82 工控电子
UCOS-II在VC中的编译
我把UCOS-II中的例子在VC中编译,总是出现‘ASM没有定义。。。7个错误,2个警告’怎样解决呢?UCOS-II在VC中的编译
PWP1013 实时操作系统RTOS
做了一个摸鱼锻炼手指模块,敲敲就发电
锻炼手指肌肉,敲得越快,发电越多![localvideo]0b2c6096a6ac0dd3928364e099db55bc[/localvideo] 做了一个摸鱼锻炼手指模块,敲敲就发电
swirfe 分立器件
小广播
设计资源 培训 开发板 精华推荐

何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved