找回密码
 立即注册
查看: 226|回复: 0

STC的学习心得

[复制链接]
  • TA的每日心情
    慵懒
    2024-3-4 10:20
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    1

    主题

    11

    回帖

    41

    积分

    新手上路

    积分
    41
    发表于 2024-2-25 17:10:23 | 显示全部楼层 |阅读模式
    第一章:
    单片机初稿
    什么是单片机:以硅晶圆为基底发展的高度集成可控制芯片。
    单片机位数指的提升指的是IO口的提升吗?
    第二章:
    1,NTC测温与18B20测温的区别
    NTC测温输出的是模拟量电压,18B20测温产生的是一个数字量输出电压
    2,ADC按键的工作原理是什么?
    基准电压应当是用于区分高电平有效和低电平有效的一个“门槛电压”在众多教材中常见的值为1.2V(低电平有效)和3.3V(高电平有效),老师为了便于理解改为“0V与5V”?
    线性电压的定义应该是指一个模拟量的函数曲线图,属于一个连续的值,其表达式为f(x)而ADC自然是以5/4096为精度单位的数字量?
    3,基准电压本质上是地线
    4,24c02,是一颗外部存储芯片,可用于存储用户数据等信息,在正常工作状态下是否有类似于电脑内存条一样的属性?(指快速,高效的与芯片通讯)
    第三章:
    软件下站指引
    第四章:
    1,GPIO(generalpurpose input output)
    2,P(引脚)使用规则,P实际为一八位引脚用数字电路的表达形式为p[0..7],我们可以直接操作以整排引脚,也可以细分操作引脚下的“八位数字引脚”
    3,熟练使用阅读器翻阅资料
    4,新建工程-导入程序
    5,用于控制单独引脚的程序:sbit P00=p0^0//选择P0.0引脚
    C51中sbit/sfr用法分析
    1 首先区分bit 和sbit
    bit和int char之类的差不多,只不过char=8位, bit=1位而已。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值,意义有点像Windows下VC中的BOOL。
    sbit是对应可位寻址空间的一个位,可位寻址区:20H~2FH。一旦用了sbi xxx= REGE^6这样的定义,这个sbit量就确定地址了。sbit大部分是用在寄存器中的,方便对寄存器的某位进行操作的。
    sbit的用法有三种:
      第一种方法:sbit 位变量名=地址值
      第二种方法:sbit 位变量名=SFR名称^变量位地址值
      第三种方法:sbit 位变量名=SFR地址值^变量位地址值
    如定义PSW中的OV可以用以下三种方法:
    sbit OV=0xd2 (1)说明:0xd2是OV的位地址值
    sbit OV=PSW^2 (2)说明:其中PSW必须先用sfr定义好
    sbit OV=0xD0^2 (3)说明:0xD0就是PSW的地址值
      因此这里用sfr P1_0=P1^0;就是定义用符号P1_0来表示P1.0引脚,如果你愿意也可以起P10一类的名字,只要下面程序中也随之更改就行了。
    注意:"^"实质代表的是异或运算,可以算一下,恰好符合。
    2.Sfr用法
    sfr 似乎不是标准C 语言的关键字,而是Keil 为能直接访问80C51 中的SFR而提供了一个新的关键词,其用法是:sfrt 变量名=地址值。
    file:///C:/Users/%E7%8E%8B%E6%A2%93%E4%BA%A6/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png
    例:sfr P1 = 0x90;
    这样的一行即定义P1 与地址0x90 对应,P1 口的地址就是0x90.
    读者认为上述使用sfr的本质上与申明变量的性质相同,都是在给一个系统内部的地址命名以方便指挥系统调用(与申明变量相同都是在命名)
    SFR的定义在头文件reg51.h或reg52.h中。
    第五章(4.2):
    1,二次下载需按键恢复下载or自动下载工程
    2,根据教程设置自动下载程序
    调用两个库函数:
    Include”stc.h”
    Include”usb.h”
    第六章与第七章(5.1-5.2)
           1,C语言printf的使用方法
           2,通过STC与单片机进行交互
           3,采用文本模式将两位16进制码翻译成文本
           4,进制与进制转换关系
    第八章(6.1)
           1,函数的使用(定义、声明、调用)
    在模块化编程里,函数使用分为如下三步:1:函数定义
    返回值·函数名称( 入口参数 )
    {函数要执行的功能}
    @返回值:没有返回值就是void
    @函数名称:避开关键词,不重复,非特殊字符随便取
    @入口参数:类型+名称,
    多个参数“,”分开,空就写void2.函数声明
    第九章(7)
    1.按键抖动
    A按键抖动·是由机械结构产生
    B可用延时函数加二次采样引脚数据来去除抖动的影响,但是按键抖动难以消除
    2.将引脚定义为输入引脚(定义成按钮)
           #defineKEY(或者其他方式字符) P32
    第十章(8)
    1、有源蜂鸣器内部带震荡源,所以只要一通电就会叫,而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。
    2、价格不同,有源蜂鸣器要比无源蜂鸣器贵,贵在里面多了震荡源。
    3.本质上蜂鸣器的使用方法与LED灯相同
    第十一章(9)(翻译为多组发光二极管的使用)
    1,按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管
    2, 尾缀A表示共阳,K表示共阴
    3, 市面上很多多位数码管芯片可以接收二进制字符串显示数字,这是怎么做到的?
    第十二章(10)
    1注意每个延时不能太短,我们这边程序就以1ms为准,且需要保证总共一个循环结束的时间不能大于20ms,因为人眼的视觉不容易分辨出50HZ以上的动态刷新
    file:///C:/Users/%E7%8E%8B%E6%A2%93%E4%BA%A6/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
    第十三章(11)
    1.参考文献
    普通定时函数在程序里会被按键等其他操作打断

    回复 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-6-17 21:15 , Processed in 0.062557 second(s), 29 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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