找回密码
 立即注册
楼主: Ostri***

【实验箱已送】【跟着冲哥学32位8051】学习日记

[复制链接]
  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    1

    主题

    59

    回帖

    877

    积分

    高级会员

    积分
    877
     楼主| 发表于 2023-7-13 02:18:06 | 显示全部楼层
    【打卡】【第十六集:IO中断】

    1: STC32G系列单片机,支持所有的IO中断,并且支持4种模式和优先级设置
    2: 涉及的寄存器有端口中断配置寄存器和端口中断使能寄存器
    3: Keil不支持31号以上的中断,我们可以使用保留的13号中断,
       更简单的方法是使用中断号扩展工具
       可以在STC官网上下载这个工具
    4: 中断程序里面是不能加延时的,教程中只是为了展示,
       实际编程时不能这样设计
    5: 在IO中断回调函数中,必须通过程序清空中断标志位
       否则这个标志位的状态将一直存在
    6: 如果程序中不希望一个中断被另一个中断打断,则可以使用中断优先级解决
    7: IO中断中,需要判断究竟是哪一位发生了中断
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    1

    主题

    59

    回帖

    877

    积分

    高级会员

    积分
    877
     楼主| 发表于 2023-7-14 02:48:01 | 显示全部楼层
    本帖最后由 STC爱好者 于 2023-8-17 10:10 编辑

    感谢STC,已经收到【免费】【包邮】的STC试验箱。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    1

    主题

    59

    回帖

    877

    积分

    高级会员

    积分
    877
     楼主| 发表于 2023-7-14 02:49:32 | 显示全部楼层
    【打卡】【第十七集:模数转换器ADC上】


    1: 模数转换器的原理,是把目标电压和各个位对应的基准电压的和不断比较,
       进行判断的。
    2: 模数转换的精度,其实就是比较的次数,一般应用12-16位就足够了,
       更精确的精度没有太大意义,因为随便一个干扰就能突破最小值,
       教程中说的是吹口气,我的理解是各种无线电,以及电路的电阻、氧化之类。
    3: STC32G内置12位AD转换器,能把电压判断到1/4096的精度
    4:使用ADC时有Vref的引脚绝对不能悬空,必须外接基准电压
    5:STC的15通道是测量内部1.19V基准电压的通道
       但内部的1.19V电压存在1%的偏差,不过可以通过外部基准电压进行校正。
    6:ADC使用牵涉到5个寄存器,其中ADC_POWER用于开关ADC部件,ADC_START用于启动采样,
       以及等待采样完成。ADC_FLAG用于提示转换完成,这一点上与ADC_START类似。
    7:ADC存在16个通道,但其中15号通道被内部基准电压占用,因此可以使用的是剩余的15个通道,
       分别对应单片机的15个引脚,只有这15个引脚拥有ADC功能。
       对于STC32G来说,是P0的8个和P1的7个引脚。

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    1

    主题

    59

    回帖

    877

    积分

    高级会员

    积分
    877
     楼主| 发表于 2023-7-16 02:36:42 | 显示全部楼层
    【打卡】【第十七集:模数转换器ADC下】

    1:_nop_()表示空指令,也就是让CPU耽误1个周期的时间
    2:使用adc采集电平时,需要使用_nop_()和while等待采集完成,才能进行读取
    3:可以通过ADC_FLAG判断是否采集完成
    4:ADC_RES和ADC_RESL分别表示采集到的数据的高8位和低8位
       将它们组合起来就是最终的值。
    5: 试验箱中16个按键,每个按键都对应一个ADC的数值
       并且带了一个2.5V的高精度电压源作为ADC的基准电压
    6:可以用比例乘除出ADC数值对应的电压值
    7:可以使用ADC中断在采样后直接进入中断进行赋值处理,以避免在主程序中等待
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    1

    主题

    59

    回帖

    877

    积分

    高级会员

    积分
    877
     楼主| 发表于 2023-7-20 00:10:27 | 显示全部楼层
    【打卡】【第十八集:ADC采集电源电压和ADC按键】
    1:如果使用外部电压作为基准电压,那么测量外部电压则永远是最大采样值。
       因此如果需要测量外部电压,则需要一个额外的基准源,并且这个基准源电压需要大于外部电压。
       在电路上这个不容易实现,因此STC使用了一个反向的方法,就是使用外部电压作为基准源,
       去采样一个内部固定的1.19V电压,这样采样出的值会对受到外部电压的影响,
       也就可以反推外部电压。
    2:测量电源电压时,前两次数据需要丢弃,否则由于开机时候的电压抖动,
       会造成测量不准。
    3:校准后的电源电压,在一定时间内基本稳定,于是可以用来干其他的事情,
       比如读取ADC按键。
    4:实验板上的16个按键,按下时对应的电压平均分布,各差256个读数。
    5:为适应电压的范围,在采样时,可以使用正负64的误差范围。
    6:判断ADC按键时,可以不使用一堆if,而是使用for循环,知道检测到电压在指定范围的按键。
       不过使用(adc + 128) / 256看起来更简单。
    7:连续触发按键类似电脑键盘上按键的功能,刚在第一次按下时反应一次,然后隔一段时间后,
       进行连击。
    8:连续触发按键有很多作用,比如仪器或电子表中,需要大量调整一个值时,可以避免人反复按一个按钮。
    9:演示程序中,每隔0.1秒检测一次按键,在按键时记录时间,分别在第一次转换按键,和30次计数后返回按键值,
       就能实现连续触发按键。
    10:使用所学的知识,很容易就能实现一个基于单片机的简易时钟,并包含半小时响铃功能。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    1

    主题

    59

    回帖

    877

    积分

    高级会员

    积分
    877
     楼主| 发表于 2023-7-21 01:43:27 | 显示全部楼层
    【打卡】【第十九集:NTC温度采集】
    1:NTC可以看成是一个电阻,但它的阻值随温度上升呈指数形下降
    2:NTC有多种封装,如贴片、管脚、以及连在一体导线末端的。
       以适用多种场景。
    3:NTC的阻值与RT0、T0、Bn有关,Rt0与T0指的是任意一个温度下的阻值,
       Bn与NTC的材料有关,Bn越大,NTC的阻值随温度的变化越明显,但测量范围也越窄。
    4:使用NTC测量温度时,一般使用一个固定阻值的电阻进行分压,这样测量中间点的电压,
       就对应了电阻的阻值。
    5:使用NTC测温时,可以先用excel等工具,计算出每摄氏度对应的读数,然后做成数组放到程序里。
    6:程序可以使用循环去获取ADC读数所对应的温度
    7:在两个读数之间的数值,可以使用线性方法,计算出对应的温度
       虽然NTC的阻值随温度不是线性关系,但在小范围内,可以看作近似线性。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    1

    主题

    59

    回帖

    877

    积分

    高级会员

    积分
    877
     楼主| 发表于 2023-7-26 00:25:30 | 显示全部楼层
    【打卡】【第二十集:串口通信上】
    1:通信指的是设备之间通过协议进行信息交换
    2:单片机的通信,一般分为串行通信和并行通信,主要区别在于所有比特的数据是一起发出去,
       还是依次发出去,串口通信属于串行通信。
    3:STC32G单盘机有2个同步串口(USART)和两个异步串口(UART)
    4:异步串口通信时,数据是以字节为单位发送和接收的,每个字节有起始位和停止位,
       因此字节之间的间隔可以任意长,并且由于字节传输的时间很短,因此两端设备的速率可以小范围偏差。
       同步通信时,数据以块为单位发送,不存在字节之间的停止时间,也不存在字节之间起始和停止位,
       效率更高。因为一次性发的数据较多,因此波特率需要严格相同,一般使用同步时钟。
    5:串口分为全双工、半双工和单工。
    6:串口通信,需要双方的波特率、数据位、停止位、校验位保持一致
    7:STC32G的4个串口,都可以设置多组引脚。串口1可以设置4组引脚,串口2-4可以设置2组引脚,
       通过不同组的引脚,可以实现串口扩展。
    8:可以通过SCON寄存器选择串口的模式
    9:串口的波特率其实使用单片机内部的定时器产生
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    1

    主题

    59

    回帖

    877

    积分

    高级会员

    积分
    877
     楼主| 发表于 2023-8-1 20:09:01 | 显示全部楼层
    【打卡】【第二十集:串口通信下】
    1: 调试串口时需要使用串口线连接电脑与开发板,
       目前新电脑的串口功能基本上已经淘汰了,因此需要一根USB转串口线,
       来为电脑增加串口功能。
    2: STC-ISP的串口助手功能,可以指定一个串口设备,进行数据的读写
    3: 其实也可以使用putty等工具完成同样的串口操作,但使用STC-ISP内置的功能更简单,
       可以避免在不同软件之间切换。
    4: STC-ISP串口助手中的HEX模式的输出其实也是串口的内容,
       以HEX显示的坏处是不容易看出文本内容,需要进行ASCII的转换,
       好处是可以显示出那些无法显示的文本字符。
    5: 串口程序涉及到串口初始化、定时器初始化,中断、状态判断、函数调用等很多步骤,
       但STC32G的DEMO程序中有串口1~串口4的示例程序,能为开发节省很多工作量。
    6: STC32G的定时器2有一个强大的功能,就是一个定时器能为4个串口同时提供时钟。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    1

    主题

    59

    回帖

    877

    积分

    高级会员

    积分
    877
     楼主| 发表于 2023-8-17 09:47:30 | 显示全部楼层
    【打卡】【第二十一集:串口应用上】
    1: 单片机串口输出的是TTL电平,高电平代表1,低电平代表0,
       高电平由单片机的电压决定,低电平总是0V。
    2: STC USB Link1D可以为电脑增加TTL串口功能,另外STC的一箭双雕之USB转双串口模块,
       可以提供2组TTL接口。
    3: STC试验箱上的串口插头,接出来了2组串口,对应芯片P5.0、P5.1、P46、P47。
    4: 9.4和9.6试验箱的串口插头位置不同,但使用方法相同。
    5: TTL与TTL连接即可实现串口通信,但如果距离比较长的话,可以在两端同时添加TTL转232的电路,
       通过RS232进行通信。
    6: 一般开发项目,首先选择从STC官方提供的示例代码进行移植,这些代码经过丰富的调试,
       稳定性比自己的代码要好,只要精简掉不需要的部分就可以了。
    7: 官方的头文件一直在升级,因此开发的时候,需要去更新到最新的头文件。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-13 11:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    3

    主题

    339

    回帖

    1667

    积分

    版主

    积分
    1667
    发表于 2023-8-17 10:11:48 | 显示全部楼层
    USB大型实战技术研讨会0基础到USB高级应用本周六速成USB专家
    腾讯会议号:885-5858-2739, 8/19上午, 不要错过成为USB高手的机会
    ===现已发布提前预习的视频,冲哥重披战袍,STC-USB军团 周六 远航 !
    1,USB-CDC虚拟串口/就是串口, USB双串口
    2,  USB-HID, 【鼠标+键盘】的 USB-HID 复合设备
    3,USB Mass Storage Class, 做U盘
    4,  WINUSB
    5,STC-ISP  |  STC调试接口
         串口绘图
    6,STC-ISP | 串口助手 的高级应用



    本周六上午, USB大型实战技术研讨会,2023/8/19上午! 现已有提前预习的视频 - USB:USB-CDC虚拟串口/就是串口,一箭双雕之USB转双串口,[鼠标+键盘]的HID复合设备 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

    QQ:2269694595     微信:18106296594
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-21 05:33 , Processed in 0.069199 second(s), 64 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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