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

STC8H单片机教程学习打卡

[复制链接]
  • 打卡等级:常住居民I
  • 打卡总天数:78
  • 最近打卡:2025-04-29 08:19:44
已绑定手机

4

主题

153

回帖

300

积分

中级会员

积分
300
发表于 2024-6-14 15:43:45 | 显示全部楼层
本帖最后由 ryj870925 于 2024-6-14 15:54 编辑

2024.06.14 学习第六课
本课继续学习了IO口的工作模式,以及STC中各个IO口的复用功能,老师通过逐条的讲解,将IO口的主要复用功能进行了讲解,并对在IO口实际PCB布局时候的具体应用讲授了自己的经验,例如驱动LED时用拉电流还是灌电流的用法进行了对比讲解。使我能从根本上理解和学习STC单片机的用法。
613174224.png 613174550.png 613174838.png 613174946.png 613180940.png
613181220.png
另外需要提出一点疑问,视频中在讲解至下图时,老师说IO口除了驱动三极管还可以驱动场效应管,在讲解场效应管的管脚时将三极管的C极比作场效应管的栅极(也就是G极)。
根据自己所学,认为三极管B=场效应管G/三极管C=场效应管D/三极管E=场效应管S,所以视频中老师的管脚叫法应该是不正确的。

613195227.png
然后又学习了单片机应用系统的典型构成,以及单片机内部的单片机内核与集成在单片机内的相应存储器的连接关系及访问方式。
613195304.png 613195407.png 613195829.png
最后,学习了STC8H单片机的汇编语言设计,老师也将了,虽然汇编语言现在较少使用,但是个别平台移植以及修改部分老旧程序时仍然会涉及到汇编语言,而且通过学习汇编语言能够从根本上了解单片机本身的工作原理和方式,对C语言的编程也是有较大帮助的。
0613195952.png 613200848.png
613201110.png 613201304.png 613202219.png 613202340.png 613202425.png 613202528.png 614151707.png 614151720.png 614151948.png 614152604.png




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:78
  • 最近打卡:2025-04-29 08:19:44
已绑定手机

4

主题

153

回帖

300

积分

中级会员

积分
300
发表于 2024-10-28 20:57:40 | 显示全部楼层
本帖最后由 ryj870925 于 2024-11-2 21:34 编辑

2024.10.28 学习第七课


本课与上节课末尾相接,继续学习了汇编语言在编程时“头文件的引用”的区别和注意点;汇编中助记符语音和机器代码的关系,并举例说明;各常用操作码的名称及含义;操作数的概念及在程序中的相关说明及错误示例;
学习心得:通过学习本课,学到了汇编中从头文件开始到程序编写中的助记符及操作码和操作数的概念及相关用法,学到了书本上没有的提示,受益匪浅。
1截图_20241028203040.png
2截图_20241028203211.png
3截图_20241028203428.png
4截图_20241028203653.png
5截图_20241028203918.png
6截图_20241028204040.png
7截图_20241028204409.png
8截图_20241028204731.png

2024.11.01-02继续学习剩余第7讲的内容
本次学习了汇编语音中指令的格式与分类,指令格式具体讲述了在汇编环境中指令的符号、标点的使用及注意事项,并同时与C语言编程环境进行对比,以及指令代码的存储格式,指令中符号的约定,真是一点都不愿意落下一个知识点。
后边又讲了寻址及相应的寻址方式,并通过详细的对比和讲解,说明了寻址中容易产生误解的操作地址和相关的操作数等之类的容易出错的地方,受益匪浅。
9截图_20241028204853.png
11 screenshot-1730551572476.png
12 screenshot-1730551670826.png
13 程序跑飞screenshot-1730551800482.png
14screenshot-1730551868409.png
15screenshot-1730551906495.png
16screenshot-1730552071614.png
17 screenshot-1730552258558.png
18 screenshot-1730552328175.png
19 screenshot-1730552396181.png
20 screenshot-1730552450057.png
21 screenshot-1730552571560.png
22screenshot-1730552762175.png
23screenshot-1730552974157.png
24screenshot-1730553021554.png
25screenshot-1730553274188.png
26screenshot-1730553406681.png


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:78
  • 最近打卡:2025-04-29 08:19:44
