找回密码
 立即注册
楼主: ly1350

《USB型 1T 8051 单片机原理及应用-STC8H8K64U》陈桂友教授学习心得(学习打卡完成)

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-07 00:54:31
已绑定手机

20

主题

329

回帖

1692

积分

金牌会员

积分
1692
发表于 2024-1-29 16:04:34 | 显示全部楼层
第11节终于进入自己曾经接触过的C语音。C51对ANSI C扩展了sbit、sfr、sfr16数据类型。
bit不能定义指正、数组。位用“^”符号。
sfr、sfr16特殊功能寄存器的定义已经在stc8h.h头文件中,编程时包含进程序中即可运用。
可以用code将常数定义到程序存储区来节省内部ram。
内部ram用data、idata和bdata定义。
外部ram用xdata、pdata定义。
keil的c51指针
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-07 00:54:31
已绑定手机

20

主题

329

回帖

1692

积分

金牌会员

积分
1692
发表于 2024-1-29 20:18:14 | 显示全部楼层
第12节,讲解了C程序设计实例。第一个例子,输出周期1s的方波,点亮LED。分析了强制指定存储类型的好处。
EEPROM基本操作。详细讲解IAP EEPROM操作。
这个单片机能够通过IAP EEPROM对数据进行掉电保存。以前的STC 89C52等如果要保存数据,必须通过I2c总线读写外部存储芯片(at24c02等)来实现的。这相当于把存储芯片整合进单片机里了。这大大简化了外围电路,使用也更加方便!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-07 00:54:31
已绑定手机

20

主题

329

回帖

1692

积分

金牌会员

积分
1692
发表于 2024-1-29 21:11:24 | 显示全部楼层
第13节:讲解中断。中断的概念:暂停正在执行的程序,去处理中断的事项,完了返回原来执行的程序继续执行。
请求中断的来源称为中断源;
cpu暂停当前程序,去处理中断请求,称为中断响应;
处理中断事项的过程称为中断服务(对应中断处理函数);
处理完中断事项,回去继续执行原来进行的程序,称为中断返回;
中断服务函数由硬件触发,不能调用;无返回值;无参数;
中断优先级/嵌套;
中断提高了效率和灵活性:1、匹配慢速外设。2、及时处理控制系统的随机事项;3、处理故障,提高系统可靠性。
中断与子程序调用的区别:1、中断是随机产生的,子程序是预设的。2、中断既保护断点,又保护现场(返回后要继续执行),子程序只保护断点。3、中断为外设和各种事件处理服务,子程序只为调用它的程序服务(与外设无关)。
中断的开关通过设置相关的特殊功能寄存器实现。
中断的保护现场和恢复用堆栈实现。
堆栈的操作是后进先出。
中断撤出:对应的操作是清除中断标志,由硬件自动清除或手动编程清除。
stc8h8k64u的中断:有44个中断源。5个外部中断,5个定时器中断,4个串口中断,1个串行外设中断,1个I2C中断等等,可见比传统8051的中断多了很多。
stc8h8k64u中断控制寄存器讲解。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-07 00:54:31
已绑定手机

20

主题

329

回帖

1692

积分

金牌会员

积分
1692
发表于 2024-1-29 21:34:26 | 显示全部楼层
本帖最后由 ly1350 于 2024-1-29 21:39 编辑

截图202401292135139580.jpg

红圈的位置的“为主程序服务”建议改为”为调用它的程序”服务,用于区别C中的main函数。因为主程序(main函数)可以调用子函数,子函数也可以调用另外一个子程序,
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-07 00:54:31
已绑定手机

20

主题

329

回帖

1692

积分

金牌会员

积分
1692
发表于 2024-1-29 23:55:22 | 显示全部楼层
第14节,继续讲解中断。
中断标志位:硬件或软件清零,等待下次中断;
IE:中断允许控制寄存器。与8051的IE不同的是多了ELVD(第7位)和EADC(第6位),因为8051
      无DAC和低压检测。其它位基本相同。
中断优先级:stc8h8k64u的中断优先级有4级,而8051只有2级。
中断处理过程:1、响应中断的条件:有中断请求、请求的中断被允许(控制寄存器相关位为1)、总中断(EA=1)允许,3个条件要同时满足。
2、中断处理过程:根据相应的中断优先级,执行完当前指令后处理:保存当前程序状态,压堆栈;处理中断;返回,出栈。
3、中断优先级处理原则:不同优先级同时申请,先高后低;处理低优先级时有高优先级请求,暂停低优先级去处理高优先级的请求,完成后继续执行原来暂停的中断;处理高优先级时有低优先级请求,忽略低级的请求,完成当前的中断后,处理低价的请求;同级同时申请时,根据中断查询号确定先后。
讨论了可能会丢中断的情形。
不执行中断的情况:1、中断控制位设置为0
                          2、正在处理同级或高级的中断
                         3、当前指令还未完成(等待当前指令的最后一个机器周期)
                       
中断服务程序:     程序从入口地址开始执行
       中断服务的4个部分:保护现场、中断服务、恢复现场、中断返回
      注意事项:1、中断服务程序要尽量短、高效
                      2、中断响应后不会关闭中断系统,如果处理中断过程不允许被打断,要在中
                           断服务程序中关闭中断
                      3、保护和恢复现场前,要先关闭中断。
       中断撤出:硬件自动清除或手工清除中断标志位。
中断运用例子讲解。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-07 00:54:31
已绑定手机

20

主题

329

回帖

1692

积分

金牌会员

