;利用51单片机设计一个计数显示系统,要求8个数码管显示T1输入脉冲的个数。
;最好用汇编语言,加注释,尽量别太复杂。尽量快些哈!
;悬赏分:30 | 解决时间:2011-7-20 19:15 |
;=====================================================
;最佳答案:
;题目要求在T1端输入脉冲,统计脉冲个数,并即时输出显示,使用8个LED数码管,显示:0000 0000~9999 9999。
;计数、显示,很简单的。虽然要求的位数较多,但是循环一下,也就可以了。
;程序用汇编汇编语言编写好了,指令不超过50行,太简单了。
;题目只是要求在T1端输入脉冲,并没有指出显示电路,那么就设计一个仿真实验电路如下:


;图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/fcef1a2510f701644d088dd2.html#

;仿真图中使用了两种虚拟仪器:“信号发生器”和“计数器”,通过按键即可输入单次脉冲和连续脉冲。

;全部程序如下:

NUM_B  EQU  30H        ;计数、显示单元起始地址
NUM_N  EQU  8          ;计数、显示单元的字节数

ORG  0000H
    JMP  START
    ORG  001BH
    JMP  T1_INT
;------------------------
START:
    MOV  TMOD, #60H    ;T1计数方式2
    MOV  TH1, #255     ;初始值为FF
    MOV  TL1, #255     ;当收到一个输入,立刻引起中断
    SETB TR1           ;启动T1
    MOV  IE, #10001000B;允许中断
    MOV  SP, #40H      ;设置堆栈
;------------------------
M_LOOP:
    CALL DISP
    SJMP M_LOOP
;------------------------
DISP:
    MOV  R0, #NUM_B    ;30H
    MOV  R2, #1        ;先显示最低位
D_LOOP:
    MOV  A,  @R0
    ADD  A,  #(D_TAB - $ - 3)
    MOVC A,  @A + PC
    MOV  P2, #0        ;关闭显示,消隐
    MOV  P0, A         ;输出段码
    MOV  P2, R2        ;输出位码
    CALL DL1MS
    MOV  A,  R2        ;修改位码
    RL   A
    MOV  R2, A
    INC  R0            ;修改显示指针
    CJNE R0, #NUM_B + NUM_N, D_LOOP
    RET
;------------------------
D_TAB:                 ;共阳极段码
    DB  0C0H,0F9H,0A4H,0B0H, 99H, 92H, 82H,0F8H
    DB   80H, 90H, 88H, 83H,0C6H,0A1H, 86H, 8EH,0FFH;FF是空白的代码
;------------------------
DL1MS:                 ;延时
    MOV  R7, #242
    DJNZ R7, $
    DJNZ R7, $
    RET
;------------------------
T1_INT:                ;T1中断程序
    PUSH PSW           ;保护现场
    SETB RS0           ;换用工作区
    MOV  R0, #NUM_B
T1_LOOP:
    INC  @R0           ;数字加一
    CJNE @R0, #10, T1_END ;不到10就退出
    MOV  @R0, #0       ;到10就清零
    INC  R0            ;转去下一位
    CJNE R0, #NUM_B + NUM_N, T1_LOOP
T1_END:
    POP  PSW           ;恢复现场
    RETI
;------------------------
END
;=====================================================
回答时间:2011-7-18 07:56
回答者: 做而论道 | 十五级  采纳率:43%
提问者对于答案的评价:非常感谢!
原题网址:http://zhidao.baidu.com/question/293572049.html
;=====================================================
后记:
仿真时,信号发生器有个控制框,可以选择信号的输出频率、幅度等,屏幕截图如下:


图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/1bc67519aff072d14bedbcb6.html#

在仿真时,计数器是上升沿计数,而单片机是下降沿计数,所以,两者显示的数字,有一个时间差。
另外,刚刚启动时,计数器总要先计一个数,不知如何控制才好。

