推荐阅读最新更新时间:2024-03-16 13:53
STC12C5A60S2 AD 转换详解
STC系列单片机中的STC89LE516AD/X2提供了8路8位精度的高速A/D转换器,位于P1口上,从而省去了片外ADC的麻烦。这8路ADC为电压输入型,可做按键扫描,电池电压检测,频谱检测等。ADC转换过程需要17个机器周期。通过对相关功能寄存器的适当配置,就可以控制其工作。下面就对相关功能寄存器进行介绍。 A/D转换寄存器总表: (1) P1_ADC_EN:特殊功能寄存器 P1.x作为A/D转换输入通道来用允许特殊功能寄存器。相应位为“1”时,对应的P1.x口作为A/D转换使用,内部 上拉电阻 自动断开。 ADC_START是 模拟 /数字转换(ADC)启动控制位,设置为1时,开始转换
[单片机]
STC12系列单片机冷启动、热启动
冷启动——是指在断电状态下重新上电。冷启动,是在下载程序开始时,为了是单片检测有无下载信号。若有则下载;若无则执行原来的程序。 热启动——是指已经处于上电状态,给复位端加复位信号(还有其他类型的复位),程序重新运行。 怎样判断是冷启动、热启动? 可通过查询PCON寄存器中的POF位来判断,单片机上电冷启动后,POF位变为1,可由软件清0 实际判断流程图: 怎样才能产生冷启动复位、热启动复位? (更详细信息请参考STC12系列单片机数据手册)
[单片机]
用STC12C5A60S2直驱一个16*16LED点阵显示屏
看到51hei的坛子有坛友做的16X16LED汉字显示屏,作为生日礼物表情意,我也想着做一个!以满足动手爱好! 用AT89C52的,驱动电路复杂得不得了,32个三极管,32个电阻啊!焊得头到晕啊!还要个4-16译码电路!!!!!! 幸好有爱情的力量,为那个哥们辛苦为感动! 我呢,有STC12C5A60S2这个单片机的 神器 ,比AVR的还好.价不贵,才7元/片!有AD,PWM,端口四态,可最大驱动20MA电流!60KB的程序FLASH ROM.爽YY啊.一个简单电路就可以做成16X16的LED了. 8X8的双色是我2元/片淘来的!只用到了红色的! 电路简洁无比,就是一个单片机,四片8*8LED点阵,一个12M晶振
[单片机]
STC12C5A60S2单片机制作的锂电池容量测试源程序
去年做了一个89C52+ad0804的锂电池容量测试仪,没有成功,今年新买入了12C5A60S2,自带AD,开始着手再次制作。学习了很多论坛里高手的程序,由于水平有限,没有运用中断,只会利用1S延时,在开发板实验成功。放电可以仿照LM358电子负载+锂电池充电板,这样电路可以简单一些。 程序很简单,鉴于水平有限,如有问题还请各位多多指教。 /*--------------------------------------------------------------*/ #include STC12C5A60S2.H #include LCD5510_V3.H #include STC12ADC.C #define ui
[单片机]
基于STC12C5A60S2的自动配料控制系统设计
1.前言 在大规模工业生产中,需要对物料进行称量配比。目前工厂一般使用两种方法,第一种方法采用人工称重,然后将成比例的各种原料同时放入配料机中搅拌;另一种方法是自动称重,自动搅拌。由于很多原始材料为粉状或颗粒,人工配料时,人体容易吸入粉尘等杂物,导致职业病出现,增加了生产风险和劳动力资本,同时配料品种繁多,数量巨大,因此人工配料难以现场管理,很容易出现误配,不但质量难以保证,同时增加了管理成本。为了保证产品质量、提高生产效率和降低工作人员的劳动强度,要求采用准确、可靠的自动配料系统。目前现有的配料系统主要是用工控机或者PLC来控制。工控机控制系统结构复杂,体积大,成本高,维护难,等缺点;PLC系统的数据处理能力较弱;人机
[单片机]
基于STC12C2052的人民币识别控制系统的设计
人民币反假宣传站的设计是为了普及反假币的知识,通过播放人民币详解的视频,演示人民币的防伪特征,并通过人民币识别系统切实让人们对假币的知识有了深刻的认识。将反假币志愿者协会的工作人员从繁重的重复性的宣传纸币识别的工作中解放出来,提高反假币宣传的工作效率。这里开发研制的纸币清分机具备两种功能:检伪和播放视频宣传片。检伪通过模拟和数字电路以及加上一些简单的控制来实现,播放视频宣传片这项功能包括各种纸币的面值和纸币防伪特征的详解,以达到推广人民币识别的目的。 1 机器识别的原理 当前大量使用的是第5套人民币,该套人民币专门针对第4套人民币防伪弱点,使用了10大防伪的高新技术,分别为:a.纸张;b.水印;c.对印防伪;d.荧光油墨;e
[单片机]
STC12C5A60S2利用PCA时钟溢出做的PWM信号
1.程序里面想详细的算法 思路, 2.在晶振和CPU满足计算的情况下,理论是你要多少你就通过编码器调节多少 3.本程序任意频率调试是通过编码器来切换的, 4.关于精度问题 在100hz内非常准,在最大255HZ的时候相差20hz左右, 问题可能出现在 定时器计数这个位置, 我全部取整数了 所以误差比较大 如果计数的出来本来机是整数的,那频率相对准确的, 在100hz的时候就是标准的100hz 单片机源程序如下: /*------------------------------------------------------------------*/ /* --- 功能 pwm输出 频率可调 -----------------
[单片机]
STC12C5A60S2中的AD转换
逐次逼近原理 AD里面包含da,当输入电压Vin时,da的最高位是1,即为0.5Vref与输入信号比较,如果输入大于0.5Vref则比较器输出为1,同时da的最高位为1,反之DA最高位则为0,通过8次比较后得到8个01数据即完成ad转换。 现在说下程序中用到stc12单片机两个寄存器 ADC_CONTR;主要用来配置ad启动的工作模式;还有个result的寄存器 程序中的注意点:配置完ADC_CONTR后要延时4个时钟周期 先把程序附上 #include stc12.h #include intrins.h #include ad.h uint ad; #define ADC_POWER 0X8
[单片机]