付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页51单片机-数据类型强制转换1.实用性改善
为了使上一讲的功能更加完善,我们编写新的实用型的代码,效果是让数码管显示的数就是输入引脚高电平持续的微秒数,最高能捕获到999999微秒。如果高电平持续的时间超出这个取值范围,那么数码管不够显示,所以超出范围的话我们就让6个数码管显示FFFFFF。
因为计数器计时到65535之后就会产生溢出,也就是超过71ms就会溢出一次,我们知道计数器溢出也是会产生中断的,所以在中断函数里我们实现让变量x简单的自加1表明时间过去了71毫秒左右。
假设高电平持续的时间有75毫秒左右,那么得出最后的微秒数就是
x*71111+(TH0*256+TL0)*(12/11059200)*1000000;
现在我们首次使用float类型的变量,第一次使用带小数点的数据类型。
不同的数据类型之间运算要进行强制转换,请参考《手把手教你学51单片机》文档10.1.1节。
我们定义的float类型变量capture_val就是用来记录持续高电平的微秒数。请看以下三段代码
capture_val=(float)TH0*256.0+(float)TL0;capture_val=(capture_val*12.0)/11.0592;capture_val=x*71111.0+capture_val;第一段是取出计数器的值。第二段就是把计数器的值乘以(12/11059200),意思是得到的秒数,但是我们需要的是微秒数,所以除以11.0592就是把秒数放大了10的6次方倍。第三段代码则是,溢出过好几次71.111ms,所以需要加上这些时间。
我们记住,浮点型的数据加减乘除其他数时我们要加小数点。
还有函数参数的传递也要强制转换,比如“ShowNumber((u32)capture_val);”
capture_val本身是float类型,想显示正整数就要强制转换为unsignedlong类型。
2.代码
#include#include//详见第六章第8讲floatx=0;//请用杜邦线把P1.6和P3.2连接起来voidmain(){u8i;floatcapture_val;LED_Init();//初始化LED硬件模块TMOD=0x09;//低四位1001EA=1;//闭合总中断开关ET0=1;BEEP=0;//先让P1.6输出低电平TR0=1;BEEP=1;//开始计数delay_ms(500);//软件仿真调试出此处的延时时间为698275.8微秒BEEP=0;//停止计数capture_val=(float)TH0*256.0+(float)TL0;capture_val=(capture_val*12.0)/11.0592;capture_val=x*71111.0+capture_val;if(capture_val>999999.0){for(i=0;i<6;i++)LedBuff[i]=LedChar[15];//超出数码管的显示范围就显示FFFFFF}elseShowNumber((u32)capture_val);//显示没超过999999时的数while(1){SEG_Scan();}}voidTIM0_IRQHandler()interrupt1{x=x+1.0;}
我们把“delay_ms(500);”改为“de
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026医院护士面试题及答案
- 团结协作,共创佳绩,小学主题班会课件
- 2026年年度销售培训安排通知5篇
- 科学探索趣创新伴我行小学主题班会课件
- 2026黑龙江绥化市肇东市招聘政府专职消防员52人笔试备考试题及答案详解
- 2026庆来学校第二批招聘(11人)考试备考试题及答案详解
- 2026四川自贡市遴选公务员40人笔试备考试题及答案详解
- 2026年金华市第二医院招聘工作人员6人考试备考试题及答案详解
- 职业卫生技术服务专业技术人员考试(职业卫生检测)模拟题库及答案(甘肃省张掖市2026年)
- 职业卫生技术服务专业技术人员考试(放射卫生检测与评价)模拟题及答案(临夏回族2026年)
- 2026湖南长沙市第二医院(长沙市妇幼保健院河西分院)招聘劳务派遣人员89人考试备考题库及答案详解
- 2026四川成都农业科技中心第二批招聘17人备考题库及1套完整答案详解
- 仓库货物收发验收管理规范
- (2026年)检验检测机构资质认定“一单一库”的学习与解读(2026年实施)课件
- 模具预热工艺控制规范制度
- 市政护栏安装监理实施细则
- 引车人员工作制度
- 24J113-1 内隔墙-轻质条板(一)
- 交管12123驾照学法减分复习题库大全含答案【考试直接用】
- 劳务施工采购管理办法
- BIM 技术应用实务 课件 模块二结构专业建模
评论
0/150
提交评论