我心飞扬 发表于 3 天前

《USB型 1T 8051 单片机原理及应用-8H8K64U》教学视频--学习打卡6

第六集:I/O口的工作模式,STC8H8K64U的汇编语言程序设计,初步入门

笔记:

续上节课:2.3 I/O口的复用功能。

续上节课:2.4 I/O口的使用。

续上节课:2.5 单片机应用系统的典型构成。


1、汇编语言程序设计基础知识。
学习汇编语言还是基础和重要的。
1.1 伪指令。

1.2 汇编语言程序框架。


2、汇编语言程序仿真过程。
与C语言程序的仿真过程类似。

学习心得:

1、一切都要遵循MCU的物理逻辑框架,设置好参数。才能让I/O口执行想要的功能。

2、程序上也要遵循程序的的框架,才能安排好运算逻辑顺序。

3、不同语言程序的仿真几乎相同。

总结:

1、继续学习了I/O口的复用功能以及对应要设置特殊功能寄存器。

2、学习了I/O口使用中会用的上拉电阻的使用,拉电流、灌电流概念及特点,驱动三极管或MOS管的电路,高速MCU端口读写的延时的方法。

3、学习了单片机应用系统的典型构成,非总线扩展和扩展总线下的区别和特点。

4、学习了汇编语言的伪指令:ORG、DB、DW、EQU、BIT、DATA、XDATA、END、INCLUDE。

5、学习了汇编语言程序框架。

6、学习了汇编语言程序仿真过程。

后记:

1、此节课程简单,但记忆的东西较多。

2、开发程序记住程序流程,在端口设置时一般要查手册。

3、记住伪指令及汇编语言程序框架。

2025年10月24日。


我心飞扬 发表于 3 天前

《USB型 1T 8051 单片机原理及应用-8H8K64U》教学视频--学习打卡*

第*集:********

笔记:

1、。

2、。

3、。

学习心得:

1、。

2、。

3、。

总结:

1、。

2、。

3、。

后记:

1、。

2、。

3、。

2025年10月**日。

西西研究员 发表于 3 天前

我心飞扬 发表于 2025-10-24 15:29
《USB型 1T 8051 单片机原理及应用-8H8K64U》教学视频--学习打卡*

第*集:********


请尽快回复您的打卡学习内容哦~不然平台会误认为水贴将其删除,感谢配合!!!

我心飞扬 发表于 3 天前

西西研究员 发表于 2025-10-24 16:29
请尽快回复您的打卡学习内容哦~不然平台会误认为水贴将其删除,感谢配合!!! ...
这是我的一个写打卡内容的模板。空的。每次从这里复制出写新的打卡内容。滚动向前。学习完成后这个模板会删除的。

我心飞扬 发表于 3 天前

《USB型 1T 8051 单片机原理及应用-8H8K64U》教学视频--学习打卡7

第七集:STC8H8K64U的汇编语言程序设计进阶,宏汇编

笔记:

续上节课:伪指令。
$NOMOD51,告诉汇编器不使用预定义的寄存器名。

1、助记符语言。
1.1 助记符语言描述。
CPU认识的机器语言=二进制数表示的机器指令。人能看懂的汇编语言是一种助记符体系,汇编过程中,翻译成机器语言。汇编语言的指令由操作码与操作数构成。
1.2 操作码。

1.3 操作数。


2、指令格式及分类。
2.1 汇编语言的概念及格式。


2.2 指令代码的存储格式。


2.3 指令中的符号约定。


