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

【实验箱已送】STC单片机打卡

[复制链接]

1

主题

15

回帖

120

积分

注册会员

积分
120
发表于 2023-8-14 18:36:35 | 显示全部楼层
一、据传送类指令简介
三种操作方式:数据传送、数据交换、栈操作
1. 传送指令MOV(作用区间主要为内部数据存储器和特殊功能寄存器)
1.png
2.png
3.png
4.png

2. 外部数据存储器(或扩展并联I/0口)与累加器A传送指令MOVX   (寄存器间接寻址)
3. 程序存储器向累加器A传送指令MOVC
5.png
4. 数据交换指令
6.png
5. 栈操作指令
7.png
8.png
注意:

二、逻辑操作类指令
10.png
三、算数运算类指令
11.png

回复 支持 反对

使用道具 举报 送花

1

主题

15

回帖

120

积分

注册会员

积分
120
发表于 2023-8-25 20:30:14 | 显示全部楼层
听陈教授第九课笔记:

一、位操作指令
1.png
2.png
1. 位数据传送指令
3.png
4.png
2. 位状态控制指令
5.png
6.png
2位求反指令
7.png
3位置位指令
8.png
9.png
3.位逻辑操作指令
1位逻辑“与”指令
10.png
11.png
2位逻辑“或”指令
12.png
13.png
4.位条件转移指令
1)判进位标志C转移指令
14.png
2判直接寻址位转移指令
15.png
16.png
二、控制转移类指令
分两种:为程序转移类指令和子程序调用和转移指令。
17.png
1.程序转移指令
1长转移指令
18.png
2绝对转移指令
19.png
3相对短转移指令
20.png
2.条件转移指令
1累加器判0转移指令
21.png
2比较转移指令
22.png
4条:
23.png
3循环指令
24.png
2.子程序调用和返回指令
1)长调用指令
LCALL
2)绝对调用指令
ACALL
3)返回指令
RET
4)中断返回指令
RETI
5)空操作指令
NOP

回复 支持 反对

使用道具 举报 送花

1

主题

15

回帖

120

积分

注册会员

积分
120
发表于 2023-8-25 20:43:54 | 显示全部楼层
听陈教授第十课小记:
汇编语言程序设计的一般步骤和框架
1.汇编语言程序设计的一般步骤
1.png
2.汇编语言的框架
2.png
3.png
具体中断信息见stc8h说明书中断部分
3.典型汇编语言程序设计举例
4.png
具体设计略

回复 支持 反对

使用道具 举报 送花

1

主题

15

回帖

120

积分

注册会员

积分
120
发表于 2023-8-26 11:20:08 | 显示全部楼层
听陈教授第十一课笔记
一、C51ANSI C的扩展
1.C51扩展的关键字
1.png
1变量或数据类型
2.png
3.png
*C51专有数据类型(不能用指针对其存取)

1.bit型变量
可用于变量类型和函数声明、函数返回值等,存储于内部RAM20H~2FH单元中
4.png
2.可位寻址说明区
使用sbit声明可独立访问可位寻址对象的位。sbit声明要求基址对象的存储器类型为bdata,否则只有绝对的位声明方法是合法的。
5.png
3.特殊功能寄存器(SFR
用来控制定时/计数器、串口、I/O口及其他部件
6.png

2内存区域的指定
7.png
8.png
9.png
10.png
11.png
12.png
二、单片机C语言程序中的常用运算
1.关系运算符
结果只能是01
13.png
2.逻辑运算符
&&、或||、非!
如:(a<100&&(b<=40)
a<100||(b<=40)
(!(s>10))
3.位运算符
六种位运算符:
14.png
(1)按位与运算
只有对应的两个二进位均为1时,结果为1,否则为0
15.png
2)按位或运算
11
16.png
3按位异或运算
相异为1
17.png
4求反运算
18.png
5左移运算
19.png
6右移运算
20.png

三、stc8h8k64u单片机c51程序框架
21.png


回复 支持 反对

使用道具 举报 送花

1

主题

15

回帖

120

积分

注册会员

积分
120
发表于 2023-9-4 16:12:30 | 显示全部楼层
本帖最后由 organic 于 2023-9-4 16:15 编辑

陈教授第十二集实践打卡
该集介绍了stc8h的操作例子:延迟、流水灯和EEPROMD的操作
1.延迟操作
截图202309041614351043.jpg
截图202309041614431010.jpg


2.流水灯
截图202309041615018766.jpg
截图202309041615075996.jpg



3.EEPROM
截图202309041615178568.jpg
截图202309041615252373.jpg
截图202309041615325265.jpg


EEPROM具体内容可见说明书第18章


回复 支持 反对

使用道具 举报 送花

1

主题

15

回帖

120

积分

注册会员

积分
120
发表于 2023-9-10 22:03:01 | 显示全部楼层
听陈教授第十三集笔记

一、中断的相关概念
1.中断的概念
所谓中断是指计算机在执行其他程序的过程中,当出现了某些异常事件或某种请求时, CPU暂时中止正在执行的程序,而转去执行对异常事件或某种请求的服务程序。当服务完毕后,CPU 再回到被暂时中止的程序继续执行。

2.其他中断的相关概念
截图202309102150574559.jpg
3.中断的优先级
截图202309102152491825.jpg
4.中断的优势
大大提高了工作效率和处理问题的灵活性。

①解决了快速CPU和慢速外设之间的矛盾,可使CPU和外设并行工作。
②可及时处理控制系统中许多随机参数和信息。
③具备了处理故障的能力,提高了机器自身的可靠性。
               中断和调用了程序之间的区别
          中断                                                           调用子程序
        产生是随机的                                        程序中事先安排好的
        既保护断点,又保护现场                        可只保护断点
        为外设服务和为处理各种事件服务        为主程序服务(与外设无关)
5.开中断和关中断(中断允许和中断禁止)
可通过指令设置相关特殊功能寄存器的内容来实现。只有在开中断的情况下,才有可能接受中断源的请求。
6.保护现场和恢复现场
进入子程序或中断处理程序后保护相关寄存器中的值的操作,叫做保护现场;子程序返回或中断处理返回前,恢复相关寄存器中的值的操作,叫做恢复现场。

保护现场的方法是将现场条件(寄存器的值)先推入(使用PUSH命令)堆栈保存,然后再使用这些寄存器,返回主程序前,弹出(使用POP指令)寄存器的值这些功能都要通过堆栈操作来实现。
7.堆栈
堆栈区十将内部存储器的一部分区域作专门用于堆栈的区域。
堆栈操作采用后进先出(最后存入的数据将被最先取出)。堆栈区当前的栈顶地址用堆栈指针寄存器(SP)中的值表示,即SP始终指向栈顶。
截图202309102157596536.jpg
8.中断的撤除
在响应中断请求后,返回主程序之前,该中断请求标志应该撤除,否则,单片机执行完中断服务程序会误判为又发生了中断请求而错误地再次进入中断服务程序。单片机中有些中断请求标志会自动撤除,有些不能自动撤除,必须用户使用相应的指令撤除。

二、STC8H8K64U单片机的中断源
1.中断源
截图202309102159429251.jpg

截图202309102159598782.jpg

2.中断源及控制
截图202309102200219942.jpg
(中断号为查询次序更准确)
3.中断标志位
图片1.png
图片2.png
图片3.png

回复 支持 反对

使用道具 举报 送花

1

主题

15

回帖

120

积分

注册会员

积分
120
发表于 2023-9-30 14:50:03 | 显示全部楼层
听陈教授第十四集:

截图202309301446463641.jpg

截图202309301446548985.jpg

截图202309301447087054.jpg

4.中断的允许、禁止及优先级
1中断的开放和禁止
截图202309301447281543.jpg
截图202309301447355195.jpg
2中断优先级
截图202309301447493342.jpg
5.单片机中断处理过程
1)中断响应的条件及过程
截图202309301448089041.jpg
(寄存器IE为举例)
截图202309301448231433.jpg
2)中断服务
截图202309301448388963.jpg
3中断请求的撤除
截图202309301448569652.jpg


