
C语言
文章平均质量分 64
Bill66
这个作者很懒,什么都没留下…
展开
-
VS2022 配置 OpenCV并开始第一个程序
本文详细介绍了VS2022配置OpenCV4.8.0的方法与步骤,并以一个简单的实例验证了配置的正确性。原创 2023-11-18 11:26:21 · 1309 阅读 · 3 评论 -
STC32G单片机内置ADC及应用编程
本文详细介绍了STC32G内置ADC模块及其寄存器配置库函数的写法,并以实例演示了如何利用ADC模块测试电压,及获取内部Bandgap电压。原创 2023-04-18 20:58:03 · 5267 阅读 · 0 评论 -
Keil C 编程时函数声明时慎用指针变量做参变量
C语言编程,在声明函数时,可以用常用数据类型变量做参变量,也可用常用数据类型的指针。但是如非必须,应尽量避免用指针变量做参变量,否则可能面临指针陷阱。本文以Keil C51编程,用STC32G单片机实例演示了这种情况。原创 2023-01-15 16:32:08 · 843 阅读 · 0 评论 -
C与C++中的常用符号与标点用法详解及实例
本文以实例,详细讲解了C及C++语言中的常用符号及标点所表达的意义、用法及注意事项。原创 2022-12-04 11:41:41 · 35450 阅读 · 1 评论 -
STC32G 单片机EEPROM 操作实例
本文介绍了STC32G EEPROM及其寄存器,详细展示了STC32G EEPROM库函数写法,及其源代码。并以实例做了验证。原创 2022-11-26 19:52:13 · 4366 阅读 · 0 评论 -
Keil C51宏及宏函数的应用
本文介绍了C语言宏,及Keil C51宏定义及其应用,特别以实例讲解了宏函数定义及其应用。原创 2022-11-12 12:55:58 · 6203 阅读 · 0 评论 -
MFC高级控件之Tab控件( CTabCtrl )
本文详细介绍了标签控件CTabCtrl, 并以一个实例,完整演示了标签控件的创建过程。原创 2022-07-24 14:23:42 · 9246 阅读 · 0 评论 -
MFC高级控件之树状视图控件(CTreeCtrl)
本文介绍了树状视图控件,并以实例演示了的树状视图控件创建,及其成员函数的使用。原创 2022-07-09 19:29:40 · 5012 阅读 · 0 评论 -
STC 32位8051单片机开发实例教程 三 程序编译设置与下载
本文演示了同一STC32G程序在不同的编译设置选项下的编译结果,希望对编译出错的解决有些启示作用。最后简单介绍了STC 32G单片机程序下载工具与方法。原创 2022-07-01 10:49:55 · 2036 阅读 · 0 评论 -
STC 32位8051单片机开发实例教程 二 I/O工作模式及其配置
本文详细介绍了STC32G 单片机I/O口及其配置,及库函数源代码。并以实例进行了验证。原创 2022-06-30 20:16:27 · 6093 阅读 · 1 评论 -
STC 32位8051单片机开发实例教程 一 开发环境搭建
本文简单介绍了STC 32位8051单片机(STC 32G系列)开发环境搭建,并详细介绍了如何创建一个Template供以后使用。原创 2022-06-22 09:03:44 · 10599 阅读 · 5 评论 -
51单片机实战教程(34 线缆摇摆测试机设计)
本文将讲解51单片机在线缆摇摆测试机中的应用,包含单片机程序及人机界面程序设计,将以本人以前做过的一个案子为例来做讲解。原创 2022-01-29 23:50:15 · 1323 阅读 · 1 评论 -
MFC 颜色对话框的使用
我们需要设定颜色时通常通过颜色对话框来选取颜色,用选取的颜色来设定。MFC编程时如何实现呢?可以先定义一个COLORREF 变量,用这个变量来记录如: COLORREF mColor; 然后声明一个CColorDialog对象,如:CColorDialog mColorDialog; 通过一下代码就可获得选取的颜色。if (mColorDialog.DoModal() == IDOK) mColor = mColorDialog.GetColor();...原创 2021-12-31 16:43:06 · 1158 阅读 · 0 评论 -
51单片机实战教程(22 看门狗)
在要求高可靠性的系统中,为防止系统在异常情况下或者受到异常干扰导致MCU/CPU程序跑飞,系统长时间异常工作, 通常的做法就是引入看门狗。如果MCU/CPU不在规定时间内按要求访问看门狗,看门狗就强迫MCU/CPU复位,即系统重启,使系统按预设程序运行。看门狗复位,是热启动复位的软复位之一。 STC15系列单片机内部集成了硬件看门狗功能。看门狗复位状态结束后,不影响特殊功能寄存器IAP_CONTR中SWBS/IAP_CONTR.6位的值。对于STC15F/L101W系列、ST...原创 2021-12-26 11:34:47 · 2753 阅读 · 0 评论 -
51单片机实战教程(21 同步串行外围通信接口SPI)
SPI是Sysnchronous Serial Peripheral Interface 的缩写。SPI是一种全双工、高速、同步的通信总线,有两种操作模式:主模式和从模式。所谓全双工是指SPI主器件在向从器件发送数据的同时,也读取(或者接收从器件)的数据,从器件接收主器件数据的同时也向主器件发送数据。STC15W系列部分单片机内部集成了SPI总线接口。SPI总线在嵌入式系统中非常重要,如多片单片机间通信,SPI flash存储芯片的数据读写等原创 2021-12-26 08:25:53 · 4619 阅读 · 0 评论 -
51单片机实战教程(20 内置比较器)
也许大家对比较器并不陌生,比较器类似与运算放大器(有部分运放可以用来做比较器),它有一对差分输入脚-Input/+input,一个输出脚。当-Input的输入电平比+input的输入电平低时,输出脚输出高电平;当-Input的输入电平比+input的输入电平高时,输出脚输出低电平。 STC15系列部分单片机内置了比较器功能,内置比较器原理与普通比较器一致,也可将比较器比较输出,但其功能更复杂。+input的输入脚为P5.5,-Input的输入脚为P5.4,输出脚为P1....原创 2021-12-25 20:19:51 · 4637 阅读 · 0 评论 -
51单片机实战教程(19 PWM)
PWM是Pulse width modulation的缩写,即脉冲宽度调制,包括:相电压控制PWM、脉宽PWM法、随机PWM、SPWM法、线电压控制PWM等。PWM是当今电子世界不缺少技术应用场景太多,这里不去一一列举。 STC15W4K系列单片机集成了一组(各自独立6路)增强型的PWM波形发生器。波形发生器内部有一个15位的PWM计数器供6路PWM使用,用户可以设置每路PWM的初始电平。另外,PWM波形发生器的每路有两个用于控制波形翻转的计数器T1/T2,可以非常灵活地调整高低...原创 2021-12-22 10:27:11 · 3205 阅读 · 0 评论 -
Keil C中的sprintf函数
在写VC++及标准C程序时,我们常用sprint函数来将数值转换为字符串。可在Keil C中使用这个函数时就要注意了。请看下面例程:/*main.c Designed by Bill Liu Version 0.0 Modified last by Bill Liu on 12/19/2021*/#include "main.h" ui8 tem;ui16 tem1;float tem2;void main(){ STCIO_InitPortsBi...原创 2021-12-19 16:50:16 · 8748 阅读 · 5 评论 -
51 单片机实战教程(18 PCA模块)
本文介绍了STC15系列单片机的定时器阵列PCA模块及其库函数程序编写。原创 2021-12-18 21:40:28 · 4325 阅读 · 0 评论 -
Keil C中不同数据类型变量间可否相互赋值?如果可以,结果如何?
signed char 是 8 位有符号整数,unsigned char 是 8 位 无符号整数。signed char的取值范围为:-128~127,unsigned char的取值范围为0~255。如果声明两个变量如下:signed char tem1;unsigned char tem2; 将255赋值给tem2,这个不会,有问题,如果再将tem2赋值给tem1,在keil中编译会不会出错?为什么?如果不会出错,tem1的值会变成对少? 将-2赋值给...原创 2021-12-18 16:41:31 · 1651 阅读 · 1 评论 -
51 单片机实战教程(17 内部ADC转换器)
本文介绍了STC15W系列单片机内部集成ADC转换器的相关寄存器,ADC相关操作的库函数写法,并提供了全部源代码,及验证测试程序的源代码。原创 2021-12-16 11:55:56 · 7772 阅读 · 0 评论 -
51 单片机数据存储是大端模式还是小端模式?
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。那么51单片机的数据存储是大端模式还是小端模式呢?原创 2021-12-15 10:30:50 · 4551 阅读 · 0 评论 -
51 单片机实战教程(16 内置EEPROM读写)
STC单片机大部分内部集成了EEPROM,也有部分单片机没有专门的EEPROM,但可以将用户程序区存储用户程序后剩余的Flash当EEPROM使用,如IAP15W4K61S4,IRC15W4K63S4。EEPROM擦写次数在10万次以上。EEPROM擦写是按扇区擦写的,需要一次擦写的数据尽量放在同一扇区。停电时EEPROM不会丢失数据,可用以保存一些设置参数,或在停电关机前保存本次运行的部分参数,供下次运行时使用。本文介绍了EEPROM相关寄存器,及EEPROM函数。原创 2021-12-15 09:41:33 · 8205 阅读 · 4 评论 -
51 单片机实战教程(15 外围芯片驱动程序之AD7683芯片驱动)
前面已经介绍过AD芯片CS1237,这里再介绍一款ADC芯片AD7683。AD7683是一款16bit ADC芯片,虽然位数比CS1237少,但速度比CS1237快,标称是100kSPS。供电电压为2.5~5.5V,封装有MSOP与QFN两种。通信接口也是串口,兼容SPI/QSPI/MICROWIRE。应用场景为:数据获取、仪器、医药仪器、这款ADC芯片也比较适合用51单片机系统。...原创 2021-12-12 20:38:26 · 3872 阅读 · 0 评论 -
51 单片机实战教程(14 外围芯片驱动程序之LTC1658芯片驱动)
LTC1658是一款14bit轨到轨DAC芯片。可选用3V或5V供电,采用3线串口通信(兼容SPI与MICROWIRE),其应用场景为数字校准、工业控制、自动测试设备等。它采用SOP8封装,Pin脚定义如下:串口通信的时序图如下:...原创 2021-12-11 21:17:19 · 2999 阅读 · 0 评论 -
51 单片机实战教程(13 外围芯片驱动程序之CS1237芯片驱动)
CS1230芯片是一枚国产A/D转换芯片。广泛应用于电子称,测温仪等量测仪表中。本教程讲述了其驱动函数写法,并展示了驱动函数库源码。原创 2021-12-11 09:03:42 · 19555 阅读 · 11 评论 -
51 单片机实战教程(12 串口通信)
51单片机串口通信及库函数编写原创 2021-12-09 21:57:03 · 1668 阅读 · 0 评论 -
51 单片机实战教程(11 定时器库函数)
STC15W系列单片机共有5个定时器(T0~T4),T0有4种工作模式(16位自动重装模式,16位非自动重装模式,8位自动重装模式,不可屏蔽中断的16位自动重装模式),T1有三种工作模式(16位自动重装模式,16位非自动重装模式,8位自动重装模式),其余三个只工作在16位自动重装模式。其中T0适合与做操作系统的时钟,因为只有它有不可屏蔽中断的16位自动重装模式。...原创 2021-12-08 20:54:44 · 1690 阅读 · 0 评论 -
51 单片机实战教程(10 定时器)
STC15用户手册对定时器做了详细的描述,请看下面:原创 2021-12-04 23:02:47 · 894 阅读 · 0 评论 -
51 单片机实战教程(9 中断库函数)
STC15W系列单片机最多有21个中断请求源,每个中断请求源都有相应的控制寄存器。原创 2021-12-04 21:57:24 · 1676 阅读 · 0 评论 -
单片机定时器中断的作用
单片机定时器即使定时又是计数器,定时器中断有哪些用处呢?现我们来把它列举出来。 1. 时间切片,做操作系统时钟。 2.硬件定时。如我们要做一个计时器就可以使用定时中断来做 3. 计数与目标计数。如检测计数生产计数动作计数等,不良超标提醒。 4. 外部中断扩展。定时器当作计数器使用,当定时寄存器的装载值为溢出值减一时,就可当外部中断使用。 5. 脉冲发生器。如果要同时控制几个步进电机,如何做呢?用定时中断,可以...原创 2021-11-28 14:33:58 · 8091 阅读 · 0 评论 -
51 单片机 实战教程(八 外部中断扩展)
STC15系列单片机最多有4个外部中断,3路CCP/PCA还可实现3个外部中断, 有时候还是显得不够用,原创 2021-11-27 19:48:22 · 2558 阅读 · 0 评论 -
51 单片机 实战教程(七 中断系统)
当CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程被称为中断。中断系统是为使CPU具有对外接紧急事件处理能力而设置的功能单元。可提供中断请求的资源被称为中断源。中断系统中存在多个中断源,中断源间存在默认优先级,并可设置中断源优先级。 STC15系列单片机用户手册,对其中端系统做了如下描述: 触发中断的事件(行为),称为中断触发事件(行为)。...原创 2021-11-24 21:45:14 · 649 阅读 · 0 评论 -
下载程序到STC单片机的操作步骤
STC单片机是STC公司生产的单片机,要下载程序到单片机需用到该公司开发的下载工具软件,如stc-isp-15xx-v6.79B.exe.可以通过P3.0,P3.1串口下载,STC8系列还支持USB下载,部分产品还支持RS485下载。这里介绍最简单串口下载。现在一般电脑都没有串口,因而需要一个USB转TTL工具,如CH430模块。...原创 2021-11-23 21:48:44 · 13323 阅读 · 3 评论 -
51单片机实战教程(六 网线测试治具设计)
我们日常接触的线材如USB、HDMI、VGA及网线等在生产过程中一般都需要做导通、线序测试。其中有Overmolding制程的产品还需做短路测试。其对应的连接器也需要做同样的测试。厂商的通常做法是购买线缆测试仪来测试。由于线缆测试仪是通用检测设备,单价比较高,体积也比较大。如果用来测USB、网线,及连接器有点大材小用;用起来也不是十分方便。如果自行设计,成本会更低;特别是用于连接器制程检测,更容易嵌入自动化机台中,弥补PLC采样灵活性不足,并可减少所需PLC的输入/输出点数,降低PLC购置费用...原创 2021-11-21 20:25:36 · 3416 阅读 · 0 评论 -
51 单片机实战教程(五 LCD 模组驱动程序)
常用的LCD模组有LCD1602、LCD12864、LCD2004等,原创 2021-11-14 21:32:30 · 4109 阅读 · 0 评论 -
51单片机实战教程(四 延时程序)
延时程序在单片机系统开发中是必不可少的。如我们常用蜂鸣器声的长短来表示系统开机自检结果,蜂鸣器声的长短就离不开延时程序。延时程序分软件延时,与硬件延时。原创 2021-11-07 20:44:37 · 6374 阅读 · 0 评论 -
51单片机实战教程(三 I/O初始化程序编写)
I/O初始化,即设定I/O口的工作模式,需设定配置寄存器PxM1、PxM0对应位的值。假定是P0口,需下如下配置: 下面演示初始化程序编写过程。 1. 新建文件 打开前面教程中创建的C51 Template 文件夹中Proj文件夹下的C51 Template.uvproj。创建两个新文件,分别以文件名stcio.h,stcio.c存入C51 Template文件夹下Library文件夹中。 2. 完成头文件 2.1 在头文件中包含前面教...原创 2021-11-07 12:14:49 · 8028 阅读 · 0 评论 -
51 单片机实战教程(二 STC15系列I/O工作模式设定及外围元件驱动电路)
STC15单片机的用户手册中,对其I/O做了如下描述:可以看出要改变I/O的工作方式,必须改变配置寄存器设置。上电复位时配置寄存器PxM1、PxM0值是多少呢?即I/O口的缺省工作模式是那种呢?请看下面:奇怪,P6M1、P6M0的缺省值为空,是不在配置前P6的工作模式待定?不是的。请看说明是的说明:下面看一下不同工作模式下I/O结构的不同之处:可以看出4种模式下数据输入结构是相同的。不同的部分在输出部分。 说到数据输入结构,没接触过单片机与...原创 2021-11-05 12:29:19 · 4861 阅读 · 3 评论 -
51单片机实战教程(一 数据类型别名定义)
本文详细介绍了,如何写一个定义数据类型别名的程序,并定义及实现后面例程常用到的位操作及字符串操作函数。原创 2021-11-04 12:28:35 · 1929 阅读 · 0 评论