找回密码
 立即注册
查看: 1662|回复: 15

看32位8051教学视频,送实验箱

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:315
  • 最近打卡:2025-07-01 06:35:36

1

主题

24

回帖

1422

积分

金牌会员

积分
1422
发表于 2023-11-20 10:27:19 | 显示全部楼层 |阅读模式
本帖最后由 盘龙电子 于 2023-12-15 15:47 编辑

第一集  了解单片机   单片机是一种集成度很高的微处理器系统,具有强大的计算和控制能力,它由中央处理器、存储器、输入/输出接口和定时/计数器等组成。各个行业都在使用单片机。单片机已经进入各个行业 甚至千家万户,只是有些人还不知道。比如 智能家居,遥控玩具车等等。

       传统8051单片机的特点:
         (1)8051单片机中存在用于标准核心总线宽度的8位。
         (2)它的速度是每个机器周期12个时钟周期。
         (3)使用UART、USART、I2C、SPI、通信协议。
         (4)Flash、ROM、SRAM存储器用于8051单片机。
         (5)它基于CISC指令集架构。
         (6)8051单片机是基于哈佛的架构,但它允许我们连接外部存储器并模拟冯诺依曼的架构。
         (7)8051单片机的功耗是平均的。
         (8)它的成员包括8051变体。
         (9)与提供的功能相比,8051单片机的成本非常低。

         ARM单片机的特点:
         (1)大多数32位总线宽度存在于ARM单片机中,也有64位可用。
         (2)它的速度是每个机器周期1个时钟周期。
         (3)使用UART、USART、以太网、I2S、DSP、SPI、CAN、LIN、I2C通信协议。
         (4)Flash、EEPROM、SDRAM存储器用于ARM单片机。
         (5)它基于RISC指令集架构。
         (6)PIC单片机基于哈佛架构。
         (7)ARM单片机功耗低。
         (8)其系列包括ARMv4、5、6、7和cortex系列。
         (9)与提供的功能相比,ARM单片机的成本较低。

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:315
  • 最近打卡:2025-07-01 06:35:36

1

主题

24

回帖

1422

积分

金牌会员

积分
1422
发表于 2023-11-21 07:10:49 | 显示全部楼层
本帖最后由 盘龙电子 于 2023-12-15 15:53 编辑

STC8系列速度快,资源丰富。对于IO口可设置为准双向,比如可通过对P0M0和P0M1进行设置进行IO口的设置,再对io口进行输入输出的判断。对于学习单片机,需要掌握常用电子元件的使用,熟悉元件性质,在日常学习中学习到编程与硬件设计。通过掌握led灯、数码管、定时器、中断、串口、外部中断来学习一款单片机,通过做项目来深化所学知识,比如做个循迹车。运用串口调试助手、逻辑分析仪来熟悉所学知识。不仅要懂得C语言编程知识,还要学习电路设计。汇编可以理解程序运行,改善运行效率。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:315
  • 最近打卡:2025-07-01 06:35:36

1

主题

24

回帖

1422

积分

金牌会员

积分
1422
发表于 2023-11-22 20:40:48 | 显示全部楼层
本帖最后由 盘龙电子 于 2023-12-15 16:04 编辑


工欲善其事,必先利其器
    内容:开发环境搭建和程序下载
    1、STC-ISP:所有STC的单片机下载工具(官网下载最新版即可);
    2、STC32手册:工具书;
    3、PDF阅读器:WPS、福昕(自己选用起来舒服的);
    4、C251:还是keil,正常安装就行;
    讲解工具的安装和使用技巧,适合自己的就是最棒的;

单片机程序设计语言分为4种1.高级语言2.汇编语言 3.机器指令4.微指令  keil的第一次使用 如何编程。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-07-01 08:26:02

741

主题

1万

回帖

1万

积分

管理员

积分
17304
发表于 2023-11-22 20:49:33 | 显示全部楼层
发表认真学习的学习心得,帮初学者一起前进
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:315
  • 最近打卡:2025-07-01 06:35:36

1

主题

24

回帖

1422

积分

金牌会员

积分
1422
发表于 2023-11-23 07:55:26 | 显示全部楼层
本帖最后由 盘龙电子 于 2023-12-15 16:06 编辑

建立工程点亮一颗LED上
    1、LED点亮原理
            ① 了解基本硬件电路,GPIO的概念(传统单片机的IO口);
    2、新建工程
            ① 跟着手册创建工程,敲完这个工程,你会发现各种意想不到的状况(标点符号、大小写、单词),没有试验箱一样收获多多;   
    3、 点亮第一个LED
            ① 举一反三,拓展思维(其实宏定义是个好东西);
            ② SFR寄存器的引入(操作内容后期慢慢分解);
    例:
    /*Demo:点灯*/
    //------------------------------------------------------------------------------------------------
    sfr P0        =        0x80;        //P0口设置
    sfr P0M1   =        0x93;      
    sfr P0M0    =        0x94;

    sfr P4        =        0xC0;      //P4口设置
    sfr P4M1   =        0xB3;      
    sfr P4M0    =        0xB4;

    sfr P6        =        0xE8;       //P6口设置
    sfr P6M1   =        0xC8;      
    sfr P6M0    =        0xCC;

    sbit P40     =        P4^0;     //三极管控制引脚
    sbit P60     =        P6^0;     //LED控制引脚

    void main()
    {
        P0M0 = 0x00;                //准双向模式
        P0M1 = 0x00;

        P4M0 = 0x00;
        P4M1 = 0x00;

        P6M0 = 0x00;
        P6M1 = 0x00;

        while(1)                         //大循环
        {
            //P0++;
           P40 = 0;
           P60 = 0;
        }
    }         
    //------------------------------------------------------------------------------------------------
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:315
  • 最近打卡:2025-07-01 06:35:36