积分
1692
发表于 2024-1-30 01:30:54 | 显示全部楼层
第15节讲解计时器/计数器。定时器、计数器的运用非常广泛。
STC8H8K64U内部集成了5个16的定时器/计数器(T0-T4)。作用:定时控制、用作分频器和计数、用作输出时钟、用作串口波特率发生器。
定时器/计数器的结构:核心就是加1计数器,对内部或外部输入的脉冲计数。
STC8H8K64U的5个16的定时器/计数器中的每一个定时器/计数器由两个8位的特殊功能寄存器THn和TLn组成。
作为计时器使用时,可以选择是否对脉冲源进行12分频。不分频的计时速度快,精度比分频的高。
T0、T1工作模式设定:T0、T1通过TMOD设定。(T0有4种模式,T1无模式3)
T2的工作模式由AUXR设定,只有16位自动重装1种工作模式。
TCON控制T0、T1
AUXR用来设置T0、T1是否12分频;T2的功能
INTCLKO控制时钟输出。
T4T3M设置定时器T3、T4。
TM2PS、TM3PS、TM4PS为T2、T3、T4的时钟预分频器
                     
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-07 00:54:31
已绑定手机

20

主题

329

回帖

1692

积分

金牌会员

积分
1692
发表于 2024-1-30 09:20:46 | 显示全部楼层
第16节讲解定时器的应用。定时器的量程:定时器的最大定时能力。根据系统工作频率和是否进行12分屏可以计算出最大计时能力。
通过装入不同的计数起始值,得到不同定时。
定时量程的扩展:可以通过硬件和软件扩展量程。STC8H8K64U可以通过5个定时器串联扩展。
常用软件扩展:对定时中断计数,用中断次数X每次中断的计时值就能得到相应的定时时间。
定时器运用的要点:1、正确初始化 。2、编写中断函数。
定时器初始化步骤:1、设置工作方式(设置TMOD)
                            2、装初值(设置TLn,THn)
                             3、启动定时器(设置TRn)
                             4、允许定时器中断(设置ETn)
                             5、开cpu总中断(设置EA)
运用举例
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-07 00:54:31
已绑定手机

20

主题

329

回帖

1692

积分

金牌会员

积分
1692
发表于 2024-1-30 11:26:28 | 显示全部楼层
第17节,讲解串行通讯。STC8H8K64U集成了4个UART、1个ISP、1个I2C和1个usb共7个通讯端口。
两种通信方式:并行和串行。串行通信发送数据一般是从低位开始发送。并行速度快,传输距离短;串行速度慢,距离远。rs232单线传输,传输15米以内,rs485双线传输,可达1千米。
串行通信分类:按同步分为同步和异步。
        异步通信的格式,数据从低位开始传输。异步通信传输要点:1、 约定字符格式。2、通信 速率(波特率)。通信速度越快,距离越短。(电磁干扰,传输不稳定)。寄偶校验。
        同步通信:通信效率高,线路复杂。
         按传输方向分:单工、半双工、全双工。
串行接口:通过串行-并行转换实现(UART)计算机内部并行数据与外界串行传输。可以用软件和硬件实现,目前用硬件实现。
硬件UART的结构:数据总线、控制总线和中断构成。
UART同步过程:通过外部时钟同步。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-07 00:54:31
已绑定手机

20

主题

329

回帖

1692

积分

金牌会员

积分
1692
发表于 2024-1-30 13:30:29 | 显示全部楼层
第18节,继续讲解串口通信。STC8H8K64U有4个UART。每个串口由一个发送缓冲器、一个接收缓冲器、一个位移寄存器、一个控制寄存器和一个波特率发生器构成。
发送和缓冲器物理独立,但是公用同一地址(SBUF)。发送缓冲器只能写,接受缓冲器只能读。
串口1有四种工作方式(SCON设置);串口2、3、4只有2种工作方式(S2CON设置)。通过设置相应的特殊功能寄存器,可以对引脚进行切换,方便布线和分时复用。
介绍了与串口相关的寄存器。SCON不能位操作。
多机通信:1、中、从机均设置为模式2或者3,SM=1,开中断。
            2、主机TB8=1,发送通信目标地址(从机地址)。
       3、所有从机接收主机发送的通信地址,进行比较。
     4、被寻址的从机确认地址,本机的SM2=0,可向主机发送本机地址供确认。
    5、核对后,主机向从机发命令,进行数据交换
   6、通信只能在主机与从机间进行,从机与从机通信要经过主机中转
  7、通信结束,主、从机将SM=0.
   实际运用中,用RS485标准
串口2控制寄存器S2CON。串口3控制寄存器S3CON。串口4控制寄存器S4CON。
掉电控制寄存器PCON
辅助寄存器AUXR
从机地址控制寄存器SADEN、SADDR
数据缓冲器SBUF
STC8H8K64U的串口工作模式
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-07 00:54:31
已绑定手机

20

主题

329

回帖

1692

积分

金牌会员

积分
1692
发表于 2024-1-30 16:32:08 | 显示全部楼层
第19节讲串口通信运用。
1、串口1的波特率设定。常用模式1和3,波特率可变。定时器作为波特率发生器时,要禁止其产生中断。
2、串口2-4的波特率设定。
3、STC-ISP提供的波特率计算工具的使用。
UART接口运用举例
    编程时,可以用查询和中断两种方式通信,建议用中断方式,提高实时性
   串口1 的编程要点:1、设置工作模式(SCON)  2、设置波特率 3、设置中断优先级(PS)
         4、发送数据时,将数据写入SBUF;接收数据,将数据从SBUF读出
        5、编写中断服务程序,清除中断标准(T1,R1)
串口2编程要点:要先设置与串口相关的IO口设置(准双向口),其余与串口1相似。设置S2CON、PS2、S2BUF。
运用举例:1、两个单片机之间通信。
                2、多机通信
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 03:23 , Processed in 0.120977 second(s), 99 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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