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语言,单片机脉宽测量的程序相关推荐

  1. 单片机的字节寻址c语言,单片机C语言通用万能编程模板

    <单片机C语言通用万能编程模板>由会员分享,可在线阅读,更多相关<单片机C语言通用万能编程模板(30页珍藏版)>请在人人文库网上搜索. 1.8051单片机C语言编程模板 1.函 ...

  2. 单片机 多机通讯c语言,单片机多机串口通信.doc

    单片机多机串口通信 摘要 本文详细介绍了基于RS-485总线的单片机与多台单片机间的串行通信原理.实现方法和相应的通信硬件.软件设计.该设计是由单片机与单片机组成的主从控制系统,其中单片 关键词: 单 ...

  3. 单片机实现水位控制C语言,单片机课程设计 水位自动控制.doc

    单片机课程设计 水位自动控制 河南机电高等专科学校电气工程系 电子课程设计报告 设计题目:水位自动控制 专业: 电机与电器 班级: 101 班 学号: 姓名: 指导教师: 设计时间: 2012-6-2 ...

  4. 单片机tcp ip协议c语言,单片机TCP IP协议栈实现的原理

    对已TCP IP协议栈,我们已经说了很多关于它的原理相关的知识了.但是只有原理是不够的,在这方面我们将要举出一个实际操作实例为大家讲解,那么首先我们来看一下有关于单片机TCP/IP就是在单片机上运行的 ...

  5. 单片机课程设计电梯(c语言),单片机课程设计之电梯控制系统.docx

    PAGE \* MERGEFORMAT 23 JIANGSU UNIVERSITY OF TECHNOLOGY 单片机应用系统设计 电梯控制器 学 院: 电气信息工程学院 专 业: 测控技术与仪器 班 ...

  6. 单片机实验秒表设计程序c语言,单片机数字计时器的系统设计与型式试验

    摘要:设计了一种以PIC16F887单片机为控制器.LED数码管动态显示的数字计时器.详细介绍了整个系统的工作原理.硬件设计.软件程序设计和型式试验过程.软件程序采用C语言编写,便于移植与升级.计时器 ...

  7. 单片机音频驱动实验C语言,单片机实验:音乐改编

    <单片机实验:音乐改编>由会员分享,可在线阅读,更多相关<单片机实验:音乐改编(7页珍藏版)>请在人人文库网上搜索. 1.实验1将歌曲播放程序两只老虎改变为另一首歌曲(如Hap ...

  8. 单片机p2.0引脚c语言,单片机C语言案例教程习题解答

    单片机C语言案例教程习题解答 习题1 1. 在图1-3中,若MCU的P0.0和P2.0两引脚均为低电平,则四位数码管上有何显示. 解:由图1-3可知,P0.0引脚为低电平,将使四位数码管的a笔划为低电 ...

  9. 单片机p2.0引脚c语言,单片机p2.0?

    对于at89c51的单片机40引脚 网上找的!希望对你有用 VCC/GND:供电电源. P0口:可以被定义为数据/地址的低八位,能够用于外部程序/数据存储器.在FIASH编程时,P0 口作为原码输入口 ...

最新文章

  1. Nat. Mach. Intell. | 基于神经网络的迁移学习用于单细胞RNA-seq分析中的聚类和细胞类型分类...
  2. 【建站系列教程】2、数据源
  3. 征集 | 国家标准《信息安全技术 健康医疗信息安全指南》征求意见
  4. Vivado 随笔(6) Timing Summary 相关讨论(一)
  5. 优秀Java开发者的10条共性
  6. 浙大pat1009题解
  7. Java笔记-使用RabbitMQ的Java接口实现round-robin(轮询分发)
  8. php 编码规范哪些_PHP 代码规范有哪些【详细讲解】
  9. C++socket编程(六):6.3 并发测试工具ab的使用(apache工具)
  10. 关于TortoiseGit汉化包装了,但仍然是英文菜单的问题记录
  11. ZOJ 3792 Romantic Value 最小割(最小费用下最小边数)
  12. Security+ 学习笔记12 安全编码实践
  13. 客户跟进中的一些小技巧
  14. vue-JsMind思维导图实现(包含鼠标右键自定义菜单)
  15. postman接口导入
  16. 小米手机刷机ROOT原理
  17. [历史]读大卫的《犹太人历史》
  18. 共享电车“享骑”押金退还花样多啊
  19. 《五种时间:重建人生秩序》读书笔记
  20. Photoshop CC 2019快速选择工具的抠图

热门文章

  1. Angular @Hostbinding工作原理
  2. 给某社区技术写作大赛当评委,我的个人资料
  3. ABAP和Go语言的初始化操作, Kubernetes的Init Container
  4. 重构老系统遗留代码的一些方法学习笔记
  5. CRM Fiori:Complex note optimization design
  6. 使用pscp从windows电脑拷贝数据到linux遇到的ssh_init错误
  7. IBASE change and save - Middleware related
  8. 如何在阿里云上运行SAP UI5应用
  9. 如何在Hybris Commerce的backoffice里创建扩展字段
  10. Mockito框架研究 - how is match any string implemented