打卡学习记录贴 8H8K64U陈老师教学
第一节和第二节课程 笔记整理记录会一点点 ,这段时间好好跟着陈老师系统的学习一下单片机,以下的笔记记录学习过程。
1,了解 8H8K64U片内资源。
2,电子元件
3,KELL 按F2改名 (以前一直都不知道),
4,计算机的机制 转换。主要是二进制转十六进制 8421 法。
5,计算机的基本结构。
6,单片机的名字由来。
7,顺便点了一个灯。
wnagming 发表于 2024-8-12 12:56
F2是window系统的快捷键,重命名
了解到了。以前看其他老师的课程没有提过。 本帖最后由 mapengji 于 2024-8-12 15:49 编辑
第三集课程
1,基本的数字电路 陈老师讲的每个后面都画一个电路图肥城直观,比真值表还好使。 非门老师给没有给电路图。顺着老师的思路 我也画了一个比较直观的图,方便理解。
2.单片机的应用。
3,做低功耗产品时 频率调低一点。待机电流更小。
4,在线仿真的使用。重新上电。
第四节 和第五节课,主要以理论为主。
1,单片机的内部构造,资源是怎样分配的。很多名词的解释 。
2.姚总 主要讲了 P1.2引脚消失的 原因和考虑、给USB供电去耦用。第五集说后期会加上了。和P5.4 /RST复用.-后面使用的时候留心看看此处。
3.要用好STC-ISP工具。上面有很多实用的工具 。第五集姚总再演示频谱工具的时候 视频结束了。很掉胃口。 本帖最后由 mapengji 于 2024-8-14 21:25 编辑
第六节课
1,引脚分部的规律。
2,拉电流和灌电流方式,一些经典控制电路。
3,STC8H8K64U速度很快。设置状态以后加10-20毫秒延时。
4,汇编语言的介绍和重要性。
5,伪指令:伪指令并不产生目标程序,不影响程序执行,仅仅产生供汇编用的某些指令,以便在汇编时执行一些特殊操作。
(1) 设置起始地址 ORG (Origin的缩写) ORG addr16--其中ORG是该伪指令的操作助记符,操作数addr16是16位的二进制,前者表示为后续源程序汇编后的目标程序安排存放位置,后者则给出存放的起始位置。
ORG伪指令总是出现在每段源程序或数据块的开始。可以把程序 子程序 或者数据块存放在存储器的任何位置。
ORG 2000H ;表示后面的程序从2000H单元开始存放。 MOV A,20H;表示后面的目标程序,(这句没有太懂后面,可能还是没有熟悉书写格式。)
如果没有ORG 指令 ,那么汇编从0000H 单元开始存放目标陈旭
(2) 定义字节DB(Define Byte) 〈标号:〉 DB〈项或项表) 其中项或项表是指一个字节、数或字符串,或以引号括起来的ASCI码字符串。该指令的功能是把项或项表的数值(字符则用它的ASCI码表示)存入从标号开始的连续单元中。 注意长度要控制在80字符以内。
(3)定义字 DW (Define Word) <标号:> DW<项或项表> DW 的基本含义与DB相同。但DB一般用于定义8位数据一个字节。DW 定义16位数据,一个字。在执行汇编程序 时。机器会自动按照低字节在前,高字节在后的格式排列,--与程序中的地址规定一致。 DW伪指令常用于建立地址表 ,举例-- ABC: DW 1234H.08H ABC : DB 12H,34H,00H,08H 一样
DB ,DW 根据源程序需要,用来定义程序中用到的数据(地址)或数据块,一般放在源程序之后。汇编后数据块紧挨着目标程序的末尾地址开始存放。
(4),为标号赋值 EQU (Equate) <标号>EQU 数值或表达式,将语句操作数值赋予本语句的标号---又称等值指令 BLK EQU 1000H 把1000H赋给标号 BLK . 注意 ,在同一程序中,用EQU的伪指令对标号赋值后。该标号的值在整个程序中不能改变。
(5),DATA 指令,姚总说是C语言来的。不管了。先死记硬背。符号名DATA 表达式,DATA 指令用于将一个内部RAM的地址赋给指定的符号名。数值表达式的值在00H-0FFH之间,表达式必须是一个简单表达式 如 BUFFER DATA 40H.
(6),XDATA 指令 (External Data)符号名 XDATA 表达式 ADATA 指令用于将一个外部RAM 的地址赋值给指定的符号名。 数值表达式的值在0000H-0FFFFH之间,表达式必须是一个简单的表达式 MYDTATAXDATA 0400H
(7), 定义位命令BIT字符名称BIT位地址。该指令用于给字符名称定义位地址DOGOUT BIT P3.4定义后允许指令中用DOGOUT 代替 P3.4.
(8),文件包含命令INCLUDE用法SINCLUDE (STC8H.INC).与C相同。
(9),源程序结束 END END<表达式>END语句是一个结束标志,它告诉汇编程序,该程序段已结束。
6,程序模板, 工程的建立。演示。
一起学习,加油努力!! 第六 七 八 九节课 都是讲的汇编的理论知识,其中许多概念要仔细琢磨,看了规格书-指令系统结合陈老师的课件,理解起来方便多了。陈老师也讲了如何仿真。接下就是要好好的练习一下。心得体会。等我练完再说。先占一个位 本帖最后由 mapengji 于 2024-8-20 20:56 编辑
笔记整理。 汇编语言的指令通常由操作码和操作数组成,操作码指出的是要对操作数进行什么操作。操作数指出的是对什么数进行操作以及将操作的结果放到何处。 操作码规定用缩写英文字母组成,称为助记符。
例 ADD A .#8BH ;ADD 操作码 A和8BH 操作数。
操作码常用的。一部分来着陈老师的课件 一部分来源百度。
1.数据转移类
MOV(Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;(没有MOV Rn,Rn这样的寻址方式)
MOVC(Move Code)读取程序存储器数据表格的数据传送;(只有两条:MOVC A,@A+DPTR和MOVC A,@A+PC)
MOVX (Move External RAM)对外部RAM的数据传送;
XCH (Exchange) 字节交换;
XCHD (Exchange low-order Digit) 低半字节交换;
PUSH (Push onto Stack) 入栈;
POP (Pop from Stack) 出栈;
2.算数运算类
ADD(Addition) 加法;
ADDC(Add with Carry) 带进位加法;
SUBB(Subtract with Borrow) 带借位减法;
DA(Decimal Adjust) 进行BCD压缩码加法运算后,做十进制调整;
INC(Increment) 自增;(有INC DPTR这条指令)
DEC(Decrement) 自减;(没有DEC DPTR这条指令)
MUL(Multiplication、Multiply) 乘法;(积的高8位放入B中,低8位放入A中)
DIV(Division、Divide) 除法; (商放在A中,余数放在B中)
3.逻辑运算类
ANL(AND Logic) 按位与
ORL(OR Logic) 按位或;
XRL(Exclusive-OR Logic) 按位异或;
CLR(Clear) 清零;
CPL(Complement) 取反;
下面这5条指令的操作数只能是A。
RL A(Rotate left) 循环左移;
RLC A(Rotate Left throught the Carry flag) 带进位循环左移;
RR A(Rotate Right) 循环右移;
RRC A(Rotate Right throught the Carry flag) 带进位循环右移;
SWAP A(Swap) 低4位与高4位交换;
4.控制转移类
ACALL(Absolute subroutine Call)子程序绝对调用;
LCALL(Long subroutine Call)子程序长调用;
RET(Return from subroutine)子程序返回;
RETI(Return from Interruption)中断服务子程序返回;
SJMP(Short Jump)短转移;
AJMP(Absolute Jump)绝对转移;
LJMP(Long Jump)长转移;
CJNE (Compare Jump if Not Equal)比较不相等则转移;
DJNZ (Decrement Jump if Not Zero)减1后不为0则转移;
()
JZ (Jump if Zero)A的结果为0则转移;
JNZ (Jump if Not Zero)A结果不为0则转移;
JC (Jump if the Carry flag is set)C为1则转移;
JNC (Jump if Not Carry)C为0则转移;
JB (Jump if the Bit is set)位为1则转移;
JNB (Jump if the Bit is Not set)位为0则转移;
JBC(Jump if the Bit is set and Clear the bit)位为1则转移,并清除该位;
NOP (No Operation) 空操作;
本帖最后由 mapengji 于 2024-8-16 23:40 编辑
操作数。是一条指令操作的对象。 操作数可以是数据,也可以是地址,不同功能的指令操作对象不同。
(1),传送类指令,必须指明操作对象是从哪来(原地址),传到何处(目的地址)。
(2),数据操作指令 ,一般考运算器完成。数据操作类指令的对象一般是两个。
(3),程序控制类指令的操作对象是程序计数器 PC 和一个数。
(4),逻辑操作类有单操作和双操作之分。
操作数。注意
(1)数据只能是整数,不能是小数
(2)当汇编指令中的数据是十六进制切是以字母开头时数据应加一个前导0 以表示后的的字母不是变量而是数字。
(3)在8051内核单片机中,一个数据数据前面有前缀 # 则表示后面的数据是立即数。 如果没有则表示改数据表示是直接地址。
立即数 可以写成十进制 十六进制二进制 区分要在数据后面加后缀------十进制 (D) 十六进制(H)二进制(B).
汇编语言的概念及格式。---用助记符来描述机器指令的语言 称为 符号语言或者汇编语言。 汇编语言格式如下
[标号:]操作码助记符[第一操作数][,第二操作数][,第三操作数][;注释]
标号后庙有一个 “:”,他的实质是标号所在行的指令地址。根据程序设计需要设置。 标号是由字母开后的有意义的字符串组成。另外。标号也是作用子程序的名称。
注释 用的是 ;也可以用 C语言的 // /*.........*/
指令中的符号预定。之前一直没有明白。重新看笔记才恍然大悟