3、寻址方式。
3.1 立即寻址。
立即寻址也称立即数寻址,它是在指令操作数中直接给出参加运算的操作数,其指令格式形如:MOV A, #70H,这条指令的功能是将立即数70H传送到累加器A中。
3.2 直接寻址。
在直接寻址方式中,指令操作数域给出的是参加运算操作数地址。直接寻址方式只能用来表示特殊功能寄存器、内部数据寄存器和位地址空间。其中特殊功能寄存器和位地址空间只能用直接寻址方式访问。如:ANL 70H, #48H,表示70H单元中的数与立即数48H相“与”,结果存放在70H单元中。其中70H为直接地址,表示内部数据存储器RAM中的一个单元。
3.3 间接寻址。
间接寻址采用R0或R1前添加“@”符号来表示。例如,假设R1中的数据是40H,内部数据存储器40H单元所包含的数据为55H,那么如下指令:MOV A, @R1,把数据55H 传送到累加器。
3.4 寄存器寻址。
寄存器寻址是对选定的工作寄存器R7~R0、累加器A、通用寄存器B、地址寄存器和进位C中的数进行操作。其中寄存器R7~R0由指令码的低3位表示,ACC、B、DPTR 及进位C隐含在指令码中。因此,寄存器寻址也包含一种隐含寻址方式。寄存器工作区的选择由程序状态字寄存器PSW中的RS1、RS0来决定。指令操作数指定的寄存器均指当前工作区中的寄存器。如:INC R0;(R0)+1 → R0。
3.5 相对寻址。
相对寻址是将程序计数器PC中的当前值与指令第二字节给出的数相加,其结果作为转移指令的转移地址。转移地址也称为转移目的地址,PC中的当前值称为基地址,指令第二字节给出的数称为偏移量。由于目的地址是相对于PC中的基地址而言,所以这种寻址方式称为相对寻址。偏移量为带符号的数,所能表示的范围为+127~–128。这种寻址方式主要用于转移指令。如:JC 80H;C=1跳转指令表示若进位C为0,则程序计数器PC中的内容不改变,即不转移;若进位C为1,则以PC中的当前值为基地址,加上偏移量80H后所得到的结果作为该转移指令的目的地址。
3.6 变址寻址。
在变址寻址方式中,指令操作数指定一个存放变址基值的变址寄存器。变址寻址时,偏移量与变址基值相加,其结果作为操作数的地址。变址寄存器有程序计数器PC和地址寄存器DPTR。如:MOVC A, @A+DPTR,表示累加器A为偏移量寄存器,其内容与地址寄存器DPTR中的内容相加,其结果作为操作数的地址,取出该单元中的数送入累加器A。
3.7 位寻址。
位寻址是指对一些内部数据存储器RAM和特殊功能寄存器进行位操作时的寻址。在进行位操作时,借助于进位C作为位操作累加器,指令操作数直接给出该位的地址,然后根据操作码的性质对该位进行位操作。位地址与字节直接寻址中的字节地址形式完全一样,主要由操作码加以区分,使用时应注意。如:MOV C, 20H,就是片内位单元位操作型指令。

学习心得:

1、语言规则挺多,指令的助记方式是记住英文全称。

2、语言中的符号约定要记准,不然理解指令会出错,编程就可能出偏差。

3、寻址方式平时感觉用不到,但能帮助理解程序运行的逻辑。

4、汇编程序是操作码和操作数的组合形成的机器逻辑时序流。

总结:

1、学习了机器语言与汇编语言的概念及对应关系。

2、学习了汇编语言的概念及格式,操作码和操作数组合形成的指令。

3、学习了机器码的存储格式。

4、学习了7种寻址方式:立即寻址、直接寻址、间接寻址、寄存器寻址、相对寻址、变址寻址、位寻址。

后记:

1、汇编语言概念容易理解,指令众多,英文全称能记住能提高记忆。

2、寻址方式较难理解,需要多看看。

3、指令中的符号约定也要记忆。

4、本节课内容较枯燥。

2025年10月24日。


我心飞扬 发表于 3 天前

《USB型 1T 8051 单片机原理及应用-8H8K64U》教学视频--学习打卡8

第八集:汇编指令一(数据传送/逻辑运算/算术运算)

笔记:

