晨露 发表于 2024-6-14 15:43:45

本帖最后由 ryj870925 于 2024-6-14 15:54 编辑


2024.06.14 学习第六课
本课继续学习了IO口的工作模式,以及STC中各个IO口的复用功能,老师通过逐条的讲解,将IO口的主要复用功能进行了讲解,并对在IO口实际PCB布局时候的具体应用讲授了自己的经验,例如驱动LED时用拉电流还是灌电流的用法进行了对比讲解。使我能从根本上理解和学习STC单片机的用法。


另外需要提出一点疑问,视频中在讲解至下图时,老师说IO口除了驱动三极管还可以驱动场效应管,在讲解场效应管的管脚时将三极管的C极比作场效应管的栅极(也就是G极)。
根据自己所学,认为三极管B=场效应管G/三极管C=场效应管D/三极管E=场效应管S,所以视频中老师的管脚叫法应该是不正确的。


然后又学习了单片机应用系统的典型构成,以及单片机内部的单片机内核与集成在单片机内的相应存储器的连接关系及访问方式。

最后,学习了STC8H单片机的汇编语言设计,老师也将了,虽然汇编语言现在较少使用,但是个别平台移植以及修改部分老旧程序时仍然会涉及到汇编语言,而且通过学习汇编语言能够从根本上了解单片机本身的工作原理和方式,对C语言的编程也是有较大帮助的。






晨露 发表于 2024-10-28 20:57:40

本帖最后由 ryj870925 于 2024-11-2 21:34 编辑

2024.10.28 学习第七课


本课与上节课末尾相接,继续学习了汇编语言在编程时“头文件的引用”的区别和注意点;汇编中助记符语音和机器代码的关系,并举例说明;各常用操作码的名称及含义;操作数的概念及在程序中的相关说明及错误示例;
学习心得:通过学习本课,学到了汇编中从头文件开始到程序编写中的助记符及操作码和操作数的概念及相关用法,学到了书本上没有的提示,受益匪浅。









2024.11.01-02继续学习剩余第7讲的内容
本次学习了汇编语音中指令的格式与分类,指令格式具体讲述了在汇编环境中指令的符号、标点的使用及注意事项,并同时与C语言编程环境进行对比,以及指令代码的存储格式,指令中符号的约定,真是一点都不愿意落下一个知识点。
后边又讲了寻址及相应的寻址方式,并通过详细的对比和讲解,说明了寻址中容易产生误解的操作地址和相关的操作数等之类的容易出错的地方,受益匪浅。



















晨露 发表于 2024-11-19 21:25:49

本帖最后由 ryj870925 于 2024-11-19 21:32 编辑


2024.11.19
今天学了第8课,数据传送指令,传送指令中还涉及到了直接寻址和间接寻址,陈老师在keil环境中详细演示了寻址过程中各寄存器的状态以及如何去验证自己的程序有没有问题,另外还有就是编译程序时半角和全角符号的注意。后边还讲了程序中的加减乘除等运算。

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   




晨露 发表于 2024-12-26 10:04:35

第九讲,主要学习了汇编语音中位操作及位状态控制指令,已经位地址和位中内容的区分,重点是别弄混淆了。
第二部分是转移指令,老师对转移指令做了演示,并对常用的指令进行了实际应用,使得对此类指令的了解更为清晰。







晨露 发表于 2024-12-26 14:43:27

第十讲,陈老师讲解了汇编语音程序设计的一般步骤和框架,以及汇编语言程序内的循环、调用、查表及跳转相关的知识点。着重讲解了程序段和程序流程图的关联性。学习了本节之后对汇编语言的程序内容、框架和设计有了更为直观的了解。




晨露 发表于 2025-1-14 17:04:51

2025.01.12-14学习了第十一讲



第十一讲
一.a=a+1;   a+=1;等效
二.推荐谭浩强C语言的书
三.C51对ANSI C的扩展
        C51扩展的关键字   _at_、sbit、sfr、bit、xdata、code与变量有关,interrupt与中断函数有关。
        1.变量或数据类型,声明变量不能超出取值范围,sfr、sfr16主要是用于声明特殊功能寄存器。pdata坚决不要使用,尽可能使用xdata。
        2.keil C51指针的重要性
           volatile 告诉编译器不要优化
           interrupt中断

void UART1_ISR(void) interrupt 4
{
/*中断服务程序的代码*/
}

宏定义#define UART1_VECTOR 4

一、关系运算符
        特别注意“==”和“=”的区别











晨露 发表于 2025-1-17 10:38:41

2025.01.14-17学习了第12讲



1.仿真、调试的重要性
2.延时函数声明,void Delay500ms(void);(注意,一定要加“void”和“;”),括号中的VOID,在声明和定义中需要规范写上,在调用时不用写。
        并且讨论了延时函数中指定data和xdata的问题