利用51单片机统计脉冲个数,即时输出显示相关推荐

  1. 利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第一篇“显示贪吃蛇”

    利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第一篇"显示贪吃蛇" 完整的项目链接: https://github.com/linxinloningg/51_chip_ ...

  2. 利用51单片机演奏《猪猪侠》

    今天的目标很明确,那就是我们如何使用51单片机演奏一首音乐. 先听一下演奏效果: 51单片机播放<猪猪侠>音乐(音频) 1.有一个很重要的问题,那就是如何将乐谱转换51单片机的16进制或十 ...

  3. 利用51单片机制作一个秒表的详细过程

    利用51单片机制作一个秒表的详细过程 前面的话: 和很多朋友一样,在学51单片机的过程中我们肯定会涉及到制作一个秒表,牵涉到把单片机的多个部分组合起来使用,这对于我们初学者来说可能显得有些困难,我同大 ...

  4. 利用51单片机制作从左至右再从右制作的的流水灯

    利用51单片机制作从左至右再从右制作的的流水灯 简述: 1.打开keil 4,新建工程 2.选择Atmel ,选择AT89C51芯片 3.新建文件另存为,将文件名末尾加上".c" ...

  5. c51单片机秒表程序c语言,利用51单片机制作秒表的详细过程

    前面的话: 和很多朋友一样,在学51单片机的过程中我们肯定会涉及到制作一个秒表,牵涉到把单片机的多个部分组合起来使用,这对于我们初学者来说可能显得有些困难,我同大家一样,百思不得其解,最后头都弄大了才 ...

  6. 利用51单片机+0.96寸iic接口oled显示图片或动图

    利用51单片机+0.96寸iic接口oled显示图片或动图 前言:之前讲过如何使用oled显示数字以及字符,但并未讲述如何显示BMP格式的图片, 这篇将在之前的基础上加以封装一些函数用来显示图片 硬件 ...

  7. 利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第二篇“自动运行函数”

    利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第二篇"自动运行函数" 完整的项目链接: https://github.com/linxinloningg/51_chip ...

  8. 用c语言编写振铃检测程序,利用51单片机2进8出的程控交换机C语言源码

    这个是利用51单片机加上超长的语音芯片合为一体的2进8出的程控交换机C语言源码 /************************** 6-23日 修改总台来显 ******************* ...

  9. 基于51单片机的自动浇花系统设计/基于51单片机的智能抽奖系统控制设计/基于51单片机的数字时钟与日历显示控制设计 毕业设计

    1147基于51单片机的自动浇花系统设计 设计思路:通湿度传感器实时监测湿度,通过LCD显示出实时的湿度采集值,可以通过按键设定目标界限,当达到这个界限值时,浇花系统的电机装置运行. 电路包含:LCD ...

最新文章

  1. Java 之String、StringBuffer 和 StringBuilder 三者区别介绍
  2. 云服务器木马文件该如何应对,云服务器被入侵如何处理
  3. python和c++哪个好学-C++和Python哪一个更好?
  4. UA MATH ECE636 信息论10 Group Testing简介
  5. 邮箱解决任务间资源共享问题
  6. 我的世界服务器端口文件夹,我的世界手机版服务器ip端口地址大全
  7. 【计算机网络】手动配置hosts文件解决使用GitHub和Coursera网站加载慢/卡的问题
  8. 如果唐代诗人有微博,简直就是真实版「梦回大唐」
  9. 解码(五):sws_getContext和sws_scale像素格式和尺寸转换函数详解
  10. LeetCode 71. Simplify Path
  11. uva 1395 Silm Span 【MST-Kruskal】
  12. VMware下安装Raspbian树莓派系统
  13. apache 服务器的 Option Indexes,AllowOverride,Order Allow,Deny 详解
  14. 充分利用计算机研究GIS,GIS在水文水资源领域中的应用研究
  15. 经济观察评论:现在是筑底时期, 对复苏仍可以保持乐观!]
  16. Spss-系统聚类手算实操
  17. Linux第二课 文件系统目录结构
  18. Android摇一摇振动效果Demo
  19. Java案例:因数平方和
  20. Mac OS编译C++库(XCode)

热门文章

  1. 验证码的前世今生(前世篇)
  2. 17.200种鸟类图片分类
  3. 【CDT扩展】DSF-GDB分析
  4. python小程序设计每天定时微信发消息_定时发送微信小程序订阅消息
  5. MATLAB打开.mat图像文件
  6. python实现手写体数字识别
  7. 分享机械行业测量工具大全
  8. 零基础如何自学软件测试?2020软件测试学习路线
  9. 用机器学习生成披头士的歌词 | 项目实战
  10. Process Lasso 介绍