- 打卡等级:初来乍到
- 打卡总天数:7
- 最近打卡:2025-06-29 14:33:49
已绑定手机
新手上路
- 积分
- 41
|
今天学习了陈桂友老师的单片机第一课,心得如下:
一、本课程的特点:
1、最好要有一些C语言的基础,另外懂一些电路基础和数字逻辑就更好了。
2、理论和实践相结合,软件和硬件相结合,线上学习和线下实践相结合,才能学好单片机。
二、单片机背景机的前世今身:
1、国外单片机历史:
1)、Z80时代(1995年以前引入国内高校)
2)、8086时代(1995年开始引入)
3)、Intel 8031、8051、8751(2006年以前引入,需要专门的仿真器)
4)、Atmel AT89c51(需要专门的仿真器)
上述3、4为经典的51单片机系列,其中Intel8051单片机内核也是STC51单片机的基础。
2、国内STC单片机系列:
1)、STC89C51(经典型,需要专门的仿真器)
2)、STC12、15系列
3)、STC8系列
上述3中最新的典型代表为STC8H8K64U单片机,它集成了64KB Flash程序存储器,可在系统编程ISP,不需要
专门的编程器,另外也不需要专门的仿真器,大大提高了用户开发效率,另外它的资源非常丰富:如拥有超高速
8051内核,不需额外扩展程序存储器,有5个16位定时/计数器,最多60根I/O扣线,8路高级PWM等等,这些都为
开发者提供了更多的选项和可能。
三、学习单片机的条件:
1、需要认识一些单片机应用系统常用元器件:
如电阻、电容、二极管、三极管、晶体振荡器、数码管、万能板(套件)、试验箱等。
2、用到的软件:
有开发仿真软件和程序下载软件。
3、会使用正确步骤下载程序到试验箱:
1)、使用USB线将试验箱9.6与电脑进行连接;
2)、打开STC-ISP下载工具;
3)、选择单片机型号为“STC8H8K64U”,打开需要下载的用户程序;
4)、在试验箱9.6上按下如下顺序按键:按住试验箱上的P3.2/INTO按键——>按下ON/OFF电源按键——>
松开ON/OFF电源按键——>松开P3.2/INTO按键,正常情况下就能识别出“STC USB Writer(HID1)”设备。
5)、点击ISP下载软件中的“下载/编程”按钮即可。
四、总结:希望能在STC这个国产单片机的大平台上学有所成,希望国人都用自己民族品牌的单片机,支持国产单片机的发展,为筑梦科技强国加油!
今天继续学习了陈桂友老师的单片机第二课,心得如下:
一、入门实例:让指示灯闪烁
1、利用keil开发程序的大体步骤
- 下载安装keil
- 启动并创建一个项目
- 新建一个源文件并把它放入到项目中
- 编译项目并生成可以编程到程序存储器的HEX文件
- 利用ISP工具将程序下载到单片机中并验证程序
2、进一步细化
- 打开STC-ISP工具将STC单片机的型号加入到keil中
- 点击keil仿真设置
- 点击“添加型号和头文件到keil”
- 在浏览文件夹中选择keil安装的位置并确定
3、具体使用keil完成上面实例
- 启动keil
- 点击project创建项目
- 选择New Vision project
- 建议新建的工程文件夹不要放在系统盘中,点击其他盘符后新建文件夹
- 双击进入新文件夹中,在创建工程文件并保存
- 在弹出的对话框中选择单片机型号STC MCU Database,然后在下方选择具体的单片机型号并确定
此时会出现一行询问,是否将所选单片机的启动文件加入到你的工程项目中,此时我们可以按实际
情况而定,如果项目很小可以选择不添加
- 编程是在屏幕左侧project工程文件下进行,在工程文件名下会配有两级文件夹,每级文件夹都可以自行更
名,源代码是在工程项目下面新建的text文档中进行编辑的,在编辑代码前要养成先保存的好习惯,并给
源文件命名,然后就可以编写自己的点灯代码了
- 源代码编写好后是出于游离状态,因为它目前只存在于硬盘中,我们还要将它加载到我们的工程项目中,此时
我们要在屏幕左侧工程项目选择要添加到哪个文件夹中就双击它,在随后的对话框中我们会看到以.C后缀的一个
C文件,并双击它,此时在屏幕左侧我们之前选择要添加的那个文件夹的前面就会出现一个“+”号,说明我们添加
成功了,直接点击close关闭对话框即可
- 接下来我们将源文件通过设置和编译来获得可下载到单片机的. hex文件,设置时可以使用工具栏中的魔术棒,点击后会出现对话
框,然后点击output标签,并在其中勾选Greate HEX File项,然后点OK,之后点击工具栏中的编译工具进行编译,就会在我们的
工程项目中生成可下载到单片机的.hex文件了
- 将.hex文件下载到单片机,先打开STC-ZSP软件,选择好 芯片型号,这里我们选STC8H8K64U,然后点击打开程序文件,在我们的工程
文件夹中找到. hex源文件并打开,之后我们将试验箱的USB功能激活,先按下INTO按键并保持,再按下电源控制按钮,然后先松开电源
按钮,再松开INTO按钮,这时我们会在ISP软件的扫描串口中看到STC-USB Writer (HIDI) 字样,说明我们通信连接成功,最后点击“下载/编程”
就可以将.hex文件下载到单片机中了
二、有关基础概念
1、数制:进位计数制,简称数制,常用的有十进制、二进制、十六进制等
2、为什么用不同的进制?:人机交互常用的是十进制,计算机内部要用二进制,所以得利用接口技术作转换
3、不同数制间的转换:
- 十进制数转二进制数:整数部分转换方法----除以2取余直到商为零,最后将所有余数倒序排列,得出结果
小数部分转换方法----乘以2取整正序排列,直到满足精度为止
- 二进制数转为十进制数方法:按权展开相加
- 二进制数转为十六进制数方法原理:四位二进制数对应一位十六进制数,不足四位时高位补零
4、认识单位
- 位(bit):每位只有0或1两种状态
- 字节(Byte):内存的基本单位,8个位为一个字节
- 数量单位:K(千),1K=1024
M (兆),1M=1K*1K
G (吉),1G=1K*1M
T (太),1T=1M*1M
5、计算机系统
- 硬件:主机、输入设备、输出设备
- 软件:各种程序的主体(如操作系统、应用软件等)
- 访问:CPU访问存储器或访问I/O接口
- 地址总线AB:地址线的多少决定了系统直接寻址存储器的范围,CPU单向输出的地址信号,输出将要访问的
内存单元或I/O端口地址
- 数据总线DB:双向信号输出,CPU读操作时, CPU <------------ 外部数据
CPU写操作时,CPU数据 ------------> 外部
- 控制总线CB:双向信号输出,分为输出控制信号和输入状态信号
6、单片机应用系统:以单片机为核心,配以输入、输出、显示、控制等外部电路和软件,实现单一或多种功能的实用系统
三、总结:今天主要跟着陈桂友老师学习了能让LED灯闪烁的一个实例,从中体会Keil软件和STC-ISP软件的使用,这使很多和我
一样的初学者都能更直观和深切体会学以致用的乐趣,课程后半部是对一些基础概念的讲解,使同学们对理论部分加深印象,
最后我想说的是,单片机这门课其实并不枯燥,期待下一节课的收获
今天跟着陈桂友老师学习了第三课内容,心得如下:
一、数字逻辑与基本数字电路
1、逻辑电平:它是指一种信号的状态,通常由信号与地线之间的点位差来体现。数字电路中,
把电压的高低压用逻辑电平来表示,它包括高电平和低电平两种。在5V系统的
TTL/CMOS兼容数字逻辑电平,一般是:高于2.2V的输入,肯定认为是高电平,
用数字1表示;低于0.8V的输入,肯定认为是低电平,用数字0表示。
2、上升沿和下降沿
- 上升沿就是数字电平从低电平变为高电平的那一瞬间。
- 下降沿就是数字电平从高电平变为低电平的那一瞬间。
3、基本逻辑运算
- 逻辑变量的值只有两个:逻辑0和逻辑1.
- 基本数字逻辑运算主要包括:与、或、非、异或等。
- 逻辑运算只是按位进行运算,没有进位和借位问题,逻辑变量也没有符号问题。
- 逻辑与(AND):逻辑与也叫逻辑乘,运算结果叫逻辑积,运算规则是按位相与,当2位
逻辑变量都为逻辑1时,逻辑积才为1,否则为0.
- 逻辑或(OR):逻辑或也叫逻辑加,运算结果叫逻辑和,运算规则是按位运算,两位逻辑变量中只要有任何一个为逻辑1时
结果就为1,否则结果为0.
- 逻辑非(NOT):逻辑非也叫逻辑反,它是一个变量按位求反的运算。
二、单片机的应用场景
1、单片机的特点
- 集成度高,体积小。
- 功耗低
- 可靠性高
- 价格低廉:尤其是STC的单片机更有性价比。
2、应用场景
- 用于智能仪表
- 用于工业农业实时监控
- 计算机网络和通信领域
- 家用电器
- 医用设备领域
- 汽车设备领域
- 其他领域:如办公设备、商业活动、机械制造、国防航空航天等领域也有十分广泛的用途。
三、总结:今天和老师学习了基本的数字逻辑电路和STC单片机的应用场景,这对以后使用和设计
方面有了初步认识,在此感谢STC提供的这个平台和老师的讲解。
今天跟着陈桂友老师学习了第四课《单片机的内部结构》,心得如下:
一、CUP结构:单片机的中央处理器即CPU是由运算器和控制器组成
1、运算器:以8为算术/逻辑运算部件ALU为核心,加上通过内部总线而挂在其周围的暂存器TMP1、TMP2、累加器ACC、寄存器B、程序
状态标志寄存器PSW以及布尔处理机组成了整个运算器的逻辑电路,其中PSW是以字节地址为D0H的一个8位寄存器,其中
每一位代表一种状态,下面逐一列举:
- CY:进位标志位
- AC:半字节进位标志
- F0、F1:用户可用标志(用汇编语言时用到)
- RS1、RS0:寄存器区选择位
- OV:溢出标志
- P:奇偶标志(在串行数据通信的奇偶校验时很有作用,如累加器ACC中的1的个数为偶数P=1,否则P=0。每个指令周期都由硬件来置“1”或清“0”)
2、控制器:它是CPU的大脑中枢,包括定时控制逻辑、指令寄存器、译码器、地址指针DPTR及
程序计数器PC、堆栈指针SP、RAM地址寄存器,16位地址缓冲器等。
二、存储器空间及存储器
1、STC8H8K64U的程序和数据的存储是各自独立编址的,片内集成了3个物理上相互独立的存储空间:程序Flash存储器、内部数据存储器和
扩展数据存储器。
2、程序存储器:程序Flash存储器用于存放用户程序、常数数据和表格等信息,STC8H8K64U集成了64KB的程序Flash存储器,地址为:0000H~FFFFH,
单片机复位后,程序计数器内容为0000H,并从此开始执行程序。在程序Flash存储器中有些特殊的单元放置着中断服务程序的入口地址,每个中断
都有一个固定的入口地址,各个中断向量相差8个字节,比如外部中断0的入口地址是0003H,定时器/计数器0的中断地址是000BH,这两个中断向量
相差8个字节,由于空间太小,对于中断程序是无法展开的,所以在这8个字节中通常是放一句跳转指令将PC指引到真正的中断服务程序处去执行程序。
3、数据存储器:STC8H8K64U的数据存储器在物理上和逻辑上都分为两个地址空间:内部数据存储器和扩展数据存储器,数据存储器也称为随机存取数据
存储器。
- 内部数据存储器区(又称内部RAM),STC8H集成了256字节的内部RAM,地址是00H~FFH,可用于存放程序执行的中间结果和过程数据,其中低128字节
即地址从00H~7FH,称为基本RAM区,它又分为工作寄存器区(00H~1FH)、位寻址区(20H~2FH)、用户RAM和堆栈区(30H~7FH)这些可直接或间接
寻址。
- 高128位字节RAM即80H~FFH,只能间接寻址。
- 特殊功能寄存器(SFR)区和高128字节RAM区重叠,也是80H~FFH,只可直接寻址。
今天跟着陈桂友老师学习了第五课《存储器空间及存储器》,心得如下:
一、特殊功能寄存器
1、特殊功能寄存器是用来对片内各功能模块进行管理、控制、监视的控制寄存器和状态寄存器,它大体分为两类:一类与
芯片的引脚(I/O口)有关,如P0~P7;另一类用于芯片内部功能的控制或内部寄存器,如中断控制、定时器、串行口、SPI接口、
PWM模块的控制等。
2、特殊功能寄存器除了程序计数器PC和4个工作寄存器组外,其余的在SFR区(即80H~FFH地址空间)和扩展RAM(称为XDATA)区中,
在SFR区的称为传统特殊功能寄存器(SFR),位于XDATA区的称为扩展特殊功能寄存器(XFR)。前者用直接寻址方式访问,后者需要
将p_SW2(BAH)寄存器的最高位(EAXFR)置1,然后用读操作MOVX A,@DPTR和写操作MOVX @DPTR,A指令进行访问。
3、扩展数据存储区,也就是XRAM,之所以称它为外部RAM,是相当于8051内核的一种称呼,也是通过总线相连接,与老式8051在芯片外部
扩展存储空间是一样的,只不过STC将它封装进了芯片的内部,体积做的更小,让使用者更方便的进行开发和设计。STC8H8K64U可以访问
64KB的XRAM,在汇编语言中,XRAM要用“MOVX @DPTR”或者"MOVX @Ri”指令访问;在C语言中,使用xdata声明存储类型即可。
二、单片机的引脚
1、LQFP64封装(贴片式):芯片丝印左下方小圆点为第一引脚,逆时针排序至64脚;芯片丝印最下面一行最后一个字母为芯片版本号。
2、PDIP40封装(双列直插式)
3、单片机最小系统设计时注意事项:
- ADC的外部参考电源引脚ADC_VRef+一定不能悬空,必须接外部参考电源或直接连到VCC。
- 建议在VCC和GND之间加上去耦合电容22uf和0.1uf,可去除电源线噪声,提高抗干扰能力。
- 把仿真接口做好。
4、在画电路原理图时,建议使用单片机的逻辑符号图,便于原理的分析。
5、引脚简介:
- VCC/AVCC电源引脚,一般接+5V
- GND/AGNDD接电源地
- XTALI(与P1.7复用)和XATLO(与P1.6复用)通常用于外接晶体振荡器
- NRST(与P5.4复用)此脚出厂默认为I/O口,可通过STC-ISP软件下载程序时,将其设置成复位脚,复位电平为低电平有效
STC8H8K64U内部集成了高可靠复位电路,不需要外接上电复位电路,此时,该引脚可用于I/O功能。
- I/O引脚,除上述引脚外的其他引脚都可用作输入输出引脚
三、单片机的输入输出接口,以LQFP-64的接口为例:
- P0口(8根):P0.0~P0.7
- P1口(7根):无P1.2
- P2口(8根):P2.0~P2.7
- P3口(8根):P3.0~P3.7
- P4口(8根):P4.0~P4.7
- P5口(5根):P5.0~P5.4
- P6口(8根):P6.0~P6.7
- P7口(8根):P7.0~P7.7
1、I/O口的作用:
- 进行开关量(即高电平或低电平)的输入和输出。
- 用作复用功能(如总线接口、串行通信接口等)
2、STC8H8K64U的I/O口可由软件配置成4种工作模式,每个口的工作模式由2个控制寄存器中的相应位进行控制
- 准双向口/弱上拉模式
- 推挽输出/强上拉模式
- 高阻输入模式
- 开漏模式
以上各模式可通过STC-ISP的小工具中的I/O口配置工具进行设置是非常方便的。
3、在使用STC8H8K64U单片机的I/O口时的注意事项:
- P3.0和P3.1口上电后为弱上拉、准双向口模式
- 除P3.0和P3.1口外,其余I/O口上电后均为高阻输入状态,用户在使用I/O口前必须先设置I/O口模式。
- 上电时如果不需要使用USB进行ISP下载,P3.0/P3.1/P3.2这三个I/O口不能同时为低电平,否则会进入
USB下载模式而无法运行用户代码。
今天跟着陈桂友老师学习了第六课《I/O口的模式》,心得如下:
一、I/O口的作用几乎体现了单片机的所有功能,对于单片机的内部资源在使用时为了方便,最好针对所使用的
单片机做一个资源分配表,电路设计就按这个资源分配表进行设计,在编程开发时也按这个分配表进行相应
的配置。
二、I/O口的复用功能:大多数I/O口线具有复用功能,也称为功能引脚切换。
1、P0口:- 常用复用功能:ADC输入(ASC8~ADC14)、串口3、串口4、PWM输出控制
- 不常用复用功能:数据总线(D7~D0)\地址总线低8位(A7~A0)T3/T4时钟输出、T3/T4脉冲输入
2、P1口:
- 常用复用功能:ADC转换输入(ADC7~ADC0,无ADC2)、PWM输出、SPI通信线、串口2、串口3、I2C通信线
- 不常用复用功能:系统时钟输出、外接晶体引脚
3、P2口:
- 常用复用功能:SPI、I2C以及PWM输出
- 不常用复用功能:作为地址总线的高8位输出(A15~A8)
4、P3口:
- 常用复用功能:外部中断输入、SPI、I2C、串口1(用于程序的下载和仿真调试)、PWM输出
- 不常用复用功能:计数器输入、比较器输入和输出
5、P4口:
- 常用复用功能:SPI通信、读写控制信号、串口2
- 不常用复用功能:地址锁存信号
6、P5口:
- 常用复用功能:串口3、串口4、SPI接口的从机选择信号、PWM输出
- 不常用复用功能:比较器输入、复位脚、系统时钟输出
7、P6口:可复用为PWM输出
8、P7口:可复用为pwm输出和I2C接口
三、I/O口的复用功能的实现
是通过设置相关的特殊功能寄存器实现的,我们可以通过相关寄存器及各个位的定义表查询和使用。
四、I/O口的使用
- I/O口接上拉电阻到VCC
- 采用拉电流方式或灌电流方式:建议使用灌电流方式
- 当外部驱动电路不需太大功率时,可以使用普通三极管;如果驱动的功率器件较多时,建议采用达林顿管驱动器ULN2803;
如果想控制更大的电流时,可选择使用场效应管。
- I/O口外部状态的输入,当I/O口工作于准双向口时,由于STC8H8K64U是1个时钟周期的8051单片机,速度很快,如果通过
执行由低变高指令后立即读外部状态,此时由于实际输出还没有变高,可能读入的状态不对,解决的方法是在软件设置由低变高
后加延时,然后在读I/O口的状态。一般规律是上电后先延时,再设置模式、再延时。
五、单片机应用系统的典型构成
1、非总线扩展方式的单片机应用系统构成:
因STC8H8K64U单片机内已有64KB程序存储器和8KB的RAM,一般可以满足存储需求,此时,P0、P2和P4口不用总线方式,
即P0和P2口可用于普通I/O口功能;P4.2和P4.4不用于写和读控制信号,也用于普通I/O口功能。
2、总线扩展方式的单片机应用系统构成:(通常是扩展数据存储器)
如果需要扩展存储器容量或并行I/O,需要使用总线扩展方式。此时8位数据总线由P0口提供,16位地址总线由P2和P0口构成,
P4口中的/WR(P4.2)和/RD(P4.4)引脚作用是写和读控制,ALE(P4.5)信号用于锁存器的锁存控制,用以锁存由P0口输出的地址,从而
实现地址和数据的分离。典型的系统构成由以STC8H8K64U单片机为主,外围电路由地址总线高8位(P2口)、地址总线低8位(P0口)
数据总线(P0口)、/WR、/RD、ALE信号线、译码器、地址锁存器、数据存储器、并行I/O口芯片等组成。
|
|
|