找回密码
 立即注册
查看: 447|回复: 10

学习单片机,从零开始,我是小白,还请指点

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-01-03 16:40:20
已绑定手机

2

主题

11

回帖

72

积分

注册会员

积分
72
发表于 2024-12-20 19:37:22 | 显示全部楼层 |阅读模式

这几天看了冲哥的视频,第一句话就非常洗脑,哪怕梦想让我们拼的遍体鳞伤,这一次我们也要勇往直前,根据视频内容所介绍的功能能感到我们国产STC的强大,比如可以直接接屏幕去播放直接想要的视频画面
image.png

还有录放音的功能
image.png

还能够实现AI的部分功能,看来是要好好学习一下实现自己动手做出自己想要的结果了

2

手上没有硬件,先从工具开始学习吧!

先下载安装keil.下载安装SIP

3在keil中添加AI8051U

image.png

回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-01-03 16:40:20
已绑定手机

2

主题

11

回帖

72

积分

注册会员

积分
72
发表于 2024-12-20 22:57:19 | 显示全部楼层

手上没有硬件,先从工具开始学习吧!

先下载安装keil.下载安装SIP

3在keil中添加AI8051U

但是我下载的是keil c51,没有找到c251,在做中断安装时失败
image.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-01-03 16:40:20
已绑定手机

2

主题

11

回帖

72

积分

注册会员

积分
72
发表于 2024-12-21 08:58:16 | 显示全部楼层

今天找到官方要到下载keil251方法,已经搞定中断
image.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-01-03 16:40:20
已绑定手机

2

主题

11

回帖

72

积分

注册会员

积分
72
发表于 2024-12-21 10:23:52 | 显示全部楼层

今天学习第三课,从新建keil工程开始,新建后进行设置
image.png

image.png

设置keil中编程代码注释显示中文
image.png

没有硬件,只能先写代码,不知道烧录能不能成功
image.png

设置不知道哪个环节出了问题,没有输出HEX文件,求指点
image.png

image.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-01-03 16:40:20
已绑定手机

2

主题

11

回帖

72

积分

注册会员

积分
72
发表于 2024-12-21 10:42:58 | 显示全部楼层

接下来开始学习第四课USB不停电下载程序,老规矩,手里没设备,先搞软件
image.png

image.png

不知道为什么没有历程下载
image.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-01-03 16:40:20
已绑定手机

2

主题

11

回帖

72

积分

注册会员

积分
72
发表于 2024-12-21 11:00:14 | 显示全部楼层

学习完第五课,写代码,因为之前添加工程AI8051U工程建立好,代码写好未知原因不能输出hex文件,加上没有单片机实物不能够进行实践,所幸接了一个STC89C52的单片机来时间这节课所学的写代码,另外STC89C52CR基本是默认设置只用勾选输出hex文件就可以输出hex文件,至于AI8051U后面再去研究
image.png

经过摸索写了一个按键控制led的代码,并且实时成功,瞬间感觉到自己好厉害,不过也不能虚心,后面还要慢慢的去学习
image.png

image.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-01-03 16:40:20
已绑定手机

2

主题

11

回帖

72

积分

注册会员

积分
72
发表于 2024-12-21 11:11:56 | 显示全部楼层

第六课学习的内容跟第五课学习内容学习完做出了按键控制led的简单代码,代码如下

#include <reg52.h>

#define KEY_PRESS 0 // 按键按下状态

sbit KEY1 = P2^0; // 定义按键1
sbit KEY2 = P2^1; // 定义按键2
sbit KEY3 = P2^2; // 定义按键3
sbit KEY4 = P2^3; // 定义按键4
sbit KEY5 = P2^4; // 定义按键5
sbit KEY6 = P2^5; // 定义按键6
sbit KEY7 = P2^6; // 定义按键7
sbit KEY8 = P2^7; // 定义按键8

sbit LED1 = P1^0; // 定义LED1
sbit LED2 = P1^1; // 定义LED2
sbit LED3 = P1^2; // 定义LED3
sbit LED4 = P1^3; // 定义LED4
sbit LED5 = P1^4; // 定义LED5
sbit LED6 = P1^5; // 定义LED6
sbit LED7 = P1^6; // 定义LED7
sbit LED8 = P1^7; // 定义LED8