1、数据传送类指令。
一般形式为 MOV <目的操作数> , <源操作数>
操作码包括MOV、MOVC、MOVX、PUSH、POP、XCH、XCHD、SWAP。
1.1 MOV是数据传送中使用的最多的一条操作码。MOV指令用于内部RAM之间数据的传送。具体内容见下:
指令      作用
MOV A,Rn                  ;工作寄存器的内容送A,n取0-7
MOV A,direct                ;将内部RAM中地址为direct的单元的内容送A
MOV A,@Ri                  ;利用R0和R1实现间接寻址,i只能取0或1
MOV A,#data               ;立即数寻址,将立即数data送到累加器A中
MOV Rn,A                  ;将累加器A的内容送给工作寄存器
MOV Rn,direct            ;直接寻址,内容送工作寄存器
MOV Rn,#data             ;立即数寻址,将data送给工作寄存器,目的地址为Rn时无间接寻址
MOV direct,A               ;A送地址为direct的RAM单元
MOV direct,Rn             ;Rn送RAM
MOV direct,dir2         ;RAM送RAM
MOV direct,@Ri         ;寄存器间接寻址送RAM
MOV direct,#data      ;立即数送RAM
MOV @Ri,A               ;A送间接寻址地址
MOV @Ri,direct         ;RAM内容送工作寄存器间接寻址地址
MOV @Ri,data             ;立即数送寄存器间接寻址地址
MOV DPTR,#data16   ;16位立即数送DPTR
1.2 MOVC指令用于程序存储器与累加器A的内容传输,多用于查表。MOVC用法十分固定,只有下面两条指令。MOVC在使用时是访问内部程序存储器还是外部程序存储器由PSEN引脚决定。MOVC的用法是完全固定的,不可以创造指令,不要使用类似MOVC A,@DPTR这样的指令。具体内容见下:
指令      作用
MOVC A,@A+DPTR       ;DPTR基址加变址寻址,将程序存储器中的内容存在累加器A中
MOVC A,@A+PC         ;PC基址加变址寻址,将程序存储器中的内容存在累加器A中,PC保存的是下一条指令的首地址(程序存储器编址)。
1.3 MOVX指令用于对外部RAM进行访问。外部RAM编址由0开始,故必须区分MOV、MOVX才能避免冲突。具体内容见下:
指令      作用
MOVX A,@Ri                ;Ri间接寻址,将外部RAM内容写到A中
MOVX A,@DPTR         ;DPTR间接寻址,将外部RAM内容写到A中
MOVX @Ri,A                ;Ri间接寻址,将A内容写到外部RAM中
MOVX @DPTR,A         ;DPTR间接寻址,将A内容写到外部RAM中
1.4 PUSH和POP指令。压栈和弹栈指令。压栈和弹栈指令的本质就是将SP作为间接寻址寄存器,和内部RAM单元进行内容传输。只不过SP会自动增加或减少以在逻辑上维护这个内部RAM空间并将其称为栈。具体内容见下:
指令      作用
PUSH direct               ;直接寻址,将内容保存在SP所指向的地址单元,SP+1
POP direct                   ;直接寻址,将SP所指向的地址单元内容弹到新地址,SP-1

1.5 XCH、XCHD、SWAP等交换指令。具体内容见下:
指令      作用
XCH A,Rn                  ;寄存器和A内容交换
XCH A,direct                ;A和内部RAM内容交换
XCH A,@Ri                  ;间接寻址,内容交换
XCHD A,@Ri                ;间接寻址,只交换低4位
SWAP A                      ;A的高四位和低四位交换
1.6 数据传送类指令的注意事项。


