HTC8 - 点亮第一盏灯

一、环境的搭建

  • 需要使用到的工具

开发软件: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文件,然后点击下载/编程,再按一下板子上的蓝色小按钮

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值