全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long uchar a,b,c,d;#define LED_DAT P0sbit pin_SpeedSenser = P35; /速度传感器脉冲信号输出端接在T1上#define TIME_CYLC 100 /12M晶振,定时器10ms 中断一次 我们1秒计算一次转速,1000ms/10ms = 100#define PLUS_PER 2 /码盘的齿数 ,这里假定码盘上有2个齿,即传感器检测到2个脉冲,认为1圈#define K 1.0 /校准系数sbit zhen1=P10;sbit fan1=P11;sbit en1=P12; uchar code loops = 0x7f,0xbf,0xdf,0xef; /定义显示位控制驱动码uchar code table=0x14,0xd7,0x4c,0x45,0x87,0x25,0x24,0x57,0x04,0x05; / 0,1,2,3,4,5,6,7,8,9 uint Tcounter = 0; /时间计数器bit Flag_Fresh = 0; / 刷新标志 bit Flag_clac = 0; /计算转速标志 bit Flag_Err = 0; /超量程标志 /在数码管上显示一个四位数 void DisplayFresh();/计算转速,并把结果放入数码管缓冲区 void ClacSpeed();/初始化定时器void init_timer();/延时函数 void Delay(uint ms);void it_timer0() interrupt 1 /定时器0中断的响应函数 TF0 = 0; /定时器 T0用于数码管的动态刷新 TH0 = 0xD8; /初始化 TL0 = 0xF0; Flag_Fresh = 1; Tcounter+; if(TcounterTIME_CYLC) Flag_clac = 1;/周期到,该重新计算转速了 void it_timer1() interrupt 3 /中断地址是0x001b TF1 = 0; /定时器T1用于单位时间内收到的脉冲数,要速度不是很快,T1永远不会益处 Flag_Err = 1; /如果速度很高,我们应考虑另外一种测速方法:脉冲宽度算转速 void main(void) init_timer(); while(1) zhen1=1; fan1=0; en1=1; Delay(31); en1=0; Delay(169); if(Flag_Fresh) Flag_Fresh = 0; DisplayFresh(); / 定时刷新数码管显示 if(Flag_clac) Flag_clac = 0; ClacSpeed(); /计算转速,并把结果放入数码管缓冲区 Tcounter = 0;/周期定时清零 TH1=TL1 = 0x00;/脉冲计数清零 if(Flag_Err) /超量程处理 /数码管显示字母EEEE,开机时初始化为0000 a = 0x2c; b = 0x2c; c = 0x2c; d = 0x2c; while(1) DisplayFresh();/不再测速 等待复位i /在数码管上显示一个四位数void DisplayFresh() P2 =loops0 ; LED_DAT = tablea; Delay(20); P2 =loops1 ; LED_DAT = tableb; Delay(20); P2 =loops2 ; LED_DAT = tablec; Delay(20); P2 =loops3 ; LED_DAT = tabled; Delay(20);/计算转速,并把结果放入数码管缓冲区void ClacSpeed() uint speed ; ulong PlusCounter; PlusCounter = TH1*256 + TL1; speed = K*(PlusCounter/PLUS_PER);/K是校准系数,如速度不准,调节K的大小 a = (speed/1000)%10; b = (speed/100)%10; c = (speed/10)%10; d = speed%10;void init_timer() /初始化 TMOD = 0x51; /定时10毫秒,TOT1选择软件门方式1,T0定时,T1计数,96页可查 TH0 = 0xD8; /T0初始化 TL0 = 0xF0; ET0=1; /T0中断允许 EA=1; /T0中断 TR0=1; /TO运行 TH1 = 0x00; /T1初始化 TL1 = 0x00; ET1=1; /T1中断允
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民谣吉他品牌介绍
- 绿色引领:环保服装市场解析
- 美术职业生涯探索
- 中药配方颗粒基地建设项目规划设计方案
- 2025建筑材料水泥砖购销合同书范本
- 2025年飞行员执照考试《仪表等级(直升机)》经典试题及答案二
- 2026年吉林工程职业学院单招职业倾向性考试题库附答案
- 2025年飞行员执照考试《仪表等级(飞机)》强化训练试题及答案
- 2026年云南轻纺职业学院单招职业适应性测试题库及答案1套
- 2025年济宁化学模拟考试试题及答案
- 4.11五四运动课件-统编版八年级历史上册
- 肿瘤患者中心静脉血管通路装置相关皮肤损伤临床护理实践指南 2
- 医疗安全培训课件妇科
- 脐带血栓课件
- 山东初级注安师考试题库及答案
- 【《某66kV模式半高型变电站设计的环境因素及负荷统计计算案例》2500字】
- 天然气购销合同协议书范本
- GB/T 18277-2025收费公路收费制式和收费方式
- 线粒体基因糖尿病讲解
- 会计行业巅峰备战:会计分录面试题解及例题集锦服务
- 2025年勘察设计注册土木工程师考试(水利水电工程·水土保持专业案例)历年参考题库含答案详解(5套)
评论
0/150
提交评论