首页 > 其他分享 >HTC8 - 点亮第一盏灯

HTC8 - 点亮第一盏灯

时间:2024-12-03 21:30:34浏览次数:13  
标签:一盏灯 0x08 引脚 HTC8 点亮 P5M0 P5M1 GPIO P5

一、环境的搭建

  • 需要使用到的工具

开发软件:Keil uVision5

烧录工具:stcai-isp-v6.94C

开发板:STC8H核心板,采用的是STC8H8K64U芯片

二、单片机介绍

原理图:

二、点亮第一盏灯

01.png

通过控制5.3引脚输出高电平时,LED灯就点亮,输出低电平时LED灯就熄灭

1.新建项目

02.png

2.配置开发板的信息

03.png

再Search输入 8h8k

项目创建成功后,目录如下

06.png

在源码目录,右键打开操作面板,选择Add New Item to Group ...

07.png

新建一个mian.c的文件,根据面板选择c File

08.png

代码实现:

1.普通点灯方式

#include <STC8H.H>


void main(){
	
	//设置模式
	P5M0 = 0 ;
	P5M1 = 0 ;

	//让灯亮起来 :: 设置了P5寄存器的第3位 是 1.这样,P53的引脚就能输出高电平了。
	P53 = 1;
	
	
	// 一般单片机的程序都有一个无限循环,这样主要是为了让程序一直处于运行状态
	// 以便能够及时捕捉到用户的交互(按键..输入内容...)
	while(1){
	
	}
	
}

然后点开这个小魔法棒!

点击output 再把这个选项勾选

然后再点击编译

会发现目录下会有个hex文件

然后打开烧录工具

选择刚刚根目录下的hex文件

点击下载/编程

再按一下板子中间的蓝色按钮

最后完成点亮第一盏灯的操作

这里会发现 这盏灯亮度有点低,因为设置的是 准双向口,弱上拉

2.使用寄存器点灯

//声明特殊的寄存器

sfr  P5M0 = 0xCA;
sfr  P5M1 = 0xC9;

sfr  P5  = 0xC8;

// 特殊的位
sbit P53 = P5^3;


void main(){
	
	

	P5M0 = 0  , P5M1 = 0;

	while(1){
	
		P53 = 1 ;
	}
	
}

3.使用引脚点灯


#include <STC8H.h>

void main(){

	/*
		配置IO模式
		
		1. 下面这种写法不太好,因为它会使得8个位置全部都是0,这样会影响P5组的所有引脚
				P5M0 = 0 ,  P5M1 = 0 ; 
	
		2. 我其实只想设置P5组的3号引脚,不想操作这么多引脚..
	*/
	
	//准双向:: 可以输入,也可以输出... 这两个寄存器的第3位都是0  M1  和 M0的第3位都是0
	//准双向,弱上拉,输出的电流更小          能点亮LED
	//P5M0 &= ~0x08 , P5M1 &= ~0x08;
	
	
	//推挽输出:第3位:M0 是1,  M1 是0 ,  
	//推挽输出,强上拉,输出的电流更强,更大   能点亮LED
	//P5M0 |= 0x08 , P5M1 &= ~0x08;
	
	//高阻输入: 第3位:M0 是 0 , M1 是1       没有亮
	//P5M0 &= ~0x08 , P5M1  |= 0x08  ;
	
	
	// 开漏模式                               没有亮
	P5M0 |= 0x08 , P5M1  |= 0x08  ;
	
	
	// 亮灯
	P53 = 1;

	while(1){
	
	}
}

4.使用库函数点灯

#include  "GPIO.h"

void main(){
	
	// 配置代码
	
	//1. 创建结构体变量
	GPIO_InitTypeDef init;
	
	//2. 给成员赋值
	init.Mode = GPIO_PullUp;		//IO模式,  		GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
	init.Pin = GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_5|GPIO_Pin_7;		//要设置的端口	 设置对应的那个引脚.. P53
	
	//3. 完成初始化
	//给P5组设置IO模式...
	GPIO_Inilize(GPIO_P5, &init);
	

	while(1){
		
		// 功能代码
		P53 = 1 ;
	
	}
}

外部操作和之前一样

  • 选择烧录的hex文件,然后点击下载/编程,再按一下板子上的蓝色小按钮

                                                                                                仅为自己的学习笔记,欢迎补充!

标签:一盏灯,0x08,引脚,HTC8,点亮,P5M0,P5M1,GPIO,P5
From: https://blog.csdn.net/2301_79799881/article/details/144224265

