chen6502 新人的学习感悟+每日打卡贴 | 建议提前赠送实验箱
8月8日何宾教授直播课 观后感:(记录下自己学习的进程,后面翻看起来更方便。)
控制器__堆栈及指针:
听了老师的讲解,明白了在8051单片机中,堆栈(Stack)的作用:当执行程序的过程中遇到跳转指令时,就需要将当前PC指向的下一条指令的地址保存起来,等执行完跳转指令时,再将所保存的下一条指令的地址恢复到程序地址寄存器中。
堆栈及指针__入栈操作:
随着数据的入栈操作,(SP)递增,SP总是指向最新保存的存储器位置。也就是通常所说的,SP总是指向栈顶的位置。
堆栈及指针__出栈操作:
随着数据的出栈操作,(SP)递减,SP总是指向最新保存的存储器位置。也就是通常所说的,SP总是指向栈顶的位置。
运算器__8位算术逻辑单元:
实现的主要功能包括:算术运算、其他运算、逻辑运算、按位运算。
运算器__累加器:累加器位于SFR地址为0xE0的位置。
运算器__B寄存器:B寄存器位于SFR地址为0xF0的位置,乘法操作、除法操作。
运算器__程序状态字:该寄存器位于SFR空间地址为0xD0的位置。
寄存器__EEPROM相关的寄存器:
32位单片机处理器核的内部结构:
STC系列单片机处理器核兼容MCS-251 ISA,真正实现了 1位/8位/16位和32位的操作。
本帖最后由 STC芯征程 于 2023-9-2 09:06 编辑
感谢楼主对STC的支持,已经对接我处,继续加油!!!
9月份新课表来啦
8月11日何宾教授直播课 观后感
本帖最后由 chen6502 于 2023-8-15 09:15 编辑8月11日何宾教授直播课 观后感:
寄存器文件:
在STM32中,寄存器的R1寄存器和R1寄存器组合起来,组成16位寄存器 WR0寄存器。
低8位寄存器与传统8051单片机的寄存器完全兼容。
专用寄存器:
累加器和B寄存器:8位累加器ACC是寄存器文件中的寄存器R11(8位)
用于乘法和除法的B寄存器是寄存器文件中的寄存器R10(8位)
在STC15/STC8系列增强型8051单片机中,指令使用累加器作为数据移动和计算的主要寄存器,然而,在兼容MCS-251 ISA的STC32系列单片机中。寄存器R1~R15都可以用于这些功能。
因此,累加器没有发挥它在8051单片机中的核心作用。
程序状态字:
CY、AC、OV、N 和Z 标志由硬件设置,用于指示操作的结果
PSW 寄存器是可读写的寄存器
PSW 中的奇偶校验位 P 不受写入的影响
32位单片机存储器结构和地址空间:
在STC32G系列单片机中,将24位的地址分为高8位和低16位,
高8位表示所访问的存储空间的某个区域,类似“页面”的概念,
低16位表示访问该区域的某个存储单元。
程序存储器:
STC32G系列单片机内部的程序存储器用于保存用户的程序、常数以及表格等信息,
当给STC32G系列单片机复位后,程序计数器(PC)的内容为 FF:0000H,
从 FF:0000H的单元开始执行程序。
与8051单片机相同,中断服务程序入口地址(也称为中断向量)也位于程序存储器中。
在程序存储器中,每个中断都有一个固定的入口地址,当发生中断并且处理器核响应中断后,PC就会自动跳转到相应的中断入口地址去执行程序。
片上基本数据存储器:
中断原理及功能:中断是一个事件的子集,包括:
中断原理
中断系统结构
中断优先处理
中断优先级控制寄存器
中断向量表
STC32G系列单片机中的中断系统是为了处理器具有实时处理外界紧急事件能力而设置的一种机制
当处理器正在处理某个事件(即:正在正常执行一段程序代码)时,外界发生了紧急事件,这个紧急事件可通过STC32G系列单片机的外部引脚送给处理器,处理器就需要做出判断是不是需要立即处理这个紧急事件。
如果处理器允许立即处理这个紧急事件,则暂时停止继续执行当前的程序代码,而跳转到用于处理该紧急事件的程序代码;
当处理完紧急事件,也就是执行完处理紧急事件的程序代码后,再继续处理前面所打断的正常执行的程序代码。
中断的处理过程:
STC32G系列单片机具有52个中断源
中断的优先级:
本帖最后由 chen6502 于 2023-8-15 09:14 编辑
近几天观看了 冲哥的视频课,收益很多。坚持跟下来,一定收获多多。感谢STC公司!
学习冲哥视频课个人体会:
第1集:
1、什么是单片机:外观-- STC32G实验箱--采用STC32G12K128做主控芯片;
2、他能做什么:功能 -- 概括来说他能做有规律可循的控制应用;用途--智能仪表、工业控制、家用电器、网络和通信、医用设备领域、模块化系统、汽车电子;
3、新手常见问题:新手学STC51单片机还是STM32系列;单片机用库函数好还是寄存器好?STC单片机到底好不好?
4、学习建议:
1.一定要静得下心,沉得住气;
2.多跟着老师动手,千万别一看就会,一写就废;
3.举一反三,发散思维,时常思考为什么;
4.多看看官网,多看看手册,有问题多交流;
5.逛逛论坛,吸收一些别人好的东西;
6.尝试着自己做一些项目、竞赛题。
第一课比较简单,对单片机进行简单介绍,主要是最后的学习建议,对于我们新手很有帮助。接下来努力吧,坚持学下去。
--------------------------------------------------------------------------------------------------------------------------------------------------------
第2集:
硬件介绍:实验箱硬件介绍--红外发射、红外接收、数码管、LED灯、万能版、NTC测温、18B20、ADC按键、基准电压、PWM模拟DAC、24C02存储、矩阵键盘、独立按键、LCD12864接口、LED电源指示灯、232接口、FLASH扩展、调试接口、蜂鸣器。 单片机工作电压:1.9-5.5V。
课后作业:我看了冲哥对于这个实验箱的介绍,想利用独立按键和数码管 制作一个模仿微波炉的时间设定,后按开始按键,启用倒计时,时间归0后,蜂鸣器叫一下。
本帖最后由 chen6502 于 2023-8-16 09:34 编辑
第3集:开发环境搭建和程序下载
1、STC-ISP软件的下载 http://stcai.com/gjrj.
2、手册下载
3、PDF阅读器下载
4、学会PDF阅读器查阅手册
5、跟着手册搭建C251开发环境
6、程序包的下载
7、第一个工程的编译----添加型号和头文件到 keil
-------------------------------------------- 本帖最后由 chen6502 于 2023-8-15 12:20 编辑
8月14日 陈教授直播课 STC单片机基础和实践观后感:
-------记录自己学习的经历
1.C51扩展的关键字:
C51有以下19个扩展关键字: _at_、sbit、sfr、bit、sfr16、idata、bdata、xdata、pdata、data、code、alien、small、compact、large、using、reentrant、interrupt、_task_ 。
(1)变量或数据类型 (图3132)
选择数据类型 要根据数据长短。
带*部分为C51所特别支持的变量类型(扩展的数据类型),它们不属于ANSI C,不能用指针对它们存取。包括:
bit: 位变量,值为0或1.
sbit: 从字节中定义的位变量(0或1).
sfr: sfr字节地址(0x80~0xff).
sfr16: sfr字节地址(0x80~0xff,其实是占用两个连续的地址)。
其余的数据类型 如 char、ennm、short、int、long、float等与ANSI C相同。
①bit型变量
bit型变量可用于变量类型和函数声明、函数返回值等,存储于内部RAM的20H~2FH的地址中。
需要注意:
1)位不能声明为一个指针。如: bit *bit_poiter; 是错误的。
2)不能有 bit数组,如:bit arr; 是错误的。
②可位寻址区说明
使用sbit声明可独立访问可位寻址对象的位。sbit声明要求基址对象的存储器类型为“bdata”,否则只有绝对的位声明是合法的。位的位置('^’ 操作符号后的数字)的最大值依赖于指定的基类型,对于char/unsigned char而言是0~7,对于int/unsigned int/short/unsigned short而言是0~15,对于long/unsigned long而言是0~31。
可位寻址对象的位的声明只能放到main函数的外部作为全局变量使用,否则编译出错。
(2)内存区域的指定
①程序存储器
code关键字表示将变量保存到程序存储区。可以使用code定义表格常数,这样可以节省内部RAM的使用。例如,可以使用下面的代码保存共阴极数码LED的显示字模:
unsigned char code
led_buf={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
②内部RAM
内部数据存储器用以下关键字说明:
data: 直接寻址区,内部RAM的低128字节,地址范围为00H~0FFH。在用户程序中声明变量时,默认都保存在该区域。
idata:间接寻址区域,包括整个内部RAM区256字节,地址范围为00H~0FFH。
bdata:可位寻址区,地址范围为20H~2FH。
③外部数据存储器
外部RAM视使用情况可由以下关键字标识:
xdata:可指定多达64KB的外部直接寻址区,地址范围0000H~0FFFFH。在用户程序中,需要声明较大的数组时,可以使用xdata关键字将变量数组保存到扩展RAM中。例如:
unsigned char xdata arr;
pdata:能访问1页(256B)的外部RAM(很少用)。
---未完
本帖最后由 chen6502 于 2023-8-16 10:00 编辑
冲哥 第4集 上建立工程点亮第一颗LED :
1、LED点亮原理
老师通过形象的比喻,把GPIO口讲解的非常清晰明白。
GPIO是通用输入输出端口的简称,可以通过软件来读取其输入电平,或者控制它输出高低电平。
2、新建工程
3、点亮第一个LED
老师在这里逐条讲解了代码的作用,并讲解了出现问题如何查找。讲的非常明白。
本帖最后由 chen6502 于 2023-8-16 10:08 编辑
第4集 下实现自动下载工程:
需要先添加stc_usb_hid_32g.lib 库、cdc.lib、头文件
CDC虚拟串口下载功能
这部分还没有完全学懂,也可能是因为没有硬件来实践,等以后有了板子上机试验几次,自己就可以搞明白了。
CPU开放中断 遇到问题要静下心来,一点一点找出问题所在----
本节 总结
本帖最后由 chen6502 于 2023-8-16 10:22 编辑
冲哥 第5集:C语言运算符和进制数入门 上
1、C语言 print 函数的实现
print温度输出
串口接收单片机发送的16进制数,接收并转换为10进制数
2、数的进制:2进制、10进制、16进制
本帖最后由 chen6502 于 2023-8-16 10:28 编辑
第5集:C语言运算符和进制数入门 下
3、C语言常用运算符:
一、算术运算符:
加(+)减(-)乘(*)除(/)
模(余)运算符 (%):不允许出现浮点数,余数正负取决于被除数正负
自增 (++i, --i, i++,i--)
二、位运算:
右移(>>) 左移(<<)
按位与 (&)
按位或 (|)
按位异或 (^)
取反 (~)
三、赋值运算符:
+= 加赋值 (a +=3 等价于 a =a + 3)
-= 减赋值
*= 乘赋值
/= 除赋值
%= 求余赋值
&= 按位与赋值
|= 按位或赋值
^= 按位异或赋值
<<=左移位赋值
>>= 右移位赋值
4、数据的基本类型 :
本节总结:
页:
[1]
2