找回密码
 立即注册
查看: 761|回复: 18

学习记录打卡

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2024-11-25 15:23:12

2

主题

17

回帖

126

积分

注册会员

积分
126
发表于 2024-9-20 11:12:04 | 显示全部楼层 |阅读模式
刚好做小项目用到了STC89C52RC,结果发现运算性能实在有限。突然想到学STC32还送实验箱,如此机会怎可错过。

第一集 认识单片机
第一集属于是入门介绍主要介绍了如下内容:
1. 什么是单片机
2. 它能做什么
3. 一些常见问题的解答
4. 学习建议

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2024-11-25 15:23:12

2

主题

17

回帖

126

积分

注册会员

积分
126
发表于 2024-9-20 11:24:17 | 显示全部楼层
第二集 了解硬件

硬件介绍

硬件介绍

本集主要介绍了实验箱的基本硬件,并对每个硬件的实际应用做了简单介绍。


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2024-11-25 15:23:12

2

主题

17

回帖

126

积分

注册会员

积分
126
发表于 2024-9-20 13:47:13 | 显示全部楼层
第三集 开发环境搭建和程序下载

STC-ISP软件下载
下载地址STC-ISP软件下载地址

手册下载
方法一:ISP软件内下载(这个最新版ISP里似乎没有了)
方法二:芯片手册

PDF阅读器下载
(这个有了,就不写了)

程序包下载
方法一:ISP软件内下载(这个最新版ISP里似乎没有了)
方法二:实验箱代码下载

第一个工程编译
将板子通过USB线链接电脑按下P3.2按钮,此时按下并松开OFF按钮,在松开P3.2进入USB下载模式

硬件USB直接下载
截图202409201347068254.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2024-11-25 15:23:12

2

主题

17

回帖

126

积分

注册会员

积分
126
发表于 2024-9-20 14:11:23 | 显示全部楼层
第四集 建立工程点亮第一颗LED上


LED点亮原理



代码

  1. sfr P0 = 0x80;
  2. sfr P0M1 = 0x93;
  3. sfr P0M0 = 0x94;
  4. void main()
  5. {
  6.         P0M0 = 0x00;
  7.         P0M1 = 0x00;
  8.         while (1)
  9.         {
  10.                 P0++;
  11.         }
  12. }
复制代码

要点亮LED则需要修改成P4的端口,查手册修改
对应修改P4M0 P4M1 P6M0 P6M1


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2024-11-25 15:23:12

2

主题

17

回帖

126

积分

注册会员

积分
126
发表于 2024-9-20 14:31:20 | 显示全部楼层
第四集 建立工程点亮第一颗LED下

实现自动下载工程

截图202409201413319904.jpg
项目中需要做如下修改

截图202409201414562413.jpg

截图202409201415132474.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2024-11-25 15:23:12

2

主题

17

回帖

126

积分

注册会员

积分
126
发表于 2024-9-20 21:03:19 | 显示全部楼层
第五集 C语言运算符和进制数入门
printf函数的实现

  1. if( DeviceState != DEVSTATE_CONFIGURED )         //
  2.                         continue;
  3.                 if( bUsbOutReady )                                                               
  4.                 {
  5.                         usb_OUT_done();
  6.                         printf("Hello world!");
  7.                 }
复制代码

数的进制
截图202409202102554062.jpg
C语言常用运算符
截图202409202102091364.jpg
数据的基本类型




截图202409202101079731.jpg
截图202409202102155857.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2024-11-25 15:23:12

2

主题

17

回帖

126

积分

注册会员

积分
126
发表于 2024-9-20 21:38:44 | 显示全部楼层
第六集 LED闪烁和花式点灯

基于Delay实现的LED闪烁
  1. #define MAIN_Fosc 24000000UL  // 定义一个IRC系统时钟
  2. void delay_ms(u16 ms)
  3. {
  4.     u16 i;
  5.     do{
  6.         i = MAIN_Fosc / 6000;
  7.         while(--i);
  8.     }while(--ms);
  9. }
复制代码

函数的使用
定义、声明、调用

模块化编程

新建xxx.c和xxx.h文件代表一个功能块
xxx.h格式
  1. #ifndef __XXX_H
  2. #define __XXX_H
  3. 调用头文件
  4. 函数声明
  5. #endif
复制代码
xxx.c格式
  1. #include "xxx.h"
  2. 函数定义
复制代码




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2024-11-25 15:23:12

2

主题

17

回帖

126

积分

注册会员

积分
126
发表于 2024-9-20 22:02:40 | 显示全部楼层
第七集 按键点灯

原理
截图202409202153219752.jpg
机械抖动
截图202409202154127656.jpg
按下熄灭,松开点亮
  1. // 按下熄灭,松开点亮
  2.                 if( KEY2 == 0  )        //判断按键有没有按下
  3.                 {
  4.                         delay_ms(10);
  5.                         if( KEY2 == 0 )
  6.                         {
  7.                                 printf("按键P33已经按下\r\n");
  8.                                 P67 = 1;        //LED熄灭
  9.                         }
  10.                 }
  11.                 else
  12.                 {
  13.                         P67 = 0;        //LED熄灭
  14.                 }               
复制代码

按下一次,状态取反
  1. // 按下一次,状态取反
  2.                 if( KEY2 == 0  )        //判断按键有没有按下
  3.                 {
  4.                         delay_ms(10);
  5.                         if( KEY2 == 0 )                //按键确实按下了
  6.                         {
  7.                                 while(KEY2 == 0)                //如果按键一直是按下的,一直执行while
  8.                                 {
  9.                                        
  10.                                 }
  11.                                 printf("按键P33已经按下,led取反一次\r\n");
  12.                                 P67 = !P67;        //LED熄灭                               
  13.                         }
  14.                 }
复制代码




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2024-11-25 15:23:12

2

主题

17

回帖

126

积分

注册会员

积分
126
发表于 2024-9-20 22:34:12 | 显示全部楼层
第八集 蜂鸣器的应用


控制原理
截图202409202233363952.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2024-11-25 15:23:12

2

主题

17

回帖

126

积分

注册会员

积分
126
发表于 2024-9-21 17:37:44 | 显示全部楼层
第九集 数码管的静态使用

认识数码管
截图202409211729309088.jpg
控制原理
截图202409211733188513.jpg
截图202409211733391905.jpg

实现数码管0-9显示

截图202409211734413878.jpg
本质就是点灯操作


回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-9 09:15 , Processed in 0.156471 second(s), 101 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表