void delay(unsigned int t) // 延时函数
{
unsigned int i, j;
for (i = 0; i < t; i++)
for (j = 0; j < 125; j++);
}

void main()
{
while (1)
{
if (KEY1 == KEY_PRESS) // 判断按键1是否按下
{
delay(10); // 延时去抖动
if (KEY1 == KEY_PRESS) // 再次判断按键1是否按下
{
while (KEY1 == KEY_PRESS); // 等待按键1松开
LED1 = ~LED1; // LED1状态取反
}
}

    if (KEY2 == KEY_PRESS) // 判断按键2是否按下
    {
        delay(10); // 延时去抖动
        if (KEY2 == KEY_PRESS) // 再次判断按键2是否按下
        {
            while (KEY2 == KEY_PRESS); // 等待按键2松开
            LED2 = ~LED2; // LED2状态取反
        }
    }

    if (KEY3 == KEY_PRESS) // 判断按键3是否按下
    {
        delay(10); // 延时去抖动
        if (KEY3 == KEY_PRESS) // 再次判断按键3是否按下
        {
            while (KEY3 == KEY_PRESS); // 等待按键3松开
            LED3 = ~LED3; // LED3状态取反
        }
    }

    if (KEY4 == KEY_PRESS) // 判断按键4是否按下
    {
        delay(10); // 延时去抖动
        if (KEY4 == KEY_PRESS) // 再次判断按键4是否按下
        {
            while (KEY4 == KEY_PRESS); // 等待按键4松开
            LED4 = ~LED4; // LED4状态取反
        }
    }

    if (KEY5 == KEY_PRESS) // 判断按键5是否按下
    {
        delay(10); // 延时去抖动
        if (KEY5 == KEY_PRESS) // 再次判断按键5是否按下
        {
            while (KEY5 == KEY_PRESS); // 等待按键5松开
            LED5 = ~LED5; // LED5状态取反
        }
    }

    if (KEY6 == KEY_PRESS) // 判断按键6是否按下
    {
        delay(10); // 延时去抖动
        if (KEY6 == KEY_PRESS) // 再次判断按键6是否按下
        {
            while (KEY6 == KEY_PRESS); // 等待按键6松开
            LED6 = ~LED6; // LED6状态取反
        }
    }

    if (KEY7 == KEY_PRESS) // 判断按键7是否按下
    {
        delay(10); // 延时去抖动
        if (KEY7 == KEY_PRESS) // 再次判断按键7是否按下
        {
            while (KEY7 == KEY_PRESS); // 等待按键7松开
            LED7 = ~LED7; // LED7状态取反
        }
    }

    if (KEY8 == KEY_PRESS) // 判断按键8是否按下
    {
        delay(10); // 延时去抖动
        if (KEY8 == KEY_PRESS) // 再次判断按键8是否按下
        {
            while (KEY8 == KEY_PRESS); // 等待按键8松开
            LED8 = ~LED8; // LED8状态取反
        }
    }
}

}

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-01-03 16:40:20
已绑定手机

2

主题

11

回帖

72

积分

注册会员

积分
72
发表于 2024-12-21 11:33:21 | 显示全部楼层

学习第七课,定时器中断,
image.png

复制代码
image.png

暂时没有硬件,无法进行实时,只能先多看视频待有硬件是实时并改进

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-01-03 16:40:20
已绑定手机

2

主题

11

回帖

72

积分

注册会员

积分
72
发表于 2024-12-24 18:39:09 | 显示全部楼层
今天试验箱到了,首先非常感谢官方,接下来回顾前面的学习视频来慢慢学习并实验
          今天回顾视频第二集发现我领到的实验箱跟学习视频中的有一丢丢误差,
        1.断路帽没有,只有数据线
        2.pcb上面少了两个芯片
截图202412241829044543.jpg
截图202412241829172370.jpg
截图202412241835155830.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:428
  • 最近打卡:2025-05-07 00:13:45
已绑定手机

19

主题

3192

回帖

4944

积分

论坛元老

积分
4944
发表于 2024-12-24 22:51:09 | 显示全部楼层
隐*** 发表于 2024-12-24 18:39
今天试验箱到了,首先非常感谢官方,接下来回顾前面的学习视频来慢慢学习并实验
          今天回顾视频第 ...

那个是外部扩展RAM芯片,可以不焊接。RAM够用了
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 03:19 , Processed in 0.159778 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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