1

主题

24

回帖

1422

积分

金牌会员

积分
1422
发表于 2023-11-23 07:56:15 | 显示全部楼层
本帖最后由 盘龙电子 于 2023-12-15 16:06 编辑
LED闪烁和花式点灯上
    硬件:STC大学计划实验箱-V9.6(多了一个示波器试验)、软件和手册官网都更新了
    #define MAIN_Fosc 24000000UL          //IRC系统时钟,方便后期修改(宏定义的小技巧)
    1、基于Delay实现的LED闪烁;
            ① void delay_ms(u16 ms)               //延迟多少毫秒,注意使用时的一个小弊端
                {
                    u16 i;
                    do
                    {
                        i = Main_Fosc/6000;
                        while(--i);
                    }
                    while(--ms);
                }   
               拓展:do while、for,都可以做延迟,STC_ISP下载器提供有样例;
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:315
  • 最近打卡:2025-07-01 06:35:36

1

主题

24

回帖

1422

积分

金牌会员

积分
1422
发表于 2023-11-24 15:02:55 | 显示全部楼层
本帖最后由 盘龙电子 于 2023-12-15 16:07 编辑

stc32g 的封装类型及引脚定义 这个必须要掌握好  涉及到后面的电路图设计 及外设电路设计
未标题-2 拷贝.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:315
  • 最近打卡:2025-07-01 06:35:36

1

主题

24

回帖

1422

积分

金牌会员

积分
1422
发表于 2023-11-25 19:26:53 | 显示全部楼层
本帖最后由 盘龙电子 于 2023-12-14 10:26 编辑

点亮一颗LED,基本要素为通路,有高低电平,1为高电平,0为低电平。I/O全名为GPIO即通用输入输出端口的简称,可以通过软件来读取其输入电平或者控制它输出高低电平。之后讲的是利用软件建立工程,在keil软件下编辑完代码以后,将.hex文件成功创建完毕之后会出现编译完成,自动创建,而这个.hex文件包含了我们书写代码的一个产物,我们最终就是将这个.hex文件下载到芯片中。没有实验箱 用其他型号的编程器实验呢。
203912eqjqhv8u4jjapuu2.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:315
  • 最近打卡:2025-07-01 06:35:36

1

主题

24

回帖

1422

积分

金牌会员

积分
1422
发表于 2023-11-29 08:11:51 | 显示全部楼层
本帖最后由 盘龙电子 于 2023-12-15 16:07 编辑

按键的原理、按键的代码实现过程;按键的应用、数组的应用;认识蜂鸣器的功能、控制原理、蜂鸣器应用。
按键本质上是两个引脚之间的通断,按下之后有的是导通,有的是断开。机械开关在按下时有抖动,抖动的时间一般是10ms,经典按键操作,按键消抖,确实经典。不消抖,当按键按下时,比如点灯,不亚于抛骰子猜大小。
判断按键有没有按下,==两个等号表示判断。
if(引脚==0){}
运用取反的操作,~,来点灯,每一次按下的状态都与上次相反,上次是亮,下次就是灭。
判断按键的弹开。
while(引脚==0);
当按键按下时,该引脚检测到的信号一直是低电平,所以程序会在这里等待到按键弹开,即引脚变为高电平时,程序继续执行

用按键按下来实现,流水灯的效果。
数组定义:
数据类型 名称[长度 ]={数值};
使用
  赋值:名称[ 索引]= 数值
索引就是由0往上的正整数值。
用数组来实现流水灯效果。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:315
  • 最近打卡:2025-07-01 06:35:36

1

主题

24

回帖

1422

积分

金牌会员

积分
1422
发表于 2023-11-30 20:30:30 | 显示全部楼层
本帖最后由 盘龙电子 于 2023-12-15 16:08 编辑


按键点灯上
    作业分析:
         void SOS_Led(void);  //三长两短LED闪烁
         用延迟函数实现,对P60亮灭200(和500)毫秒得延迟实现,可自行调整参数观察显示效果
    1、按键的原理;
          机械按键:自身特性,导致触电断开、闭合时据不完全统计会有5-10毫秒的接触不良(需要做按键消抖处理);
          思考:机械方面是否能解决呢?
    2、按键的代码实现过程(KEY按需宏定义需要控制的引脚);
          if(KEY == 0)                           if(KEY == 0)
          {                                             {
              Delay_ms(10);                         Delay_ms(10);
              if(KEY == 0)                            if(KEY == 0)
              {                                              {
                  执行功能;                                 while(KEY == 0)
              }                                                     执行功能;
          }                                                   }
                                                          }
         做好CV工程师;
    3、按键的应用
         按键的各种玩法:
         按下LED点亮,松开熄灭;                      //消抖,判断按键是否按下
         按下LED熄灭,松开点亮;                      //同上,反过来
         按键按下一次,LED状态改变一次;        //消抖,判断按键是否按下,取反
了解数码管动态刷新和控制原理,8位数码管同时点亮,要学会每一位数码管的任意内容的显示  根据蜂鸣器内有无震荡源,分有源蜂鸣器和无源蜂鸣器。通过按键控制蜂鸣器响起来,在程序中和按键控制LED灯的亮灭原理一样,改变一下引脚就行。

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-7-1 23:38 , Processed in 0.141369 second(s), 94 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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