学习记录打卡
刚好做小项目用到了STC89C52RC,结果发现运算性能实在有限。突然想到学STC32还送实验箱,如此机会怎可错过。第一集 认识单片机
第一集属于是入门介绍主要介绍了如下内容:
1. 什么是单片机
2. 它能做什么
3. 一些常见问题的解答
4. 学习建议
第二集 了解硬件
本集主要介绍了实验箱的基本硬件,并对每个硬件的实际应用做了简单介绍。
第三集 开发环境搭建和程序下载
STC-ISP软件下载
下载地址:STC-ISP软件下载地址
手册下载
方法一:ISP软件内下载(这个最新版ISP里似乎没有了)
方法二:芯片手册
PDF阅读器下载
(这个有了,就不写了)
程序包下载
方法一:ISP软件内下载(这个最新版ISP里似乎没有了)
方法二:实验箱代码下载
第一个工程编译
将板子通过USB线链接电脑按下P3.2按钮,此时按下并松开OFF按钮,在松开P3.2进入USB下载模式
硬件USB直接下载
第四集 建立工程点亮第一颗LED上
LED点亮原理
代码
sfr P0 = 0x80;
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
while (1)
{
P0++;
}
}
要点亮LED则需要修改成P4的端口,查手册修改
对应修改P4M0 P4M1 P6M0 P6M1
第四集 建立工程点亮第一颗LED下
实现自动下载工程
项目中需要做如下修改
第五集 C语言运算符和进制数入门
printf函数的实现
if( DeviceState != DEVSTATE_CONFIGURED ) //
continue;
if( bUsbOutReady )
{
usb_OUT_done();
printf("Hello world!");
}
数的进制
C语言常用运算符
数据的基本类型
https://www.stcaimcu.com/forum.php?mod=image&aid=57660&size=300x300&key=9f2ae0ea908e166c&nocache=yes&type=fixnone
第六集 LED闪烁和花式点灯
基于Delay实现的LED闪烁
#define MAIN_Fosc 24000000UL// 定义一个IRC系统时钟
void delay_ms(u16 ms)
{
u16 i;
do{
i = MAIN_Fosc / 6000;
while(--i);
}while(--ms);
}
函数的使用
定义、声明、调用
模块化编程
新建xxx.c和xxx.h文件代表一个功能块
xxx.h格式
#ifndef __XXX_H
#define __XXX_H
调用头文件
函数声明
#endif
xxx.c格式
#include "xxx.h"
函数定义
第七集 按键点灯
原理
机械抖动
按下熄灭,松开点亮
// 按下熄灭,松开点亮
if( KEY2 == 0) //判断按键有没有按下
{
delay_ms(10);
if( KEY2 == 0 )
{
printf("按键P33已经按下\r\n");
P67 = 1; //LED熄灭
}
}
else
{
P67 = 0; //LED熄灭
}
按下一次,状态取反// 按下一次,状态取反
if( KEY2 == 0) //判断按键有没有按下
{
delay_ms(10);
if( KEY2 == 0 ) //按键确实按下了
{
while(KEY2 == 0) //如果按键一直是按下的,一直执行while
{
}
printf("按键P33已经按下,led取反一次\r\n");
P67 = !P67; //LED熄灭
}
}
第八集 蜂鸣器的应用
控制原理
第九集 数码管的静态使用
认识数码管
控制原理
实现数码管0-9显示
本质就是点灯操作
页:
[1]
2