已绑定手机

4

主题

153

回帖

300

积分

中级会员

积分
300
发表于 2024-11-19 21:25:49 | 显示全部楼层
本帖最后由 ryj870925 于 2024-11-19 21:32 编辑


2024.11.19
今天学了第8课,数据传送指令,传送指令中还涉及到了直接寻址和间接寻址,陈老师在keil环境中详细演示了寻址过程中各寄存器的状态以及如何去验证自己的程序有没有问题,另外还有就是编译程序时半角和全角符号的注意。后边还讲了程序中的加减乘除等运算。

1screenshot-1730638291559.png     2截图_20241119195606.png
3截图_20241119201608.png     4截图_20241119201635.png
5截图_20241119202234.png     6截图_20241119202525.png
7截图_20241119203059.png     8截图_20241119203535.png
9外部ROM查看截图_20241119203655.png     10截图_20241119204212.png
11截图_20241119204404.png     12截图_20241119204901.png
13截图_20241119205131.png     14截图_20241119205227.png
15截图_20241119205347.png     16截图_20241119205413.png
17截图_20241119205429.png     18截图_20241119205548.png
19截图_20241119205709.png     20截图_20241119205723.png
21截图_20241119205819.png     22截图_20241119205835.png
23截图_20241119205906.png     24截图_20241119205930.png
25截图_20241119210010.png     26截图_20241119210053.png
27截图_20241119210117.png     28截图_20241119210147.png
29截图_20241119210304.png     30截图_20241119210342.png
31截图_20241119210410.png     32截图_20241119210454.png
33截图_20241119210547.png     34截图_20241119210628.png
35截图_20241119210816.png     36截图_20241119210859.png
37截图_20241119211041.png     38截图_20241119211104.png
39截图_20241119211152.png     40截图_20241119211246.png
41截图_20241119211305.png     42截图_20241119211505.png
43截图_20241119211633.png



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:78
  • 最近打卡:2025-04-29 08:19:44
已绑定手机

4

主题

153

回帖

300

积分

中级会员

积分
300
发表于 2024-12-26 10:04:35 | 显示全部楼层
第九讲,主要学习了汇编语音中位操作及位状态控制指令,已经位地址和位中内容的区分,重点是别弄混淆了。
第二部分是转移指令,老师对转移指令做了演示,并对常用的指令进行了实际应用,使得对此类指令的了解更为清晰。

4截图_20241120193305.png
6截图_20241120194056.png




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:78
  • 最近打卡:2025-04-29 08:19:44
已绑定手机

4

主题

153

回帖

300

积分

中级会员

积分
300
发表于 2024-12-26 14:43:27 | 显示全部楼层
第十讲,陈老师讲解了汇编语音程序设计的一般步骤和框架,以及汇编语言程序内的循环、调用、查表及跳转相关的知识点。着重讲解了程序段和程序流程图的关联性。学习了本节之后对汇编语言的程序内容、框架和设计有了更为直观的了解。

screenshot-1735194171091.png
screenshot-1735194401080.png
screenshot-1735194592536.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:78
  • 最近打卡:2025-04-29 08:19:44
已绑定手机

4

主题

153

回帖

300

积分

中级会员

积分
300
发表于 2025-1-14 17:04:51 | 显示全部楼层
2025.01.12-14学习了第十一讲



第十一讲
一.a=a+1;   a+=1;等效
二.推荐谭浩强C语言的书
三.C51对ANSI C的扩展
        C51扩展的关键字   _at_、sbit、sfr、bit、xdata、code与变量有关,interrupt与中断函数有关。
        1.变量或数据类型,声明变量不能超出取值范围,sfr、sfr16主要是用于声明特殊功能寄存器。pdata坚决不要使用,尽可能使用xdata。
        2.keil C51指针的重要性
           volatile 告诉编译器不要优化
           interrupt中断

void UART1_ISR(void) interrupt 4
{
/*中断服务程序的代码*/
}

宏定义#define UART1_VECTOR 4

一、关系运算符
        特别注意“==”和“=”的区别

