
单片机学习
文章平均质量分 51
以51单片机为主,
xll_007
这个作者很懒,什么都没留下…
展开
-
基于C8051F020单片机的液晶显示,LCD1602并口驱动,单片机并口驱动LCD1602
基于C8051F020单片机,通过并行驱动LCD1602,进行字符显示。LCD1602是一种广泛使用的字符型液晶显示模块,有8根数据线和3根控制线E,RS和R/W,8根数据线与单片机P6连接,3根控制线与使用P1口的P1.4、P1.5、P1.6连接,VO连接了P1.7,通过给P1.7赋值0或1,让LCD最亮或最暗。原创 2025-03-22 23:04:11 · 235 阅读 · 0 评论 -
基于C8051F340单片机的按钮与LED配合,按下点亮
基于C8051F340单片机的按钮与LED配合,按下点亮。单片机最基本的输入输出控制,按钮与LED相互配合,按下按钮,点亮LED灯。单片机学习的基本功,大佬勿喷!原创 2024-05-16 21:20:52 · 317 阅读 · 0 评论 -
基于C8051F340单片机的内部温度传感器,测量温度的C程序
基于C8051F340单片机的内部温度传感器,测量温度的C程序。C8051F340单片机片内的温度传感器,可以进行温度测量,温度传感器可配置为ADC的输入,通过ADC进行测量。原创 2024-05-16 20:56:17 · 578 阅读 · 0 评论 -
基于C8051F340单片机的增强型串行外设接口——SPI0从器件模式应用C程序
基于C8051F340单片机的增强型串行外设接口——SPI0从器件模式应用C程序。C8051F340单片机的增强型串行外设接口(SPI0)提供访问一个全双工同步串行总线的能力。SPI0 可以作为主器件或从器件工作,可以使用 3 线或 4 线方式,并可在同一总线上支持多个主器件和从器件。本文展示配置为从器件模式。原创 2024-05-15 11:18:46 · 587 阅读 · 0 评论 -
基于C8051F340单片机的增强型串行外设接口——SPI0主器件模式应用C程序
基于C8051F340单片机的增强型串行外设接口——SPI0主器件模式应用C程序。C8051F340单片机的增强型串行外设接口(SPI0)提供访问一个全双工同步串行总线的能力。SPI0 可以作为主器件或从器件工作,可以使用 3 线或 4 线方式,并可在同一总线上支持多个主器件和从器件。本文展示配置为主器件模式。原创 2024-05-15 11:02:48 · 665 阅读 · 0 评论 -
基于C8051F340单片机的中断系统——外部中断的应用C程序
基于C8051F340单片机的中断系统——外部中断的应用C程序。C8051F340单片机有两个外部中断源/INT0 和/INT1 可被配置为低电平有效或高电平有效,边沿触发或电平触发。本文通过P2.2、P2.3输出驱动LED闪烁,P2.0、P2.1分别接按钮,并连接到P0.0,P0.1作为外部中断源。原创 2024-05-14 13:02:50 · 426 阅读 · 0 评论 -
基于C8051F340单片机的可编程技术阵列——看门狗定时器的应用C程序
基于C8051F340单片机的可编程技术阵列——看门狗定时器的应用C程序。C8051F340单片机的可编程技术阵列PCA的的模块 4 可以实现可编程看门狗定时器(WDT)功能。如果连续两次对 WDT更新寄存器的写操作间隔时间超过规定的值,看门狗定时器将产生一次复位。可以根据需要用软件配置和使能/禁止 看门狗。本文通过P2.2输出LED闪烁(10Hz),P2.0读取按钮状态,当按钮按下并保持,超过一定的时间,单片机将因为看门超时触发系统复位,LED闪烁频率加快(100Hz)。原创 2024-05-14 10:09:16 · 525 阅读 · 0 评论 -
基于C8051F340单片机的内部可编程低频振荡器——低频睡眠和唤醒的应用C程序
基于C8051F340单片机的内部可编程低频振荡器——低频睡眠和唤醒的应用C程序。C8051F340单片机包含一个可编程低频内部振荡器,该振荡器的标称频率为80KHz。该低频振荡器电路包含一个分频器,分频数由寄存器 OSCLCN 中的 OSCLD 位设定,OSCLF 位可用于调节该振荡器的输出频率。本文模拟单片机进入休眠模式,只有低频振荡器和定时器0。原创 2024-05-13 22:33:48 · 403 阅读 · 0 评论 -
基于C8051F340单片机的振荡器——时钟乘法器的应用C程序
基于C8051F340单片机的振荡器——时钟乘法器的应用C程序。C8051F340有一个可编程内部高频振荡器、一个可编程内部低频振荡器、一个外部振荡器驱动电路和一个 4 倍时钟乘法器。系统时钟可以来自任何一个内部振荡器、外部振荡器电路或 4 倍时钟乘法器二分频。本文是使用时钟乘法器的应用程序。原创 2024-05-13 21:49:53 · 433 阅读 · 0 评论 -
基于C8051F340单片机的外部振荡编程——使用外部CMOS时钟源作为振荡器的C程序
基于C8051F340单片机的外部振荡编程——使用外部CMOS时钟源作为振荡器的C程序。外部振荡器电路可以驱动外部晶体、陶瓷谐振器、电容或 RC 网络。也可以使用一个外部CMOS 时钟提供系统时钟。本文是采用外部CMOS 时钟提供系统时钟。原创 2024-05-12 16:07:22 · 352 阅读 · 0 评论 -
基于C8051F340单片机的外部振荡编程——使用外部电容作为振荡源的C程序
基于C8051F340单片机的外部振荡编程——使用外部电容作为振荡源的C程序本文使用外部电容作为单片机的外部振荡源,电容不应大于 100pF;但当电容值很小时,PCB 的寄生电容将在总电容中占支配地位,使频率偏差很大。3、频率计算公式为:本文采用的电容频率大约为180KHz,电容值为33pF,电源为3.3V。从表中选择K系数,得到KF=22,XFCN 值为 011b。原创 2024-05-12 15:41:23 · 484 阅读 · 0 评论 -
基于C8051F340单片机的外部振荡编程——使用外部RC振荡电路构成的振荡器的C程序
基于C8051F340单片机的外部振荡编程——使用外部RC振荡电路构成的振荡器的C程序。本文使用外部 RC 电路作为单片机的外部振荡源,电容不应大于 100pF;但当电容值很小时,PCB 的寄生电容将在总电容中占支配地位。如果所希望的频率是 100kHz,选 R = 246kΩ 和 C = 50pF。频率计算公式如下:3、实际上手头并没有246K的电阻,实际手头只有330K的电阻和33pF的电容,计算出的RC的频率为82.5KHz。原创 2024-05-11 10:43:30 · 364 阅读 · 0 评论 -
基于C8051F340单片机的外部振荡编程——使用外部石英晶体振荡器的C程序
基于C8051F340单片机的外部振荡编程——使用外部石英晶体振荡器的C程序编程。本文使用外部晶体振荡器作为 单片机的外部振荡源,在晶体振荡器被使能时,振荡器幅度检测电路需要一个建立时间来达到合适的偏置。在使能晶体振荡器和检查 XTLVLD 位之间引入 1ms 的延时可以防止提前将系统时钟切换到外部振荡器。在晶体振荡器稳定之前就切换到外部晶体振荡器可能产生不可预见的后果。原创 2024-05-11 10:26:59 · 682 阅读 · 0 评论 -
基于C8051F340单片机的可编程计数器,工作在软件定时器模式的C程序
基于C8051F340单片机的可编程计数器,工作在软件定时器模式的C程序。C8051F340单片机的可编程计数器,可以工作在软件定时器模式,当成一个定时器来用,当其他定时器资源用完后,PCA的这个软件定时器就可以作为一个定时的备选。PCA的软件定时器模式也称为比较器方式。PCA将计数器/定时器的计数值与模块的16位捕捉/比较寄存器(PCA0CPHn和PCA0CPLn)进行比较。当匹配时,PCA0CN中的捕捉/比较标志(CCFn)被置‘1’,并产生一个中断(如果CCF中断被允许)。原创 2024-05-10 10:40:17 · 332 阅读 · 0 评论 -
基于C8051F340单片机的可编程计数器PCA0工作在频率输出方式的C程序
基于C8051F340单片机的可编程计数器PCA0工作在频率输出方式的C程序。在频率输出模式,输出方波频率。频率输出方式可在模块的CEXn引脚产生可编程频率的方波。捕捉/比较模块的高字节保持输出电平改变前要计的PCA时钟数。频率计算公式为:FPCA是由PCA方式寄存器(PCA0MD)中的CPS2-0位选择的时钟的频率。捕捉/比较模块的低字节与PCA0计数器的低字节比较;两者匹配时,CEXn的电平发生改变,高字节中的偏移值被加到PCA0CPLn。原创 2024-05-10 10:17:23 · 498 阅读 · 0 评论 -
基于C8051F340单片机的可编程计数器PCA0边沿触发的捕捉方式C程序
基于C8051F340单片机的可编程计数器PCA0边沿触发的捕捉方式C程序。C8051F340单片机的可编程计数器PCA0可以工作在边沿触发的捕捉模式。本程序中应用定时器2产生方波通过P0.1输出,然后通过P0.0引入到PCA0。硬件上需要将P0.0和P0.1短接。原创 2024-05-09 16:02:57 · 528 阅读 · 0 评论 -
基于C8051F340单片机的可编程计数阵列PCA0工作在8位脉宽调制器方式输出PWM波
本文基于C8051F340单片机的可编程计数阵列PCA0工作在8位脉宽调制器方式输出PWM波。PCA0每个模块都可以被独立地用于在对应的CEXn引脚产生脉宽调制(PWM)输出。PWM输出的频率取决于PCA计数器/定时器的时基。使用模块的捕捉/比较寄存器PCA0CPLn改变PWM输出信号的占空比。原创 2024-05-09 14:14:12 · 491 阅读 · 0 评论 -
基于C8051F340单片机的定时器2 工作在两个独立8位定时器的C程序
通过定时器2计时,控制两个LED灯的闪烁,LED1 100ms闪烁一次,LED2 30ms闪烁一次。使用单片机内部的12M晶振,进行硬件12分频,并进行软件8分频。X*12 * 8/12000000=0.001(1ms) X=125,也就是计数器需要计125次数,定时器2在8位方式,总共可以计2的8次方次数,也就是256次,因为是从0开始计,最多计导255次,现需要计125次,则定时器的初始值应该为255-125=130。原创 2024-05-08 14:21:14 · 711 阅读 · 0 评论 -
基于C8051F340单片机的定时器2 工作在16 位自动重装载方式的C语言定时程序
基于C8051F340单片机的定时器2 在16 位自动重装载方式的定时程序。通过定时器2计时,控制LED灯的闪烁(50ms闪烁一次)。使用单片机内部的12M晶振,进行硬件12分频,并进行软件8分频,目的是为了让计时器能够计50ms级。X*12 * 8/12000000=0.05(50ms) X=6250,也就是计数器需要计6250次数,定时器2总共可以计2的16次方次数,也就是65536次,因为是从0开始计,最多计导65535次,现需要计6250次,则定时器的初始值应该为65535-6250=59285原创 2024-05-08 14:05:39 · 537 阅读 · 0 评论 -
基于C8051F340单片机的定时器0 工作在方式3——两个独立8位定时器的程序
基于C8051F340单片机的定时器0 工作在方式3,两个8位定时器。通过定时器0计时,控制两个LED灯的闪烁,其中一个定时器控制一个LED100ms闪烁一次,一个定时器控制LED 30ms闪烁一次。使用单片机内部的12M晶振,进行硬件48分频,并进行软件8分频。X * 48*8/12000000=0.001(1ms) X=31,也就是计数器需要计31次数,两个定时器0都可以计2的8次方次数,也就是256次,因为是从0开始计,最多计导255次,现需要计31次,则计时器的初始值应该为255-31=224.原创 2024-05-07 11:53:52 · 578 阅读 · 0 评论 -
基于C8051F340单片机的定时器0 工作在方式2——8位自动重载定时器程序
基于C8051F340单片机的定时器0,工作在方式2——8位自动重载模式的定时程序。通过定时器0计时,控制LED灯的闪烁(100ms闪烁一次)。使用单片机内部的12M晶振,进行硬件48分频,并进行软件8分频,目的是为了让计时器能够计100ms级。X*48 * 8/12000000=0.001(100ms) X=31,也就是计数器需要计31次数,定时器0总共可以计2的8次方次数,也就是256次,因为是从0开始计,最多计导255次,现需要计31次,则计时器的初始值应该为255-31=224次。原创 2024-05-07 11:31:57 · 593 阅读 · 0 评论 -
基于C8051F340单片机的定时器0 工作在方式1——16位定时器的程序
基于C8051F340单片机的定时器0工作在方式1——16位定时器的程序介绍。定时器0的工作方式1和工作方式0的操作是一致的,只是计数的位数不一样,方式0是13位,方式1是16位。通过定时器0计时,控制LED灯的闪烁(50ms闪烁一次)。使用单片机内部的12M晶振,进行硬件48分频,并进行软件8分频,目的是为了让计时器能够计50ms级。原创 2024-05-06 15:22:25 · 790 阅读 · 0 评论 -
基于C8051F340单片机的定时器0 工作在方式0 13位定时器的程序
基于C8051F340单片机的定时器0 工作在方式0,13位定时器的程序。通过定时器0计时,控制LED灯的闪烁(100ms闪烁一次)。使用单片机内部的12M晶振,进行硬件48分频,并进行软件8分频,目的是为了让计时器能够计100ms级。程序包括:头文件部分、主程序、端口初始化、定时器0初始化、定时器中断程序。原创 2024-05-06 15:02:32 · 652 阅读 · 0 评论 -
C8051F340单片机AD模数转换器 片内ref 测试电压 A/D转换6种启动方式第3种--定时器0溢出启动
A/D转换的定时器0启动转换方式。定时器0启动转换为A/D6种启动转换方式之一。定时器0是一个 16 位的寄存器,访问时有两个字节,低字节TL0和高字节TH0 )。定时器0控制寄存器(TCON)允许定时器 0及指示它们的状态。将 IE 寄存器中的 ET0 位置‘1’允许定时器 0 中断。定时器0有四种工作方式,通过设置计数器/定时器方式寄存器(TMOD)中的方式选择位 T1M1-T0M0 来选择工作方式。原创 2024-04-30 10:09:06 · 516 阅读 · 0 评论 -
基于C8051F340单片机ADC0模数转换,定时器3溢出启动转换方式进行A/D转换
基于C8051F340单片机AD模数转换,采用定时器3溢出启动AD转换。定时器 3 是一个 16 位的计数器/定时器,由两个 8 位的 SFR 组成:TMR3L(低字节)和TMR3H(高字节)。定时器 3 的时钟源可以是系统时钟、系统时钟/12 或外部振荡源时钟/8。定时器 3 是一个 16 位的计数器/定时器,由两个 8 位的 SFR 组成:TMR3L(低字节)和TMR3H(高字节)。定时器 3 的时钟源可以是系统时钟、系统时钟/12 或外部振荡源时钟/8。原创 2024-05-01 20:42:37 · 344 阅读 · 0 评论 -
基于C8051F340单片机ADC0模数转换,CNVSTR 输入信号的上升沿启动转换方式进行A/D转换
基于C8051F340单片机ADC0模数转换,CNVSTR 输入信号的上升沿启动转换方式进行A/D转换。通过P3.0输入上升沿信号,启动AD转换。原创 2024-05-01 21:18:19 · 303 阅读 · 0 评论 -
基于C8051F340单片机UART0串口通讯程序
本程序是通过C8051F340的uart0与PC进行串口通讯。当C8051F340从接收到从PC传来的数据后,将数据原样回发给PC机 ,端口为RX=P0.5,TX=P0.4。原创 2024-05-02 22:47:55 · 452 阅读 · 1 评论 -
基于C8051F340单片机的可编程计数阵列PCA0产生PWM脉宽调制波形输出
PWM波形输出可以用到很多地方,可以用在各种电机的控制、变压整流、电流调制等。本文使用C8051F340自带的可编程计数阵列PCA0,产生PWM脉宽调制波形输出。将PCA输出配置到P1.2脚输出。原创 2024-05-02 23:07:02 · 363 阅读 · 1 评论 -
C8051F340单片机AD模数转换器 片内ref 测试电压 A/D转换6种启动方式第1种--软件命令启动
C8051F340单片机片内集成的AD,转换可以有6种启动方式:软件命令、定时器0溢出、定时器1溢出、定时器2溢出、定时器3溢出或外部转换启动信号。本文介绍其中的一种方式,通过软件命令启动。程序中通过向AD0BUSY写1,来启动AD转换,然后循环查询(读取)AD0BUSY的值,转换过程中,该位的值是1,转换结束后,该为置0。转换结束后读取ADC0H和ADC0L的值,然后合并到adc_value中。adc_value:存储adh和adl合并后的值。原创 2024-04-29 13:57:12 · 441 阅读 · 0 评论