2、逻辑运算类指令。
逻辑运算类包括与、或、异或、清除、求反、左右移位等逻辑操作。具体内容见下:
指令      作用
CLR A                        ;清零A
CPL A                        ;按位取反,不影响标志位
RL A                        ;循环左移
RLC A                        ;带进位的循环左移,CY作为第九位
RR A                         ;循环右移
RRC A                     ;带进位的循环右移
ANL A,Rn                ;逻辑按位与,保存到A
ANL A,direct            ;逻辑按位与,保存到A
ANL A,#data         ;逻辑按位与,保存到A
ANL A,@Ri            ;逻辑按位与,保存到A
ANL direct,A            ;逻辑按位与,保存到direct
ANL direct,#data       ;逻辑按位与,保存到direct
ORL A,Rn               ;逻辑按位或,保存到A
ORL A,direct         ;逻辑按位或,保存到A
ORL A,#data          ;逻辑按位或,保存到A
ORL A,@Ri             ;逻辑按位或,保存到A
ORL direct,A             ;逻辑按位或,保存到direct
ORL direct,#data      ;逻辑按位或,保存到direct
XRL A,Rn               ;逻辑按位异或,保存到A
XRL A,direct         ;逻辑按位异或,保存到A
XRL A,#data          ;逻辑按位异或,保存到A
XRL A,@Ri             ;逻辑按位异或,保存到A
XRL direct,A             ;逻辑按位异或,保存到direct
XRL direct,#data      ;逻辑按位异或,保存到direct

3、算术运算类指令。
操作码有ADD、ADDC、SUBB、INC、DEC、MUL、DIV、DA。具体内容见下:
指令      作用
ADD A,Rn                ;寄存器内容加到累加器
ADD A,direct            ;直接寻址内容加到累加器
ADD A,@Ri            ;寄存器间接寻址内容加到累加器
ADD A,#data         ;立即数加到累加器
ADDC A,Rn            ;寄存器内容加到累加器(考虑进位位Cy)
ADDC A,direct          ;直接寻址内容加到累加器(考虑进位位Cy)
ADDC A,@Ri            ;寄存器间接寻址内容加到累加器(考虑进位位Cy)
ADDC A,#data         ;立即数加到累加器(考虑进位位Cy)
SUBB A,Rn            ;累加器内容减寄存器内容(考虑Cy)A-(Rn)-Cy
SUBB A,direct          ;累加器减直接寻址内容(考虑Cy)A-(direct)-Cy
SUBB A,@Ri            ;累加器减寄存器间接寻址内容(考虑Cy)
SUBB A,#data         ;累加器减立即数(考虑Cy)
INC A                     ;累加器加1
INC Rn                   ;工作寄存器加1
INC direct               ;直接寻址地址内容加1
INC @Ri               ;寄存器间接寻址地址内容加1
DEC A                  ;累加器减1
DEC Rn                  ;工作寄存器减1
DEC direct            ;直接寻址地址内容减1
DEC @Ri                ;寄存器间接寻址地址内容减1
INC DPTR            ;DPTR加1,实际就是DPL+1并自动向DPH进位
MUL AB               ;A内容乘寄存器B内容保存到A中
DIV AB                  ;A内容除寄存器B内容保存到A中
DA A                     ;累加器十进制调整
补充说明:
单片机在进行运算操作时会影响程序状态寄存器PSW中的程序状态标志位。

P标志位只考虑A中1的奇偶个数,只要对A的内容进行修改均会影响P的内容。
CY和AC标志位仅在加减操作时会被影响:当运算发生进位或借位时,CY置1;否则清0;当低四位向高四位发生进位或借位时,AC置1,否则清0;
OV标志位在加减乘除时均受影响,OV实际保存的是第六位与第七位进位异或的结果。只有当第六位和第七位只有一个发生进位或借位时,OV才会置1,否则清0。


学习心得:

1、指令分类别,按照操作数区分寻址方式,对应上MCU内部存储结构、ACC、PC、SP、PSW、SFR、XFR、I/O口的逻辑框架才好理解。

2、仿真很方便,能提高学习、开发效率。

总结:

1、学习了数据传送、逻辑运算、算术运算的相关指令用法。

2、学习了仿真的程序调试、跟踪代码技巧,对寄存器、RAM、端口中数据的查看、修改。

后记:

1、本节课很枯燥,内容很多,但有规律。知道指令大概后可以查手册。

2、将MCU的逻辑结构与指令结合起来能更好的理解MCU的运行,指令与MCU物理结构是严格对应的。