screenshot-1735214117228.png screenshot-1736682706702.png screenshot-1736682816200.png screenshot-1736682979333.png
screenshot-1736683210024.png screenshot-1736683342833.png screenshot-1736684032772.png screenshot-1736684236425.png
screenshot-1736684270841.png screenshot-1736685134199.png screenshot-1736685617974.png screenshot-1736685848259.png
screenshot-1736686405013.png 微信截图_20250114165141.png 微信截图_20250114165345.png 微信截图_20250114165352.png
微信截图_20250114165610.png 微信截图_20250114165700.png 微信截图_20250114165735.png 微信截图_20250114165848.png
微信截图_20250114165941.png 微信截图_20250114165948.png 微信截图_20250114170016.png 微信截图_20250114170051.png
微信截图_20250114170100.png 微信截图_20250114170150.png 微信截图_20250114170204.png 微信截图_20250114170211.png
微信截图_20250114170219.png


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:78
  • 最近打卡:2025-04-29 08:19:44
已绑定手机

4

主题

153

回帖

300

积分

中级会员

积分
300
发表于 2025-1-17 10:38:41 | 显示全部楼层
2025.01.14-17学习了第12讲



1.仿真、调试的重要性
2.延时函数声明,void Delay500ms(void);(注意,一定要加“void”和“;”),括号中的VOID,在声明和定义中需要规范写上,在调用时不用写。
        并且讨论了延时函数中指定data和xdata的问题
3.利用芯片仿真的步骤(24:10)
        STC-ISP--“keil仿真设置”---试验板按住“P3.2”不放,再按住“ON/OFF”放开,串口出现“STC-USB Writer(HID1)”
        “keil仿真设置”---“使用USB口进行仿真”---“将所选目标单片机设置为仿真芯片”
        按板上“ON/OFF”芯片重新上电。
        返回“keil软件”点击“魔术棒”,弹出“Options for Target"....."”,点击“Debug”选中下边“use STC Monitor-51 Driver”点击右侧“Settings”,弹出“Target Setup”下选中“USB”,点击OK确认。
        点击“keil软件”上的“debug”图标,进行仿真。(28:10)

4.for函数的写法for(i=0;i<8;i++)
5.LEDdata=0x01;左移(LEDdata<<=1;)8位后1就没了,
        增加if(LEDdata==0)
                LEDdata=0x01;
6.STC单片机中部分Flash可作为EEPROM使用。(37:25) 24C01.93C46
        STC  EEPROM的写操作只能将字节中的1写为0,当需要将字节中的0写为1时,必须执行扇区擦除。
7.程序中用到NOP指令时,头函数应包含<#include "intrins.h">
        NOP指令的格式< _nop_(); >

微信截图_20250114171807.png 微信截图_20250114172050.png
微信截图_20250114172856.png 微信截图_20250114173242.png
微信截图_20250116175419.png 微信截图_20250117101934.png
微信截图_20250117102340.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:78
  • 最近打卡:2025-04-29 08:19:44
已绑定手机

4

主题

153

回帖

300

积分

中级会员

积分
300
发表于 2025-1-17 12:58:32 | 显示全部楼层
2025.01.17学习第13讲


一、中断
1.中断的概念,中断相关概念:中断源、中断响应、中断服务、中断返回。
2.中断优先级、中断嵌套
3.中断同时发生时高优先级先执行,低优先级的保持时间(讨论,同传统8051单片机不同,STC会同ARM一样挂起,STC响应中断时间-6个时钟)
4.探讨ADC转换和串行通讯的优先级问题,串行通讯优先级高的话会导致ADC转换精度不高,ADC转换优先级高的话会导致串行通讯不稳定。引入单片机DMA功能.
5.自动保护断点的问题。
6.保护现场(寄存器的值)和恢复现场。
        保护现场--堆栈(PUSH),弹出(POP)。非常重要,但没有那么难。
7.堆栈---后进先出
8.中断的撤除----中断本身的撤除;中断请求标志的撤除(自动撤除,指令撤除)(38:00)