相关文章

  • 《随机森林在不同领域的璀璨应用:点亮数据驱动的灯塔》
    在当今数据爆炸的时代,随机森林算法以其强大的预测能力和稳健性,在众多领域如同一颗颗闪耀的星辰,照亮了数据分析和决策的道路。一、金融领域:风险评估的精准利器(一)信贷风险预测在银行等金融机构的信贷业务中,准确评估借款人的信用风险至关重要。随机森林可以处理包含借款人年......
  • 《用Python实现动态爱心表白:点亮屏幕上的浪漫时刻!》
    在代码的世界里,爱意也可以用程序表达。如果你想向心爱的TA表白,不如用Python来一场创意满满的“浪漫攻击”!今天,我将分享一个结合了动态爱心特效和交互式表白窗口的程序,快来试试吧!功能简介动态爱心特效使用数学公式绘制动态爱心,屏幕上会显示粉色爱心不停跳动,非常梦幻。......
  • STM32 通过STM32cubemx软件进行代码生成(led灯闪烁)并最后封装点亮、熄灭以及翻转灯函数
    第一步生成代码对hal生成的文件进行解释Core:核心->Inc:各种头文件->Src:各种源文件Drivers:驱动文件MDK:可以看到个keil各种文件项目路径hail.ioc,可以用来修改配置,工作日志和配置文件 第二步点击MDK-ARM可以看到keil文件,双击打开keil文件对其配置自动复位功......
  • C++编程&玩转物联网:用树莓派Pico点亮RGB彩灯世界
    RGBLED彩灯是嵌入式开发中一个简单却充满乐趣的项目元件。通过它,开发者不仅可以学习控制硬件的基础知识,还能探索颜色混合与PWM(脉宽调制)技术的实际应用。本文将以树莓派Pico为核心,带您实现控制RGBLED显示随机颜色的项目。项目简介RGBLED彩灯由红(Red)、绿(Green)、蓝(Blue)三种......
  • 光影夜市,点亮城市夜经济:声学气膜馆的全新体验—轻空间
    夜幕降临,华灯初上,一座座城市因夜经济而焕发新的生机。光影夜市、星空夜市等新兴业态,不仅丰富了城市的夜间消费场景,更成为市民与游客的打卡热点。而声学气膜馆以其独特的多功能特性,正为城市夜经济注入更多创意和活力。 多元演艺活动,声学体验更出色 声学气膜馆的内部采用......
  • AI编程Arduino单片机点亮WS2812灯带彩虹灯效
    引言随着物联网(IoT)和智能家居的迅速发展,LED灯带因其灵活性和多样的显示效果,广泛应用于装饰、广告、舞台等多个领域。WS2812作为一种智能可控的LED灯带,以其独立控制、丰富的色彩和高亮度,成为众多开发者的首选。而在控制WS2812灯带的过程中,编写高效、稳定的单片机代码至关重要。......
  • 解决一下、在学习江协科技stm32f103开发板操作寄存器无法点亮小灯,但是可以正常熄灭遇
    目录 本人问题:目前搜集网上有关信息有两种解决方案: 本人问题:问题:学习江协科技用操作寄存器的方式进行点亮小灯,代码正确,但是点亮小灯无法点亮,需要重新拔下来下载器再插入电脑USB口才可以点亮。但是熄灭小灯可以正常实现。本人代码:点亮:#include"stm32f10x.h"......
  • 真正的小白入门篇(一),从点亮一颗灯开始
     更多电路设计,PCB设计分享及分析,可关注本人微信公众号“核桃设计分享”!回想起当年做过的愚蠢的事,居然把电源指示灯(LED)串到主回路里面一上电,然后LED就是这个下场了被自己蠢哭了虽然知识点很简单,难度堪比1+1=2,但我相信很多刚入门的小伙伴,也是对点灯电路中一些器件的选型......
  • 基于STM32C8T6的CubeMX:HAL库点亮LED
    三个可能的问题和解决方法:大家完成之后回来看,每一种改错误都是一种成长,不要畏惧,要快乐,积极面对,要耐心对待STMCuBeMX新建项目的两种匪夷所思的问题https://mp.csdn.net/mp_blog/creation/editor/142151511STMCubeMX文件下载后会出现其他项目无法下载的问题https://mp.csdn.ne......
  • 蓝桥杯-STM32G431RBT6采用不同方式进行点亮LED灯(深层次剖析其原理并包含可能遇到的问
    系列文章新建工程见上篇http://t.csdnimg.cn/LH8vj一、原理部分LED部分如上图,左侧为电阻和LED,右侧为锁存器(锁存器可以在输入信号发生变化时,将其状态锁定并保持,直到接收到新的触发信号。它主要用于存储数据或状态信息),当PD2置高电平的时候,右侧的状态才能够传输到左侧,本LED为......