2025年10月25日。

我心飞扬 发表于 前天 18:20

《USB型 1T 8051 单片机原理及应用-8H8K64U》教学视频--学习打卡9

第九集:汇编指令二(位操作/控制转移)

笔记:

1、位操作指令。

指令操作支持位寻址的存储空间,主要包括字节地址20H-2FH的RAM单元以及低四位地址为0或8的SFR。指令具体如下:
指令      作用
MOV C,bit      ;将bit位的内容送到进位标志位C中
MOV bit,C      ;将进位标志位C中的内容送到bit位
CLR C            ;清零C
CLR bit            ;清零一个bit位
CPL C            ;取反C
CPL bit            ;取反一个bit位
SETB C            ;置1C
SETB bit          ;置1一个bit位
ANL C,bit         ;直接寻址位与C与,结果保存在C中
ANL C,/bit      ;直接寻址位的反与C与,结果保存在C中不影响bit的值
ORL C,bit         ;直接寻址位与或,结果保存在C中
ORL C,bit         ;直接寻址位的反与C或,结果保存在C中不影响bit的值
JC rel            ;C为1则跳转
JNC rel            ;C为0则跳转
JB bit,rel         ;bit为1则跳转
JNB bit,rel       ;bit为0则跳转
JBC bit,rel       ;bit为1则跳转,并将bit清零

2、控制转移类指令。

实际大多是修改PC指针的值来完成的。指令具体如下:
指令      作用
AJMP addr11            ;2k空间内的无条件绝对跳转指令
SJMP rel                  ;rel是一个补码,该条指令是一个无条件相对跳转指令
LJMP addr16            ;64k空间无条件绝对跳转指令
JMP @A+DPTR          ;基质加变址绝对跳转指令
JZ rel                        ;判断累加器A的值,为0则执行相对跳转
JNZ rel                      ;判断累加器A的值,非0则执行相对跳转
CJNE A,direct,rel         ;不相等相对跳转指令,A大于direct空间的值则置位Cy
CJNE A,#data,rel      ;不相等相对跳转指令,A大于#data则置位Cy
CJNE Rn,#data,rel      ;不相等相对跳转指令,Rn的值大于#data则置位Cy
CJNE @Ri,#data,rel    ;不相等相对跳转指令,Ri间接寻址的值大于#data则置位Cy
DJNZ Rn,rel               ;减1不为0相对跳转指令,Rn执行完后会减1
DJNZ direct,rel         ;减1不为0相对跳转指令,direct单元内容会减1
ACALL addr11            ;与AJMP类似,不过会将PC压入堆栈
LCALL addr16            ;长调用指令,PC+3后压入堆栈,实际就是将这条指令的下一条指令的地址压入了堆栈,先低字节后高字节,SP+2
RET                        ;SP-2,堆栈的内容弹到PC中,先高后低
RETI                         ;与RET差不多,用在中断服务程序中,会清除中断优先触发器
NOP                        ;空操作,PC+1,无其他操作

学习心得:

1、高级语言中的判断、循环、函数调用底层是控制转移指令完成的。

2、位操作是MCU最小的数据操作,关系到功能的设置,系统、I/O口的状态以及程序走向。

3、语句在仿真中实际操作一下更直观。

总结:

1、学习了位操作和控制流转类指令。

后记:

1、本节课程比较枯燥,需要练习和记忆,以后用到时也可以查手册。

2025年10月25日。

我心飞扬 发表于 前天 19:20

《USB型 1T 8051 单片机原理及应用-8H8K64U》教学视频--学习打卡10

第十集:汇编语言程序设计的一般步骤和基本框架

笔记:

1、汇编语言程序设计的一般步骤和基本框架。

1.1 汇编语言程序员设计的一般步骤。

