一、环境的搭建
-
需要使用到的工具
开发软件:Keil uVision5
烧录工具:stcai-isp-v6.94C
开发板:STC8H核心板,采用的是STC8H8K64U芯片
二、单片机介绍
原理图:
二、点亮第一盏灯
通过控制5.3引脚输出高电平时,LED灯就点亮,输出低电平时LED灯就熄灭
1.新建项目
2.配置开发板的信息
再Search输入 8h8k
项目创建成功后,目录如下
在源码目录,右键打开操作面板,选择Add New Item to Group ...
新建一个mian.c的文件,根据面板选择c File
代码实现:
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