数码管计数显示

发布者:玉米哥哥最新更新时间:2018-01-17 来源: eefocus关键字:数码管  计数显示 手机看文章 扫描二维码
随时随地手机看文章

org 00h
a_bit equ 30h         ;个位数存放处
b_bit equ 31h         ;十位数存放处
c_bit equ 32h         ;百位数存放处

 

d_bit equ 33h         ;千位数存放处
e_bit equ 34h         ;万位数存放处
f_bit equ 35h         ;十万位数存放处


 org 0000h
 ajmp star
 org 0030h

star:
 mov a,#00h  ;;清0
 mov a_bit,a
 mov b_bit,a
 mov c_bit,a
 mov d_bit,a
 mov e_bit,a
 mov f_bit,a
stlop:  acall display    ;显示
        inc a_bit
        mov a,a_bit  
        cjne a,#10,stlop;
        mov a_bit,#00h
        inc b_bit
        mov a,b_bit
        cjne a,#10,stlop
        mov b_bit,#00h
        inc c_bit
        mov a,c_bit
        cjne a,#10,stlop
        mov c_bit,#00h
        inc d_bit
        mov a,d_bit
        cjne a,#10,stlop
        mov d_bit,#00h
        inc e_bit
        mov a,e_bit
        cjne a,#10,stlop
        mov e_bit,#00h
        inc f_bit
        mov a,f_bit
        cjne a,#10,stlop
        mov f_bit,#00h
 ajmp stlop

;显示子程序
display: 
         mov dptr,#numtab ;指定查表启始地址
         mov r0,#4 
dpl1:    mov r1,#250     ;显示1000次
dplop:   mov a,a_bit     ;取个位数
         MOVC A,@A+DPTR  ;查个位数的7段代码
         mov p0,a        ;送出个位的7段代码
         clr p2.7        ;开个位显示
         acall d1ms       ;显示1ms
         setb p2.7

         mov a,b_bit ;取十位数
         MOVC A,@A+DPTR ;查十位数的7段代码
         mov p0,a ;送出十位的7段代码
         clr p2.6 ;开十位显示
         acall d1ms ;显示1ms
         setb p2.6

         mov a,c_bit ;取百位数
         MOVC A,@A+DPTR ;查百位数的7段代码
         mov p0,a ;送出百位的7段代码
         clr p2.5 ;开百位显示
         acall d1ms ;显示1ms
         setb p2.5

         mov a,d_bit ;取千位数
         MOVC A,@A+DPTR ;查千位数的7段代码
         mov p0,a ;送出千位的7段代码
         clr p2.4 ;开千位显示
         acall d1ms ;显示1ms
         setb p2.4

         mov a,e_bit ;取万位数
         MOVC A,@A+DPTR ;查万位数的7段代码
         mov p0,a ;送出万位的7段代码
         clr p2.3 ;开万位显示
         acall d1ms ;显示1ms
         setb p2.3

         mov a,f_bit ;取十万位数
         MOVC A,@A+DPTR ;查十万位数的7段代码
         mov p0,a ;送出十万位的7段代码
         clr p2.2 ;开十万位显示
         acall d1ms ;显示1ms
         setb p2.2

         djnz r1,dplop ;100次没完循环
         djnz r0,dpl1 ;4个100次没完循环
         ret
;1MS延时(按12MHz算)
;====================================================
D1MS: MOV R7,#2 
      DJNZ R7,$
      RET
;7段数码管各划的数字排列表
numtab: db 0fch,30h,0e5h,75h,39h,5dh,0ddh,34h,0fdh,7dh
;0 1 2 3 4 5 6 7 8 9
end


关键字:数码管  计数显示 引用地址:数码管计数显示

上一篇:用移位方式实现流水灯
下一篇:4*4键盘程序的使用

推荐阅读最新更新时间:2024-03-16 15:53

