#include<STC12C2052AD.h>
#include<intrins.h>
sbit L_dat=P1^5;
sbit L_clk=P1^6;
sbit p34=P3^4;
sbit dirt=P1^4;
unsigned char disp[6];
unsigned char tcount;
unsigned long cishu;
unsigned char dy;
void display(void)
{ unsigned char sdate,vvv,n;
unsigned char disp1[6];
for(vvv=5;vvv>0;vvv--)
{
switch(disp[vvv]){
case 0x00:disp1[vvv]=0x3f;break;
case 0x01:disp1[vvv]=0x06;break;
case 0x02:disp1[vvv]=0x5B;break;
case 0x03:disp1[vvv]=0x4F;break;
case 0x04:disp1[vvv]=0x66;break;
case 0x05:disp1[vvv]=0x6D;break;
case 0x06:disp1[vvv]=0x7D;break;
case 0x07:disp1[vvv]=0x07;break;
case 0x08:disp1[vvv]=0x7F;break;
case 0x09:disp1[vvv]=0x6F;break;
case 0x0a:disp1[vvv]=0x77;break;
case 0x0b:disp1[vvv]=0x7C;break;
case 0x0c:disp1[vvv]=0x39;break;
case 0x0d:disp1[vvv]=0x5e;break;
case 0x0e:disp1[vvv]=0x79;break;
case 0x0f:disp1[vvv]=0x71;break;
case 0x10:disp1[vvv]=0xbf;break; //0.
case 0x11:disp1[vvv]=0x86;break;
case 0x12:disp1[vvv]=0xdb;break;
case 0x13:disp1[vvv]=0xcf;break;
case 0x14:disp1[vvv]=0xe6;break;
case 0x15:disp1[vvv]=0xed;break;
case 0x16:disp1[vvv]=0xfd;break;
case 0x17:disp1[vvv]=0x87;break;
case 0x18:disp1[vvv]=0xff;break;
case 0x19:disp1[vvv]=0xef;break;
case 0x1a:disp1[vvv]=0xf7;break;
case 0x1b:disp1[vvv]=0xfc;break;
case 0x1c:disp1[vvv]=0xb9;break;
case 0x1d:disp1[vvv]=0xde;break;
case 0x1e:disp1[vvv]=0xf9;break;
case 0x1f:disp1[vvv]=0xf1;break;//F.
case 0x20:disp1[vvv]=0x76;break;//h
case 0x21:disp1[vvv]=0x06;break;//I
case 0x22:disp1[vvv]=0x0f;break;//j
case 0x23:disp1[vvv]=0x73;break;//p
case 0x24:disp1[vvv]=0x3e;break;//U
case 0x25:disp1[vvv]=0x00;break;//灭
case 0x26:disp1[vvv]=0x6d;break;//
case 0x27:disp1[vvv]=0x38;break;
case 0x28:disp1[vvv]=0x40;break;
case 0x29:disp1[vvv]=0xe7;break;
default:break;}
}
for(vvv=5;vvv>0;vvv--)
{
sdate=disp1[vvv];
for(n=0;n<=7;n++)
{ACC=sdate;
ACC<<=1;
L_clk=0;
L_dat=CY;
_nop_();
L_clk=1;
sdate=ACC;
}
}
}
void int_t1() interrupt 3
{
unsigned long jishu;
ET1=0;
TR1=0;
tcount=tcount-1;
if(tcount==0)
{
tcount=20;
ET0=0;
TR0=0;
if(dirt==0)
{
disp[5]=0x25;
}
else
{
disp[5]=0x28;
}
jishu=TH0*256+TL0;
jishu=jishu*60;
cishu=jishu/333;
disp[4]=(cishu-cishu%1000)/1000;
disp[3]=(cishu%1000-cishu%100)/100;
disp[2]=(cishu%100-cishu%10)/10;
disp[1]=cishu%10;
display();
TH0=0;
TL0=0;
TR0=1;
ET0=1;
TR1=1;
ET1=1;
}
else
{
TH1=0x3C;//50ms
TL1=0xb0;
ET1=1;
TR1=1;
}
}
void delay(unsigned char j)
{
unsigned char k,l;
for(l=0;l<=j;l++)
for(k=0;k<=250;k++);
}
void main(void)
{
WDT_CONTR=0x3c;
TMOD=0x15; //TO计数,TI计时
TH0=0x00;
TL0=0x00;
TH1=0x3C;//50ms
TL1=0xb0;
tcount=20;
CMOD=0x02;
CL=0x00;
CH=0x00;
CCAP0L=256;
CCAP0H=256;
CCAPM0=0x42;
CR=1;
disp[5]=0x25;
disp[4]=0;
disp[3]=0;
disp[2]=0;
disp[1]=0;
display();
TR0=1;
ET0=1;
TR1=1;
ET1=1;
PT0=1;
EA=1;
while(1)
{
WDT_CONTR=0x3c;
if(cishu==0)
{
PCA_PWM0=0x03;
// CCAP0H=256;
}
else if(cishu>=1500)
{
PCA_PWM0=0x00;
CCAP0H=00;
}
else
{
PCA_PWM0=0x00;
// cishu1=cishu*1000/5859;
// CCAP0H=256-cishu1;
CCAP0H=256-cishu*1000/5859;
}
display();
WDT_CONTR=0x3c;
delay(80);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
PWM.rar_2052 p_STC PWM_pwm_pwm 0-5V_tachometer
共2个文件
txt:1个
c:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 188 浏览量
2022-09-24
13:14:20
上传
评论
收藏 1KB RAR 举报
温馨提示
标题中的"PWM.rar_2052 p_STC PWM_pwm_pwm 0-5V_tachometer"揭示了这个项目的核心内容。"PWM"代表脉宽调制(Pulse Width Modulation),这是一种常见的数字模拟转换技术,常用于控制功率半导体开关元件的导通时间来调节输出电压或电流。"2052"指的是STC89C2052,这是一款由STC公司生产的8位单片机,具有低功耗、高性能的特点,常用于各种嵌入式控制系统。 "p_STC"进一步强调了这个项目是基于STC单片机的。"PWM_pwm_pwm"可能是在指出这个设计中使用了PWM技术的多个层面,可能是为了实现不同功能或者不同级别的控制。"0-5V"指的是输出电压范围,这是PWM技术在调节电压时的一个关键指标,表明系统能够输出从0到5伏特连续可变的电压。 "tachometer"则是转速计,这是一种测量旋转速度的设备。在这个项目中,转速计通过检测编码盘(可能是光学或磁性编码器)的信号来确定旋转速度。编码盘能将旋转次数转化为电信号,STC89C2052单片机则负责处理这些信号并根据转速输出相应的0-5V电压。 压缩包内的文件"PWM.C"很可能是项目的源代码,包含了用C语言编写的PWM控制及转速计算的程序逻辑。而"www.pudn.com.txt"可能是来源于下载该资源的网站的说明文件,可能包含了更多关于这个项目的介绍或者使用说明。 综合来看,这个项目是一个基于STC89C2052单片机的智能转速计,利用PWM技术将转速信息转化为0-5V的模拟电压输出。这个设计可以广泛应用在各种需要监测旋转速度的场合,如汽车引擎、电机控制、机械设备等。通过精细的PWM调制,能够提供精确的电压输出,反映实时的转速变化。
资源推荐
资源详情
资源评论
收起资源包目录
PWM.rar (2个子文件)
PWM.C 3KB
www.pudn.com.txt 218B
共 2 条
- 1
资源评论
JonSco
- 粉丝: 89
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- js基础但是这个烂怂东西要求标题不能少于10个字才能上传然后我其实还没有写完之后再修订吧.md
- electron-tabs-master
- Unity3D 布朗运动算法插件 Brownian Motion
- 鼎微R16中控升级包R16-4.5.10-20170221及强制升级方法
- 鼎微R16中控升级包公版UI 2015及强制升级方法,救砖包
- 基于CSS与JavaScript的积分系统设计源码
- 生物化学作业_1_生物化学作业资料.pdf
- 基于libgdx引擎的Java开发连连看游戏设计源码
- 基于MobileNetV3的SSD目标检测算法PyTorch实现设计源码
- 基于Java JDK的全面框架设计源码学习项目
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功