中断举例
C语言:
截图202309301449115335.jpg
汇编语言:
截图202309301449241746.jpg
截图202309301449316745.jpg
实操:
截图202309301449512345.jpg
实现按下INT0后小灯亮灭

回复 支持 反对

使用道具 举报 送花

1

主题

15

回帖

120

积分

注册会员

积分
120
发表于 2023-10-1 11:45:08 | 显示全部楼层
听陈教授第十五集:

定时器/计数器
1.定时器/计数器的作用
截图202310011143007124.jpg

2.定时器/计数器的一般结构
截图202310011143146371.jpg

3.单片机CPU和定时器相关寄存器
截图202310011143271288.jpg

4.定时/计数器的工作模式
截图202310011143425445.jpg
截图202310011143503301.jpg
截图202310011144015028.jpg
截图202310011144106606.jpg
截图202310011144228541.jpg
截图202310011144293593.jpg
截图202310011144373875.jpg
截图202310011144464934.jpg

截图202310011144372809.jpg
回复 支持 反对

使用道具 举报 送花

1

主题

15

回帖

120

积分

注册会员

积分
120
发表于 2023-10-1 21:27:04 | 显示全部楼层
听陈教授第十六集:

1.定时/计数器量程的扩展
截图202310012125105508.jpg
截图202310012125213503.jpg
2.定时/计数器应用举例
截图202310012125396640.jpg
题目:
截图202310012125558417.jpg
汇编代码:
截图202310012126153137.jpg
c语言:
#include"stc8h.h"
unsigned char i ;
void Timer0_Init(void);
void main(void)
{
        P4M1=0XFF;
        P4M0=0XFF;
        P6M1=0X0;
        P6M0=0X0;
        P40=0;
        Timer0_Init();
        i=10;
        ET0=1;   //允许T0中断
        EA=1;    //开放总中断
        while(1);
}
void Timer0_Init(void)  //50毫秒
{
  AUXR &=0X7F;  //12T模式
        TMOD &=0XF0;  //设置定时器模式
        TL0=0X00;     //设置定时初值
        TH0=0X4C;     
        TF0=0;        //清除TF0标志
        TR0=1;        //定时器0开始计时
}
void T0_ISR(void) interrupt 1
{
        i--;
        if(i==0)
        {
                P60=~P60;
                i=10;
        }
}
T2的应用:每隔4秒将P6.0状态取反
#include"stc8h.h"
unsigned char i ;
void Timer2_Init(void);
void main(void)
{
        P4M1=0XFF;
        P4M0=0XFF;
        P6M1=0X0;
        P6M0=0X0;
        P40=0;
        Timer2_Init();
        i=80;
        EA=1;    //开放总中断
        while(1);
}
void Timer2_Isr(void) interrupt 12
{
        i--;
        if(i==0)
        {
                P60=~P60;
                i=80;
        }
}
void Timer2_Init(void)                //50毫秒@11.0592MHz
{
        AUXR &= 0xFB;                        //定时器时钟12T模式
        T2L = 0x00;                                //设置定时初始值
        T2H = 0x4C;                                //设置定时初始值
        AUXR |= 0x10;                        //定时器2开始计时
        IE2 |= 0x04;                        //使能定时器2中断
}
(此代码小灯的亮灭时间为4s
截图202310012126545653.jpg

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-4 01:24 , Processed in 0.186247 second(s), 94 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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