看32位8051教学视频,送实验箱
本帖最后由 盘龙电子 于 2023-12-15 15:47 编辑第一集了解单片机 单片机是一种集成度很高的微处理器系统,具有强大的计算和控制能力,它由中央处理器、存储器、输入/输出接口和定时/计数器等组成。各个行业都在使用单片机。单片机已经进入各个行业 甚至千家万户,只是有些人还不知道。比如 智能家居,遥控玩具车等等。
传统8051单片机的特点:
(1)8051单片机中存在用于标准核心总线宽度的8位。
(2)它的速度是每个机器周期12个时钟周期。
(3)使用UART、USART、I2C、SPI、通信协议。
(4)Flash、ROM、SRAM存储器用于8051单片机。
(5)它基于CISC指令集架构。
(6)8051单片机是基于哈佛的架构,但它允许我们连接外部存储器并模拟冯诺依曼的架构。
(7)8051单片机的功耗是平均的。
(8)它的成员包括8051变体。
(9)与提供的功能相比,8051单片机的成本非常低。
ARM单片机的特点:
(1)大多数32位总线宽度存在于ARM单片机中,也有64位可用。
(2)它的速度是每个机器周期1个时钟周期。
(3)使用UART、USART、以太网、I2S、DSP、SPI、CAN、LIN、I2C通信协议。
(4)Flash、EEPROM、SDRAM存储器用于ARM单片机。
(5)它基于RISC指令集架构。
(6)PIC单片机基于哈佛架构。
(7)ARM单片机功耗低。
(8)其系列包括ARMv4、5、6、7和cortex系列。
(9)与提供的功能相比,ARM单片机的成本较低。
本帖最后由 盘龙电子 于 2023-12-15 15:53 编辑
STC8系列速度快,资源丰富。对于IO口可设置为准双向,比如可通过对P0M0和P0M1进行设置进行IO口的设置,再对io口进行输入输出的判断。对于学习单片机,需要掌握常用电子元件的使用,熟悉元件性质,在日常学习中学习到编程与硬件设计。通过掌握led灯、数码管、定时器、中断、串口、外部中断来学习一款单片机,通过做项目来深化所学知识,比如做个循迹车。运用串口调试助手、逻辑分析仪来熟悉所学知识。不仅要懂得C语言编程知识,还要学习电路设计。汇编可以理解程序运行,改善运行效率。 本帖最后由 盘龙电子 于 2023-12-15 16:04 编辑
工欲善其事,必先利其器 内容:开发环境搭建和程序下载 1、STC-ISP:所有STC的单片机下载工具(官网下载最新版即可); 2、STC32手册:工具书; 3、PDF阅读器:WPS、福昕(自己选用起来舒服的); 4、C251:还是keil,正常安装就行; 讲解工具的安装和使用技巧,适合自己的就是最棒的;
单片机程序设计语言分为4种1.高级语言2.汇编语言 3.机器指令4.微指令keil的第一次使用 如何编程。 发表认真学习的学习心得,帮初学者一起前进 本帖最后由 盘龙电子 于 2023-12-15 16:06 编辑
建立工程点亮一颗LED上 1、LED点亮原理 ① 了解基本硬件电路,GPIO的概念(传统单片机的IO口); 2、新建工程 ① 跟着手册创建工程,敲完这个工程,你会发现各种意想不到的状况(标点符号、大小写、单词),没有试验箱一样收获多多; 3、 点亮第一个LED ① 举一反三,拓展思维(其实宏定义是个好东西); ② SFR寄存器的引入(操作内容后期慢慢分解);
例: /*Demo:点灯*/ //------------------------------------------------------------------------------------------------ sfr P0 = 0x80; //P0口设置 sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P4 = 0xC0; //P4口设置 sfr P4M1 = 0xB3;
sfr P4M0 = 0xB4;
sfr P6 = 0xE8; //P6口设置 sfr P6M1 = 0xC8;
sfr P6M0 = 0xCC;
sbit P40 = P4^0; //三极管控制引脚 sbit P60 = P6^0; //LED控制引脚
void main() { P0M0 = 0x00; //准双向模式 P0M1 = 0x00;
P4M0 = 0x00; P4M1 = 0x00;
P6M0 = 0x00; P6M1 = 0x00;
while(1) //大循环 { //P0++; P40 = 0; P60 = 0; } } //------------------------------------------------------------------------------------------------ 本帖最后由 盘龙电子 于 2023-12-15 16:06 编辑
LED闪烁和花式点灯上 硬件:STC大学计划实验箱-V9.6(多了一个示波器试验)、软件和手册官网都更新了 #define MAIN_Fosc 24000000UL //IRC系统时钟,方便后期修改(宏定义的小技巧) 1、基于Delay实现的LED闪烁; ① void delay_ms(u16 ms) //延迟多少毫秒,注意使用时的一个小弊端 { u16 i; do { i = Main_Fosc/6000; while(--i); } while(--ms); } 拓展:do while、for,都可以做延迟,STC_ISP下载器提供有样例; 本帖最后由 盘龙电子 于 2023-12-15 16:07 编辑
stc32g 的封装类型及引脚定义 这个必须要掌握好涉及到后面的电路图设计 及外设电路设计 本帖最后由 盘龙电子 于 2023-12-14 10:26 编辑
点亮一颗LED,基本要素为通路,有高低电平,1为高电平,0为低电平。I/O全名为GPIO即通用输入输出端口的简称,可以通过软件来读取其输入电平或者控制它输出高低电平。之后讲的是利用软件建立工程,在keil软件下编辑完代码以后,将.hex文件成功创建完毕之后会出现编译完成,自动创建,而这个.hex文件包含了我们书写代码的一个产物,我们最终就是将这个.hex文件下载到芯片中。没有实验箱 用其他型号的编程器实验呢。 本帖最后由 盘龙电子 于 2023-12-15 16:07 编辑
按键的原理、按键的代码实现过程;按键的应用、数组的应用;认识蜂鸣器的功能、控制原理、蜂鸣器应用。
按键本质上是两个引脚之间的通断,按下之后有的是导通,有的是断开。机械开关在按下时有抖动,抖动的时间一般是10ms,经典按键操作,按键消抖,确实经典。不消抖,当按键按下时,比如点灯,不亚于抛骰子猜大小。
判断按键有没有按下,==两个等号表示判断。
if(引脚==0){}
运用取反的操作,~,来点灯,每一次按下的状态都与上次相反,上次是亮,下次就是灭。
判断按键的弹开。
while(引脚==0);
当按键按下时,该引脚检测到的信号一直是低电平,所以程序会在这里等待到按键弹开,即引脚变为高电平时,程序继续执行
用按键按下来实现,流水灯的效果。
数组定义:
数据类型 名称[长度 ]={数值};
使用
赋值:名称[ 索引]= 数值
索引就是由0往上的正整数值。
用数组来实现流水灯效果。
本帖最后由 盘龙电子 于 2023-12-15 16:08 编辑
按键点灯上 作业分析: void SOS_Led(void);//三长两短LED闪烁 用延迟函数实现,对P60亮灭200(和500)毫秒得延迟实现,可自行调整参数观察显示效果
1、按键的原理;
机械按键:自身特性,导致触电断开、闭合时据不完全统计会有5-10毫秒的接触不良(需要做按键消抖处理);
思考:机械方面是否能解决呢?
2、按键的代码实现过程(KEY按需宏定义需要控制的引脚);
if(KEY == 0) if(KEY == 0)
{ {
Delay_ms(10); Delay_ms(10);
if(KEY == 0) if(KEY == 0)
{ {
执行功能; while(KEY == 0)
} 执行功能;
} }
}
做好CV工程师;
3、按键的应用
按键的各种玩法:
按下LED点亮,松开熄灭; //消抖,判断按键是否按下
按下LED熄灭,松开点亮; //同上,反过来
按键按下一次,LED状态改变一次; //消抖,判断按键是否按下,取反
了解数码管动态刷新和控制原理,8位数码管同时点亮,要学会每一位数码管的任意内容的显示根据蜂鸣器内有无震荡源,分有源蜂鸣器和无源蜂鸣器。通过按键控制蜂鸣器响起来,在程序中和按键控制LED灯的亮灭原理一样,改变一下引脚就行。
页:
[1]
2