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

陈老师AI最新8051单片机原理及应用-AI8H8K64U学习记录日志

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-06-27 17:04:44
已绑定手机

1

主题

13

回帖

67

积分

注册会员

积分
67
发表于 3 天前 | 显示全部楼层
第八集
数据传送类指令 对PSW(程序状态字不产生影响),分为数据传送,数据交换,栈操作
传送指令——MOV,主要是内部数据存储器和特殊功能寄存器
格式:MOV <目标字节>,<源字节>
将第二操作数的字节变量传送到第一操作数中,源字节内容不变,一般不影响其他的寄存器和标志

数据交换指令
    1、字节交换指令(将累加器A中内容呢与第二操作数互换)
         XCH    A, addr8        ;(A) <--> (addr8)
         XCH    A, @Ri          ;(A) <--> ( (Ri) )

         XCH    A, Rn            ;(A) <--> (Rn)


    2、半字节交换指令(将累加器A和寄存器间接寻址的内部RAM单元低半字节交换)
         XCHD    A, @Ri        ;(A低四位字节) <--> ( (Ri)低四位字节 )
栈操作指令:
                        PUSH ACC ;保护累加器ACC内容


                        POP  PWS ; 恢复标志寄存器内容
Push 和Pop是成对出现的,不能交叉使用
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-06-27 17:04:44
已绑定手机

1

主题

13

回帖

67

积分

注册会员

积分
67
发表于 前天 14:15 | 显示全部楼层
第九集:
位操作指令:以位为处理对象,分别完成位传送,位状态控制,位逻辑操作,位条件转移等共有17条
(1)        直接用位地址(2)写成字节地址.位数,如0B8H.0(3)位寄存器的定义名称(4)对于位寻址寄存器,可以使用“P1.0”(5)伪指令事先定义的符号地址,EQU
1.        位数据传送指令 MOV C,bit 注意:其中一个操作数必须位累加器
2.        位状态控制指令 CLR bit,(清零)
3.        CPL bit,(求反)
4.        SETB bit;(置位)
ANL C,bit (逻辑与)
ORL C,bit(逻辑或)

       
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-06-27 17:04:44
已绑定手机

1

主题

13

回帖

67

积分

注册会员

积分
67
发表于 前天 14:25 | 显示全部楼层
第十集:
汇编语言程序设计的一般步骤
需求分析与功能定义:明确程序目标(如控制LED闪烁、读取按键等)。
算法设计与流程图绘制:用流程图描述逻辑流程(如顺序、分支、循环结构)。
寄存器与内存分配:规划CPU寄存器(如ACC、R0-R7)和片内RAM地址的使用。
指令选择与优化:根据硬件特性选择高效指令(如 MOV、ADD、CJNE)。
调试与测试:通过仿真工具(如STC-ISP)验证程序逻辑。
汇编程序的基本框架结构
ORG 0000H        ; 程序起始地址(复位入口)
LJMP MAIN        ; 跳转到主程序
ORG 0030H        ; 主程序避开中断向量区
MAIN:
   MOV SP, #5FH  ; 设置堆栈指针
   MOV P0, #0FFH ; 初始化端口(如P0口置高电平)
   ; 此处编写主循环或功能模块
LOOP:
   NOP
   SJMP LOOP     ; 无限循环维持程序运行
关键组成部分:
ORG 伪指令:定义代码存储起始地址。
初始化段:配置堆栈、I/O端口、定时器等。
主程序循环:通过 SJMP 或 JMP 维持持续执行。
子程序模块:用 CALL 和 RET 实现功能封装。
模块化编程思想
子程序设计规范:
入口参数传递(通过ACC或寄存器)。
现场保护(如 PUSH PSW 保存状态)。
子程序命名清晰(如 DELAY_MS 表示毫秒延时
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:193
  • 最近打卡:2025-06-28 08:36:03
已绑定手机

95

主题

990

回帖

2537

积分

超级版主

积分
2537
QQ
发表于 前天 14:35 | 显示全部楼层
热线19952583534
www.STCAI.com
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-06-27 17:04:44
已绑定手机

1

主题

13

回帖

67

积分

注册会员

积分
67
发表于 前天 16:01 | 显示全部楼层
十一集:C51对ANSI C的扩展

1. Bit型变量:可用于变量类型和函数声明、函数返回值等存储在内部ram的20H~2FH单元,不能声明为指针,也不能有bit数据。
2. 可位寻址区说明:使用sbit声明可独立访问可位寻址对象的位。要求基地址对象的存储器类型位bdata,可位寻址对象的位的声明只能放在main函数外部作为全局变量使用,否则编译会出错。
3.特殊功能寄存器(SFR)
  格式:sfr sfr_name = int_constant;
字节寻址:Sfr P0=0x80 //0x80为P0口的地址
   字寻址:sfr16 DPTR = 0x82;        // 指定DPTR的地址DPL=0x82,DPH=0x83
位寻址:sbit bitname=sfr_name^bit_number;
内存区域的指定:
1.        程序存储器:code关键字将变量保存到程序存储区,
例如:unsigned char code led[10]={。。。。。。};
2.        内部ram
Date:直接寻址区 idata:间接寻址区 bdata:可位寻址区
3.        外部数据存储器 xdata:可指定多达64kb的外部直接寻址区,

Keil c51指针:
Volatile关键字 告诉编译器变量可能随时变化,不要进行编译优化
Interrupt关键字中断函数声明
  void UART1_ISR(void) interrupt 4
    {
        /* 中断服务程序的代码 */
    }
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-06-27 17:04:44
已绑定手机

1

主题

13

回帖

67

积分

注册会员

积分
67
发表于 前天 17:51 | 显示全部楼层
十二集:讲解两段代码,并再次教授仿真步骤
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-06-27 17:04:44
已绑定手机

1

主题

13

回帖

67

积分

注册会员

积分
67
发表于 昨天 17:04 | 显示全部楼层
十三集:
中断的概念:所谓中断是指计算机在执行其他程序中,出现某种异常事件或者某种请求,CPU暂时停下当前任务,转而去执行对应的服务程序。执行完后,CPU再回到被暂时中止的程序继续执行。请示CPU中断的请求源是中断源,中断响应,整个过程是中断服务,返回到被中断的位置叫中断返回。
中断优先级:每个中断有各自的一个优先级别
中断嵌套:当在执行一个中断时,有更高优先级的请求,会暂时中断本来的中断服务程序,转而执行更高优先级的。
中断的优势:提高工作效率和处理问题的灵活性。
开中断:中断允许;关中断:中断禁止
保护现场和恢复现场:通过堆栈(push pop指令控制寄存器)
堆栈:后进先出规则,即最后进入的数据最先取出。
  恢复前,中断请求标志应该撤出(有的可以自动撤出,有的需要指令撤出)
  STC8H8K64U共有44个中断源
截图202506271704321939.jpg
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-28 23:54 , Processed in 1.640069 second(s), 81 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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