单个数码管显示4x4矩阵按键
代码: #include reg52.h #define uchar unsigned char #define uint unsigned int sbit BEEP = P3^7; uchar code DSY_CODE = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00 }; uchar Pre_KeyNO = 16,KeyNO = 16; void DelayMS(uint ms) { uchar t; while(ms--) { for(t=0;t
[单片机]
单个<font color='red'>数码管</font><font color='red'>显示</font>4x4矩阵按键
89C51单片机40s倒记时数码管动态显示
此程序已经通过测试,电路连接是:一个2位的共阴数码管,位选是P3.6,P3.7口,段选是P0口,还有如下3个按键 sbit buzz = P2^2; sbit clear = P2^0; sbit start = P2^1; 分别是喇叭,清除和开始 与gnd相连即可. #include reg51.h #include intrins.h const unsigned char LED7Code ={ 0xC0, // 0 0xF9, // 1 0xA4, // 2 0xB0, // 3 0x99, // 4 0x92, // 5 0x82, // 6 0xF8, // 7 0x80, // 8 0x
[单片机]
七段数码管显示四位数字
七段数码管显示四位数字的C代码: #include reg51.h //#include INTRINS.H unsigned char a,b,c,d; unsigned char code dispbitcode ={0x10,0x20,0x40,0x80,0x00};//共阴位码 unsigned char code dispcode = { 0X3F,/*0*/ 0X06,/*1*/ 0X5B,/*2*/ 0X4F,/*3*/ 0X66,/*4*/ 0X6D,/*5*/ 0X7D,/*6*/ 0X07,/*7*/ 0X7F,/*8*/ 0X6F,
[单片机]
七段<font color='red'>数码管</font><font color='red'>显示</font>四位数字
MSP430f149红外接收头—读任意红外遥控器键值并显示数码管
刚学单片机(msp430f149 DM430-A),试了试红外接头(1838),读取红外遥控器的键值,并以十进制显示在数码管上,如果以后准备将这个遥控器作为其他用途还可以把数码管上的键值化成16进制使用如(74——0x4A)。 如果有哪里不正确,期待大家给我改正,共同进步! (部分代码摘自网络) #include msp430x14x.h #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define CPU_F ((double)8000000) #define delay_us(x) __delay_
[单片机]
AVR单片机8位数码管显示的程序实现
我们接着来完成 数码管的显示实验。现在我们开始动手编写程序; 根据前面的介绍,我们应该已经能够知道编写一个 的C语言程序的基本步骤和方法了。 下面给出这个程序的主程序文件,在这个程序中我们应该能够知道这个程序都包含了那几块,具体来说我们应该能够在这个程序中把以下几个部分找出来:预编译语句、 的定义、函数的声明、主函数、函数定义。如果你还不能够准确找出这几部分,那么需要把前面的内容再详细阅读一下。 主程序代码 #include /io.h //io端口寄存器配置文件,必须包含 #include util/delay.h //GCC中的延时函数头文件 #include hc .h //unsigned char Led_Dis
[单片机]
按键盘数码管流动显示实验
要求:按下键盘,六个数码管流动显示按下的值。 连线:将片选CS0接到key_LED_CS上 1 #include reg52.h 2 #define LEDLen 6 3 4 xdata unsigned char OUTBIT _at_ 0x8002; // 位控制口 5 xdata unsigned char OUTSEG _at_ 0x8004; // 段控制口 6 xdata unsigned char IN _at_ 0x8001; // 键盘读入口 7 8 unsigned char LEDBuf ; // 显示缓冲 9 code unsigned char LEDMAP =
[单片机]
51单片机之74HC138译码器控制数码管进行100s计数
/** I use a timer in my code to control the time I use 138decoder int the hardware **/ #include reg51.h #define uint unsigned int #define uchar unsigned char sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; uchar code tab_1 ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar tab_2 ; uchar counter=0,tim
[单片机]
单片机4*4按键数码管显示0-9
#include reg51.h #define KEY P1 //键盘 #define SEG P0 //数码管 sbit COM=P2^0; // 数码管com sbit OC = P2^1;//573锁存器 char code TAB ={//0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xa7,0xa1,0x84,0x84,0xbf,0x7f};//共阳极 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7D,0x07,0x7f,0x6F}; //共阴极 unsigned char scan ={0xe
[单片机]
单片机4*4按键<font color='red'>数码管</font><font color='red'>显示</font>0-9
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved