单片机脉宽测量C语言,单片机脉宽测量的程序
DATL EQU 30H ;计数低位
DATH EQU 31H ;计数高位
DATC EQU 32H ;计数进位
LEDBuf EQU 33H ;显示缓存
ORG 0000H
JMP MAIN
ORG 0003H
AJMP INT_0
ORG 0050H
MAIN:AJMP START
;*************************************
;显示子程序
LEDMAP: ; 八段管显示码
DB 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h
DB 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h
LED:
MOV R0 ,#LEDBuf
MOV R1 ,#6 ; 共6个八段管
MOV R2 ,#00100000b ; 从左边开始显示
Loop:
MOV DPTR ,#8002H
MOV A ,#0
MOVX @DPTR,A ; 关所有八段管
MOV A ,@R0
MOV DPTR ,#8004H
MOVX @DPTR,A
MOV DPTR ,#8002H
MOV A ,R2
MOVX @DPTR,A ; 显示一位八段管
MOV R6 ,#1
MOV R7 ,#0
L:
DJNZ R7 ,L
DJNZ R6 ,L
MOV A ,R2 ; 显示下一位
RR A
MOV R2, A
INC R0
DJNZ R1 ,Loop
RET
;*******************************************
;中断服务子程序 (启动定时功能)
INT_0:
CLR EX0 ;关中断
MOV DATC ,#00H
MOV TH1 ,#00H
MOV TL1 ,#00H
JB P3。
3
SETB TR1 ;启动定时器1,但不计数
JNB P3。3 ,$ ;等待脉冲由低电平变为高电平 ;等待正脉冲
CH0: JNB TF1 ,CH1 ;计数没溢出,跳转
INC DATC
CLR TF1
MOV TH1 ,#00H ;装入初值
MOV TL1 ,#00H
SETB TR1 ;启动定时器
CH1: JB P3。
3 ,CH0 ;判断正脉冲是否结束
CLR TR1 ;停止计数
MOV A ,TL1
MOV DATL ,A
MOV A ,TH1
MOV DATH ,A
;************************************
; 计数值*机器周期(6MHz 为2us)
CLR C ;带进位左移等同乘2
MOV A ,DATL
RLC A
MOV DATL ,A
MOV A ,DATH
RLC A
MOV DATH ,A
MOV A ,DATC
RLC A
MOV DATC ,A
;*********************************
;数制转换
CLR A
MOV R3 ,A
MOV R4 ,A
MOV R5 ,A
MOV R7 ,#24
HB0:
MOV A ,DATL ;**********************
RLC A ;依次移出高位
MOV DATL ,A ;
MOV A ,DATH
RLC A
MOV DATH ,A
MOV A ,DATC
RLC A
MOV DATC ,A
MOV A ,R3 ;将累加器自身带进位相加(与*2等效)
ADDC A ,R3 ;累加器依次从低位开始
DA A
MOV R3 ,A
MOV A ,R4
ADDC A ,R4
DA A
MOV R4 ,A
MOV A ,R5
ADDC A ,R5
DA A
MOV R5 ,A
DJNZ R7 ,HB0 ;判断24位是否处理完
;****************************************
;压缩BCD码转换成非压缩BCD码
MOV DPTR ,#LEDMAP
MOV A ,R5
SWAP A
ANL A ,#0FH ;屏蔽高位
MOVC A ,@A+DPTR
MOV LEDBuF,A ;分离出第6位
MOV A ,R5
ANL A ,#0FH
MOVC A ,@A+DPTR
MOV LEDBuf+1,A ;分离出第5位
MOV A ,R4
SWAP A
ANL A ,#0FH ;屏蔽高位
MOVC A ,@A+DPTR
MOV LEDBuF+2,A ;分离出第4位
MOV A ,R4
ANL A ,#0FH
MOVC A ,@A+DPTR
MOV LEDBuf+3,A ;分离出第3位
MOV A ,R3
SWAP A
ANL A ,#0FH ;屏蔽高位
MOVC A ,@A+DPTR
MOV LEDBuF+4,A ;分离出第2位
MOV A ,R3
ANL A ,#0FH
MOVC A ,@A+DPTR
MOV LEDBuf+5,A ;分离出第1位
SETB EX0 ;开中断
RETI
;**********************************************
;主程序开始
START:
MOV SP ,#50H
MOV TMOD ,#90H ;设置定时器1的工作方式为1,GEAE置1
MOV TH1 ,#00H
MOV TL1 ,#00H ;定时器时间初值置零
MOV IE ,#81H ;开外部中断0
CALL LED ; 调显示
LJMP MAIN
END
。
全部
单片机脉宽测量C语言,单片机脉宽测量的程序相关推荐
- 单片机的字节寻址c语言,单片机C语言通用万能编程模板
<单片机C语言通用万能编程模板>由会员分享,可在线阅读,更多相关<单片机C语言通用万能编程模板(30页珍藏版)>请在人人文库网上搜索. 1.8051单片机C语言编程模板 1.函 ...
- 单片机 多机通讯c语言,单片机多机串口通信.doc
单片机多机串口通信 摘要 本文详细介绍了基于RS-485总线的单片机与多台单片机间的串行通信原理.实现方法和相应的通信硬件.软件设计.该设计是由单片机与单片机组成的主从控制系统,其中单片 关键词: 单 ...
- 单片机实现水位控制C语言,单片机课程设计 水位自动控制.doc
单片机课程设计 水位自动控制 河南机电高等专科学校电气工程系 电子课程设计报告 设计题目:水位自动控制 专业: 电机与电器 班级: 101 班 学号: 姓名: 指导教师: 设计时间: 2012-6-2 ...
- 单片机tcp ip协议c语言,单片机TCP IP协议栈实现的原理
对已TCP IP协议栈,我们已经说了很多关于它的原理相关的知识了.但是只有原理是不够的,在这方面我们将要举出一个实际操作实例为大家讲解,那么首先我们来看一下有关于单片机TCP/IP就是在单片机上运行的 ...
- 单片机课程设计电梯(c语言),单片机课程设计之电梯控制系统.docx
PAGE \* MERGEFORMAT 23 JIANGSU UNIVERSITY OF TECHNOLOGY 单片机应用系统设计 电梯控制器 学 院: 电气信息工程学院 专 业: 测控技术与仪器 班 ...
- 单片机实验秒表设计程序c语言,单片机数字计时器的系统设计与型式试验
摘要:设计了一种以PIC16F887单片机为控制器.LED数码管动态显示的数字计时器.详细介绍了整个系统的工作原理.硬件设计.软件程序设计和型式试验过程.软件程序采用C语言编写,便于移植与升级.计时器 ...
- 单片机音频驱动实验C语言,单片机实验:音乐改编
<单片机实验:音乐改编>由会员分享,可在线阅读,更多相关<单片机实验:音乐改编(7页珍藏版)>请在人人文库网上搜索. 1.实验1将歌曲播放程序两只老虎改变为另一首歌曲(如Hap ...
- 单片机p2.0引脚c语言,单片机C语言案例教程习题解答
单片机C语言案例教程习题解答 习题1 1. 在图1-3中,若MCU的P0.0和P2.0两引脚均为低电平,则四位数码管上有何显示. 解:由图1-3可知,P0.0引脚为低电平,将使四位数码管的a笔划为低电 ...
- 单片机p2.0引脚c语言,单片机p2.0?
对于at89c51的单片机40引脚 网上找的!希望对你有用 VCC/GND:供电电源. P0口:可以被定义为数据/地址的低八位,能够用于外部程序/数据存储器.在FIASH编程时,P0 口作为原码输入口 ...
最新文章
- Nat. Mach. Intell. | 基于神经网络的迁移学习用于单细胞RNA-seq分析中的聚类和细胞类型分类...
- 【建站系列教程】2、数据源
- 征集 | 国家标准《信息安全技术 健康医疗信息安全指南》征求意见
- Vivado 随笔(6) Timing Summary 相关讨论(一)
- 优秀Java开发者的10条共性
- 浙大pat1009题解
- Java笔记-使用RabbitMQ的Java接口实现round-robin(轮询分发)
- php 编码规范哪些_PHP 代码规范有哪些【详细讲解】
- C++socket编程(六):6.3 并发测试工具ab的使用(apache工具)
- 关于TortoiseGit汉化包装了,但仍然是英文菜单的问题记录
- ZOJ 3792 Romantic Value 最小割(最小费用下最小边数)
- Security+ 学习笔记12 安全编码实践
- 客户跟进中的一些小技巧
- vue-JsMind思维导图实现(包含鼠标右键自定义菜单)
- postman接口导入
- 小米手机刷机ROOT原理
- [历史]读大卫的《犹太人历史》
- 共享电车“享骑”押金退还花样多啊
- 《五种时间:重建人生秩序》读书笔记
- Photoshop CC 2019快速选择工具的抠图
热门文章
- Angular @Hostbinding工作原理
- 给某社区技术写作大赛当评委,我的个人资料
- ABAP和Go语言的初始化操作, Kubernetes的Init Container
- 重构老系统遗留代码的一些方法学习笔记
- CRM Fiori:Complex note optimization design
- 使用pscp从windows电脑拷贝数据到linux遇到的ssh_init错误
- IBASE change and save - Middleware related
- 如何在阿里云上运行SAP UI5应用
- 如何在Hybris Commerce的backoffice里创建扩展字段
- Mockito框架研究 - how is match any string implemented