1.2 汇编语言程序的框架。
STC8H8K64U的中断向量一定要查手册确定地址。程序框架如下:
/*
本汇编语言程序框架由山东大学陈桂友整理
*/
$NOMOD51
$INCLUDE (STC8H.H)   ;包含STC8H8K64U单片机寄存器定义头文件
//===================================================
;这里可以编写程序中用到的一些符号定义(使用EQU、DATA、BIT等伪指令)
      ORG                0000H
      LJMP      MAIN                        ;跳转到主程序
      ORG                0003H
      LJMP      INT0_ISR                  ;外部中断0入口
      ORG                000BH
      LJMP      T0_ISR                     ;定时器0中断入口
      ORG                0013H
      LJMP      INT1_ISR                  ;外部中断1入口
      ORG                001BH
      LJMP      T1_ISR                     ;定时器1中断入口
      ORG                0023H
      LJMP      UART1_ISR               ;串口1中断入口
      ;......其他中断入口
//------------------------------------------------------------------------------------------------------
      ORG      0200H
MAIN:
      MOV                SP,#80H            ;设置堆栈指针(可根据实际情况进行修改)
      ;初始化内存区域内容
      ;设置有关特殊功能寄存器(SFR)的控制字
      ;根据需要开放相应的中断控制
MAINLOOP:                                    ;主程序循环
      ;这里放主循环内的代码
      ;......
      LJMP      MAINLOOP
//===================================================
;下面是各个中断服务子程序
INT0_ISR:                                        ;外部中断0中断服务子程序
      ;根据需要填入处理代码,若没有处理代码,可使用后面的一条语句让单片机复位
      MOV      IAP_CONTR,#20H      ;有其他处理程序时,不要使用该语句
      RETI
T0_ISR:                                           ;定时器0中断服务子程序
      ;根据需要填入处理代码,若没有处理代码,可使用后面的一条语句让单片机复位
      MOV      IAP_CONTR,#20H      ;有其他处理程序时,不要使用该语句
      RETI
INT1_ISR:                                        ;外部中断1中断服务子程序
      ;根据需要填入处理代码,若没有处理代码,可使用后面的一条语句让单片机复位
      MOV      IAP_CONTR,#20H      ;有其他处理程序时,不要使用该语句
      RETI
T1_ISR:                                           ;定时器1中断服务子程序
      ;根据需要填入处理代码,若没有处理代码,可使用后面的一条语句让单片机复位
      MOV      IAP_CONTR,#20H      ;有其他处理程序时,不要使用该语句
      RETI
UART1_ISR:                                     ;串口1中断服务子程序
      ;根据需要填入处理代码,若没有处理代码,可使用后面的一条语句让单片机复位
      MOV      IAP_CONTR,#20H      ;有其他处理程序时,不要使用该语句
      RETI
;......其它中断服务子程序
//------------------------------------------------------------------------------------------------------
;下面可以编写其他子程序或者定义程序中所用的常数               
      
      END
1.3 程序流程图。



2、典型汇编语言程序设计举例。














学习心得:

1、开发理清思路,画出流程图,然后匹配对应的指令序列。

2、需要积累一些完成特定功能的代码模块,能提高开发效率。

3、有些代码技巧需要积累,能使代码更简洁高效。

总结:

1、学习了汇编语言程序设计的一般步骤。

2、学习了汇编语言程序的框架。

3、了解了流程图。

4、学习了几个汇编语言程序实例,很有技巧。

后记:

1、本次课程汇编语言程序框架对以后用汇编语言开发很有用,可当模板使用。

2、后面的实例很有技巧性,需要多学习,多实践积累经验。

2025年10月25日。

我心飞扬 发表于 前天 23:16

《USB型 1T 8051 单片机原理及应用-8H8K64U》教学视频--学习打卡11

第十一集:单片机C语言程序设计导入一

笔记:

1、C51对ANSI C的扩展。
1.1 C51扩展的关键字。

(1)变量或数据类型。




(2)内存区域的指定。


(3)KEIL C51指针。


(4)C51对函数的扩展。



2、单片机C语言程序中的常用运算。
2.1 关系运算符。

2.2 逻辑运算符。

2.3 位运算符。