3.利用芯片仿真的步骤(24:10)
        STC-ISP--“keil仿真设置”---试验板按住“P3.2”不放,再按住“ON/OFF”放开,串口出现“STC-USB Writer(HID1)”
        “keil仿真设置”---“使用USB口进行仿真”---“将所选目标单片机设置为仿真芯片”
        按板上“ON/OFF”芯片重新上电。
        返回“keil软件”点击“魔术棒”,弹出“Options for Target"....."”,点击“Debug”选中下边“use STC Monitor-51 Driver”点击右侧“Settings”,弹出“Target Setup”下选中“USB”,点击OK确认。
        点击“keil软件”上的“debug”图标,进行仿真。(28:10)

4.for函数的写法for(i=0;i<8;i++)
5.LEDdata=0x01;左移(LEDdata<<=1;)8位后1就没了,
        增加if(LEDdata==0)
                LEDdata=0x01;
6.STC单片机中部分Flash可作为EEPROM使用。(37:25) 24C01.93C46
        STCEEPROM的写操作只能将字节中的1写为0,当需要将字节中的0写为1时,必须执行扇区擦除。
7.程序中用到NOP指令时,头函数应包含<#include "intrins.h">
        NOP指令的格式< _nop_(); >





晨露 发表于 2025-1-17 12:58:32

2025.01.17学习第13讲


一、中断
1.中断的概念,中断相关概念:中断源、中断响应、中断服务、中断返回。
2.中断优先级、中断嵌套
3.中断同时发生时高优先级先执行,低优先级的保持时间(讨论,同传统8051单片机不同,STC会同ARM一样挂起,STC响应中断时间-6个时钟)
4.探讨ADC转换和串行通讯的优先级问题,串行通讯优先级高的话会导致ADC转换精度不高,ADC转换优先级高的话会导致串行通讯不稳定。引入单片机DMA功能.
5.自动保护断点的问题。
6.保护现场(寄存器的值)和恢复现场。
        保护现场--堆栈(PUSH),弹出(POP)。非常重要,但没有那么难。
7.堆栈---后进先出
8.中断的撤除----中断本身的撤除;中断请求标志的撤除(自动撤除,指令撤除)(38:00)

二、STC8H8K64U单片机的中断源
1.STC8H8K64U单片机有44个中断源
2.中断源及控制(1:03:16)
3.中断标志位
4.定时器中断和外部中断都可以自动清标志位,串口中断必须手动清标志位。
        全部清S2CON=0X00;如果要保留最高位,只清B1 B0,可以写S2CON&=0XFC;














晨露 发表于 2025-1-17 15:28:31



2025.01.17学习了第14讲

1.中断标志位--电源控制寄存器PCOM(LVDF低电压检测标志位)
                        SPI状态寄存器SPSTAT中的标志位
                        ADC的控制寄存器ADC_CONTR中的标志位
2.中断的开放允许和禁止
3.中断请求标志位在中断开关的前边,所以标志位的状态与中断开关是否打开并无关系。
4.中断请求的撤除,硬件自动清零。
5.中断应用开发举例

#include "stc8h.h"

void main(void)
{
        delay500ms();
        P4M1=0xff;
        P4M0=0xff;
        P6M1=0;
        P6M0=0;

}
void INT0_ISR(void) interrupt INT0_VECTOR
{
        P60=~P60
}


6.P3.2中断口串300R电阻的原因。
7.50:40演示C语言程序转汇编。







晨露 发表于 2025-1-22 11:27:43

2025.01.22学习了第15讲

一、STC8H8K64U单片机的定时器/计数器结构
1.定时器/计数器的应用
      交通灯
2.定时器的作用:
      ①定时控制、
      ②分频器(事件记录-计数器)、
      ③可编程时钟输出(给外部提供时钟)、
      ④串口波特率发生器
3.定时/计数器的一般结构
      加1计数器(0-65535,65536溢出)、控制信号(相关寄存器)、系统时钟频率-12分频或不分频

4.TMOD设置定时器工作模式
                TMOD寄存器地址为89H,不能被8整除,所以在操作该寄存器时不能按位操作。(89H高半字节是设置T1,低半字节是设置T0)
5.T0/T1工作方式
      定时器工作频率越快,精度越高
6.T2的工作模式---固定为16位自动重装载模式
      
二、STC8H8K64U单片机的定时器/计数器相关寄存器

重点说明,T2-T4另外还设置了时钟预分频器,地址为16位(外部地址),使用前还需将“XSFR”设置为有效。

对滤波的时钟进行计数---定时器
对外部管脚输入时钟进行计数---计数器
写入影子寄存器(16位自动重装)的内容是定时器产生中断时自动载入













页: 1 [2] 3
查看完整版本: STC8H单片机教程学习打卡