单片机驱动数码管显示问题

我用单片机做计数器,从个位到十位怎么显示啊?... 我用单片机做计数器,从个位到十位怎么显示啊? 展开
 我来答
意法半导体(中国)投资有限公司 2020-01-15
展开全部
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
百度网友87e043c
推荐于2016-04-02 · TA获得超过301个赞
知道小有建树答主
回答量:77
采纳率:0%
帮助的人:86.1万
展开全部

前不久刚弄的类似显示程序,调整了下给你,看看有用不。电路图是4位显示的,程序已经改成了2位显示。

;单片机内存分配申明!

TEMPER_L  EQU  28H  ;用于保存计数值

A_BIT   EQU  20H   ;数码管个位数存放内存位置

B_BIT   EQU  21H   ;数码管十位数存放内存位置

 ORG  0000H

 LJMP MAIN

ORG  0040H

MAIN: 

  MOV SP,60H

  MOV A,#00H

  MOV P2,A

STAR: 

  MOV TEMPER_L,#0 ;初始化计数器,从0开始

stlop:

 ACALL DISPLAY;调用显示子程序

 INC TEMPER_L;对计数器加1

 MOV   A,TEMPER_L

 CJNE  A,#100,NEXT ;判断计数器是否满100?

 MOV  TEMPER_L,#0;满100就清零

NEXT: LJMP stlop;不满就循环执行

DISPLAY:

  MOV A,TEMPER_L

  MOV  B,#10   ;10进制/10=10进制

  DIV  AB

  MOV  B_BIT,A  ;十位在a

  MOV  A_BIT,B  ;个位在b

  MOV  DPTR,#NUMTAB  ;指定查表启始地址

  

DPL1:   MOV  R7,#250  ;显示250次,数越小,显示频率越高,递增的越快。

DPLOP:   MOV  A,A_BIT  ;取个位数

  MOVC  A,@A+DPTR  ;查个位数的7段代码

  MOV  P0,A   ;送出个位的7段代码

  SETB  P2.3   ;开个位显示

  ACALL  D1MS   ;显示1ms

  CLR  P2.3

    MOV  A,B_BIT  ;取十位数

  MOVC  A,@A+DPTR  ;查十位数的7段代码

  MOV  P0,A   ;送出十位的7段代码

  SETB  P2.2   ;开十位显示

  ACALL  D1MS   ;显示1ms

  CLR  P2.2

     DJNZ  R7,DPLOP  ;250次没完循环

  RET

  ;1MS延时(按12MHZ算)

D1MS:   MOV  R5,#80 

  DJNZ  R5,$

  RET

;7段数码管0~9数字的共阳显示代码

NUMTAB:  DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H

  END

杭州丹川科技
2024-12-24 广告
随着工业设备的自动化程度越来越高,各个行业的工控板的数量也越来越多,下面就介绍在维修中常用的几种方法。1、观察法:当我们拿到一块待维修的电路板时, 首先对它的外观进行仔细的观察。如果电路板被烧过, 那么在给电路板通电前, 一定要仔细检查电源... 点击进入详情页
本回答由杭州丹川科技提供
zengjia1106
2011-01-10 · TA获得超过916个赞
知道小有建树答主
回答量:1127
采纳率:0%
帮助的人:820万
展开全部
引脚够的话,直接P0口接个位的数码管,P2口接十位数码管,引脚不够就两个数码管扫描显示,用一寄存器存计数值,然后设一无限循环不断读寄存器值七段译码输出就可以了,然后计数端接在中断上,有计数就进中断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yibunihao
2011-01-10 · TA获得超过1463个赞
知道小有建树答主
回答量:451
采纳率:0%
帮助的人:299万
展开全部
这是我跟一个网友的对话,跟你的问题差不多,你看看吧,我偷下懒不编辑了,呵呵。

剑魂列特 16:04:48
你好在线吗
yibunihao 16:09:08
恩 你好
剑魂列特 16:09:33
我是那个关于单片机提问的人想再请教你一点问题可以吗
yibunihao 16:09:46
呵呵 你好 说吧
剑魂列特 16:10:47
其实如果是一个显示器我会编程,但是两个显示器我就不知道怎么编了。我就想让第一个显示器一直显示“0”,第二个显示器从9开始倒数

yibunihao 16:11:10
是用数码管显示吗
剑魂列特 16:11:21
对的
剑魂列特 16:11:39
共阴逆序
yibunihao 16:11:48
那你可以了解下数码管的动态显示和静态显示
剑魂列特 16:12:05
我就是这个没懂
yibunihao 16:12:15
那我就按这个说吧
剑魂列特 16:12:17
我如果要让第一个显示器一直显示0是不是属于静态
yibunihao 16:12:22
先说静态
剑魂列特 16:12:27

yibunihao 16:13:02
动态静态不是从你看到的现象来区分的 你看到的都是一直亮
yibunihao 16:13:38
静态显示是说每一个数码管都接上单独的段选线
yibunihao 16:14:03
这样的话你操作其中一个的时候就不会对另外一个有影响
剑魂列特 16:14:17
这个是硬件决定的吗
yibunihao 16:15:38
对 是硬件决定 比如说 把P1口8条线接给数码管1的8个段选脚,P2口的8条线接给数码管2的8个段选脚,这时候你操作P1就是改变了数码管1的显示值,对数码管2没任何影响
yibunihao 16:16:06
同样 操作P2是改变了数码管2的值,对1也没影响
剑魂列特 16:16:35
哦我先问问同学我们是属于哪种
yibunihao 16:17:42
呵呵 你应该是了解之后自己去分析下你们用的哪种 静态的好处是软件控制很方便,相互之间没影响,可以随便显示都可以
剑魂列特 16:18:15
我们硬件是焊好的好像是动态的
yibunihao 16:18:30
但是很明显 它占用IO资源太多了 所以就这一条就让大部分人都不用它
yibunihao 16:18:41
下面说动态
剑魂列特 16:18:46

yibunihao 16:20:59
动态显示的硬件连接跟静态完全不一样 它是把所有数码管的段选都接在一起送给一组IO,然后每个数码管引出一个公共端,也就是位选端单独送给单片机的IO
yibunihao 16:21:51
这样就决定了如果说位选全部有效 那么你更改了段选值所有的数码管显示都跟着改变了
yibunihao 16:21:58
这个能理解不
剑魂列特 16:22:20
稍等理解ING
剑魂列特 16:22:55
对就这个问题
剑魂列特 16:23:03
所以我两个显示器编不来了
剑魂列特 16:23:55
能不能加下你的QQ我把硬件图给你看看吧帮忙分析下吧
yibunihao 16:24:04
呵呵 所以动态显示的原理就是这一时刻让数码管1显示5,关闭数码管2的显示,下一时刻让数码管2显示6,关闭数码管1的显示。如此循环,当它们之间相隔的时间短到一定程度的时候你的眼睛就分辨不出来了,看到就是两个数码管同时在显示 一个5,一个6
剑魂列特 16:24:29

剑魂列特 16:24:34
就是这句话
剑魂列特 16:24:38
我们老师说过
剑魂列特 16:26:11
那这种该怎么编程呢能不能举个列子
剑魂列特 16:29:25
这位大哥能不能加下QQ帮我看下程序啊
yibunihao 17:49:37
不好意思 我在公司 刚有点急事
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式