3、STC8H8K64U单片机C51程序框架。
//引入需要的头文件,STC8H8K64U需要stc8h.h头文件
#include "stc8h.h"

//--------------------------------------------------------------------------------
//声明变量
//声明子函数,子函数可以有返回值

void delay(long delaytime);
//--------------------------------------------------------------------------------
//主程序
void main(void)
{
    //此处可存放应用系统的初始化代码
    while (1)    //主程序循环
    {
      //根据需要填入适当的内容
      delay(100);    //可以调用用户白定义的子函数
    }
}

//--------------------------------------------------------------------------------
//各个子函数的定义
void delay(long delaytime)
{
    while (delaytime>0)
      delaytime--;    //子函数的实现代码
}

//------------------------------------------------------------------------------------
//各个中断函数的实现
void INT0_ISR(void) interrupt INT0_VECTOR    //外部中断0服务子函数
{
//根据需要填入程序代码
}
/*
省略部分中断函数实现
*/
void INT4_ISR(void) interrupt INT4_VECTOR    //外部中断4服务子函数
{
//根据需要填入程序代码
}
void T0_ISR(void) interrupt T0_VECTOR    //定时器0中断服务子函数
{
//根据需要填入程序代码
}
/*
省略部分中断函数实现
*/
void T4_ISR(void) interrupt T4_VECTOR    //定时器4中断服务子函数
{
//根据需要填入程序代码
}
void UART1_ISR(void) interrupt UART1_VECTOR    //串囗1中断服务子函数
{
//根据需要填入程序代码,注意扩展中断的服务函数中手动将中断请求标志的清0
}
void UART2_ISR (void) interrupt UART2_VECTOR    //串口2中断子函数
{
//根据需要填入程序代码,注意扩展中断的服务函数中手动将中断请求标志的清0
}
/*
省略部分中断函数实现
*/

学习心得:

1、C51对ANSI C的扩展使开发更方便控制程序变量的存储、使用方法;方便函数及中断函数的开发;方便位的操作;等等。

2、C51程序框架作为模板,能清晰代码各个功能块,规范代码规范,提高编码效率。

总结:

1、学习了C51对ANSI C的扩展,包括以下19个扩展关键字:_at_、sbit、sfr、bit、sfr16、idata、bdata、xdata、pdata、data、code、alien、small、compact、 large、using、reentrant、interrupt、_task_。

2、学习了变量的数据类型、内存区域的指定、C51指针、C51对函数的扩展。

3、学习了关系运算符、逻辑运算符、位运算符的使用。

4、学习了C51程序框架。

后记:

1、本次课程不算难,都是需要记住的内容。

2、C51程序框架还需要不断打磨。

2025年10月25日。


我心飞扬 发表于 昨天 00:36

《USB型 1T 8051 单片机原理及应用-8H8K64U》教学视频--学习打卡12

第十二集:单片机C语言程序设计导入二

笔记:

1、单片机的C语言程序设计实例。
1.1 通过延时函数,实现方波,控制LED灯闪烁。


在实例的基础上通过简单修改实现了流水灯。

1.2 单片机Flash作为EEPROM使用的基本操作。
EEPROM相关知识。



在STC-ISP工具中设置EEPROM。

注意事项。

代码实现。






学习心得:

1、多利用STC提供的工具,生成部分代码。

2、现在AiCude工具能图形化设置,并生成程序框架。

3、注意代码细节,如何更容易理解。

总结:

1、通过实例,学习了C语言程序设计的过程。

2、学习了STC公具提供的生成代码的功能。

3、复习了仿真过程需要的操作,学习了在跟踪程序时如何观察变量变化。

后记:

1、本节课程实际动手编程,实际操作经验性的内容比较好。

2、养成遇到问题习惯性查手册,利用STC软件工具。

2025年10月26日。

页: 1 [2] 3
查看完整版本: 学习--视频教学《USB型 1T 8051 单片机原理及应用-8H8K64U》山东大学陈桂友教授--打卡