二、STC8H8K64U单片机的中断源
1.STC8H8K64U单片机有44个中断源
2.中断源及控制(1:03:16)
3.中断标志位
4.定时器中断和外部中断都可以自动清标志位,串口中断必须手动清标志位。
        全部清S2CON=0X00;如果要保留最高位,只清B1 B0,可以写S2CON&=0XFC;



微信截图_20250117104121.png 微信截图_20250117104804.png
微信截图_20250117104902.png 微信截图_20250117105541.png
微信截图_20250117112534.png 微信截图_20250117112731.png
微信截图_20250117112832.png 微信截图_20250117113225.png
微信截图_20250117113744.png 微信截图_20250117114737.png
微信截图_20250117115108.png 微信截图_20250117115658.png





回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:78
  • 最近打卡:2025-04-29 08:19:44
已绑定手机

4

主题

153

回帖

300

积分

中级会员

积分
300
发表于 2025-1-17 15:28:31 | 显示全部楼层


2025.01.17学习了第14讲

1.中断标志位--电源控制寄存器PCOM(LVDF低电压检测标志位)
                        SPI状态寄存器SPSTAT中的标志位
                        ADC的控制寄存器ADC_CONTR中的标志位
2.中断的开放允许和禁止
3.中断请求标志位在中断开关的前边,所以标志位的状态与中断开关是否打开并无关系。
4.中断请求的撤除,硬件自动清零。
5.中断应用开发举例

  1. #include "stc8h.h"
  2. void main(void)
  3. {
  4.         delay500ms();
  5.         P4M1=0xff;
  6.         P4M0=0xff;
  7.         P6M1=0;
  8.         P6M0=0;
  9. }
  10. void INT0_ISR(void) interrupt INT0_VECTOR
  11. {
  12.         P60=~P60
  13. }
复制代码



6.P3.2中断口串300R电阻的原因。
7.50:40演示C语言程序转汇编。


微信截图_20250117141908.png 微信截图_20250117141931.png
微信截图_20250117144017.png 微信截图_20250117144241.png
微信截图_20250117144404.png 微信截图_20250117145715.png
微信截图_20250117145926.png 微信截图_20250117150148.png
微信截图_20250117152036.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:78
  • 最近打卡:2025-04-29 08:19:44
已绑定手机

4

主题

153

回帖

300

积分

中级会员

积分
300
发表于 2025-1-22 11:27:43 | 显示全部楼层
2025.01.22学习了第15讲

一、STC8H8K64U单片机的定时器/计数器结构
1.定时器/计数器的应用
        交通灯
2.定时器的作用:
        ①定时控制、
        ②分频器(事件记录-计数器)、
        ③可编程时钟输出(给外部提供时钟)、
        ④串口波特率发生器
3.定时/计数器的一般结构
        加1计数器(0-65535,65536溢出)、控制信号(相关寄存器)、系统时钟频率-12分频或不分频

4.TMOD设置定时器工作模式
                TMOD寄存器地址为89H,不能被8整除,所以在操作该寄存器时不能按位操作。(89H高半字节是设置T1,低半字节是设置T0)
5.T0/T1工作方式
        定时器工作频率越快,精度越高
6.T2的工作模式---固定为16位自动重装载模式
        
二、STC8H8K64U单片机的定时器/计数器相关寄存器

重点说明,T2-T4另外还设置了时钟预分频器,地址为16位(外部地址),使用前还需将“XSFR”设置为有效。

对滤波的时钟进行计数---定时器
对外部管脚输入时钟进行计数---计数器
写入影子寄存器(16位自动重装)的内容是定时器产生中断时自动载入



微信截图_20250122093854.png 微信截图_20250122102416.png
微信截图_20250122102822.png 微信截图_20250122103825.png
微信截图_20250122104402.png 微信截图_20250122105049.png
微信截图_20250122105154.png 微信截图_20250122105339.png
微信截图_20250122105439.png 微信截图_20250122105525.png
微信截图_20250122105547.png 微信截图_20250122105609.png
微信截图_20250122105653.png 微信截图_20250122110724.png
微信截图_20250122111139.png 微信截图_20250122111957.png
微信截图_20250122112131.png

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:24 , Processed in 0.162976 second(s), 97 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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