AT89c51单片机编程实现9–0循环显示数码管显示 求图和程序 求图和程序 求图和程序

作者&投稿:濯勇 (若有异议请与网页底部的电邮联系)
AT89C51单片机实验 LED 0-9循环显示的程序图(最好有程序设计流程图)~

A_BIT EQU 20H ;个位数存放处
B_BIT EQU 21H ;十位数存放处
TEMP EQU 22H ;计数器寄存处
STAR: MOV TEMP,#0 ;初始化计数器
STLOP: ACALL DISPLAY ;
INC TEMP
MOV A,TEMP
CJNE A,#100,NEXT ;等于100重来
MOV TEMP,#0

NEXT: LJMP STLOP

;显示子程序
DISPLAY: MOV A,TEMP
MOV B,#10
DIV AB
MOV B_BIT,A
MOV A_BIT,B
MOV DPTR,#NUMTAB
MOV R0,#4

DPL1: MOV R1,#5
DPLOP: MOV A,A_BIT
MOVC A,@A+DPTR
MOV P0,A
CLR P2.7
ACALL D1MS
SETB P2.7
MOV A,B_BIT
MOVC A,@A+DPTR
MOV P0,A
CLR P2.6
ACALL D1MS
SETB P2.6
DJNZ R1,DPLOP
DJNZ R0,DPL1
RET
D1MS:
MOV R7,#50
D1: MOV R6,#20
D2: DJNZ R6,$
DJNZ R7,D1
RET

NUMTAB:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;013456789字形码


END
这是两位从0到99的,你参考下。

#include#define uchar unsigned charuchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};sbit rstkey=P2^2;sbit speaker=P2^0;void delay()//延时约400毫秒{uchar i,j;for(i=0;i9)i=9;delay();}}

用一个共阳数码管,仿真图如下,元件只有两个,见下图。

程序如下:

#include<reg52.h>

unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0~9的段码表

void delay()

{

unsigned int j;

for(j=60000;j>0;j--);

}

void main()

{

unsigned char n=10;

while(1)

{

n--;

P0=tab[n];

delay();

if(n==0)n=10;

}

}

这是仿真通过的。



#include<reg51.h>
#define uchar unsigned char
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
void delay()
{
uchar i,j;
for(i=0;i<200;i++)
for(j=0;j<250;j++);
}
main()
{
uchar i;
    i=9;
    while(1)
    {
    if(i>9)i=9;
    P1=table[i];
    delay();
    i--;
    }
}




单片机89c51,帮我编个C程序,顺便说一下用KeiluVision3仿真调试软件的调 ...
define uchar unsigned char sbit k0=P2^3;sbit k1=P2^2;sbit k2=P2^1;char code a[]={0xc0,0xf9f,0xa4f,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};\/\/不知道是共阳还是共阴 char code b[]={0x08,0x04};\/\/位选,貌似你只需要用两位,图片上只有两位 void delay(uint t){ while(...

用89C51单片机设计开发简易电子琴,能7个音,并存一首歌就好,要简单点的...
void delay(unsigned char t){ unsigned char t1;unsigned long t2;for(t1=0;t1<t;t1++){ for(t2=0;t2<8000;t2++){ ;} } TR0=0;} void t0int() interrupt 1 { TR0=0;speaker=!speaker;TH0=timer0h;TL0=timer0l;TR0=1;} void song(){ TH0=timer0h;TL0=timer0l;TR0=1;...

89C51单片机 电子密码锁 汇编程序求解
T0_T: POP ACCRETIPASS_READ:CALL EEPRRETMOV COUN1,#06H ;6位密码数值MOV R7,#00HMOV R1,#PASS_NEWP_READ: MOV A,R7MOV DPTR,#R_TABLEMOVC A,@A+DPTRMOV @R1,AINC R1INC R7DJNZ COUN1,P_READRETR_TABLE:DB 35H,36H,34H,34H,38H,38HCOMP_ERR:MOV DPTR,#COMP_ERR1 ;MOV A,#2 ;...

急求基于单片机AT89C51的多功能数字电子钟的汇编程序,高手进!~_百度知...
用89C51控制3个HC595,前两个595接8段数码显示管,显示“0”~“9”每秒跳动一次.第3个HC595接8个LED灯,每隔1秒闪烁1次.include<at89x52.h> include<intrins.h> define uchar unsigned char define uint unsigned int uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90...

单片机89C51用LCD做的数字时钟,时分秒正常运行,可调,并有闹钟,响时十...
\/*用1602液晶显示电子时钟,通过P1口连接独立按键可以调整时间*\/ include<reg52.h> define uint unsigned int define uchar unsigned char uchar code table[]="2010-05-18";uchar code time[]="23:58:00";uchar code xi1[]="mon";uchar code xi2[]="tue";uchar code xi3[]="wed";ucha...

要求用AT89C51单片机的P1口点亮8个发光二极管分为两组点亮,每次点亮4...
程序如下: 绝对没有错 LED灯的一端接P1口的各各引脚,另一端接地。同时在P1口的每个管脚上加1K的上拉电阻,电阻另一端连接至+5V即可 ORG 0000H AJMP START ORG 0030H START:MOV SP,#07H MOV P1,#00H MOV A,#0AAH LOOP:CPL A MOV P1,A ACALL DELAY AJMP LOOP DELAY:MOV R0,#50...

用单片机做电子琴,复音(合音)怎么实现?
48按键行列式键盘矩阵构成MIDI电子琴的键盘扫描输入端,由于89C51的P0口内部没有上拉电阻,故这里采用电阻R14——R21将列线拉至高电平,与六条行线组合完成48个琴键的扫描识别,在图1中,单片机与键盘矩阵间的双箭头线表示单片机在扫描键盘矩阵时,P0口和P2口分别作为输入\/输出口使用。人机接口电路则利用...

(51单片机89c51)实现
KEYVALEQU 30H KEYTMEQU 31H KEYSCANEQU 32H ADD1EQU 33H ADD2EQU 34H SUMEQU 35H FLAGBIT 00H ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR ORG 0030H TABLE: ; 共阴极数码管显示代码表 DB 3FH,06H,5BH,4FH,66H ;01234 DB 6DH,7DH,07H,7FH,6fh ;56789 DB 77H,7CH...

STC89C51和AT89S51单片机有什么区别吗
差别是:1、工作电压:STC 3.3V~5.5V AT 4.0~5.5V 2、工作频率:STC 0~40MHz AT 0~33MHz 3、用户程序空间:STC 4K\/8K\/13K\/16K\/32K\/64K AT 4K 4、片上集成RAM:STC 512\/1280Byte AT 128Byte 5、程序下载:STC ISP\/IAP AT ISP 6、速度:STC 6T模式 ...

89C51单片机计数器受CPU中断影响吗
计数不影响 单片机内部有计数器,自己会计数,所以不用CPU来计数 只有计数器计数满了之后,会产生中断信号通知CPU处理中断程序

绍兴县15887122228: AT89c51单片机编程实现9–0循环显示数码管显示,求图求程序 -
迟狠盐酸: sbuf=dispcode[num0];//第1位 while(!ti); ti=0; led0=0; delay(2); led0=1; sbuf=dispcode[num1];//第2位 while(!ti); ti=0; led1=0; delay(2); led1=1; sbuf=dispcode[num2];//第3位 while(!ti); ti=0; led2=0; delay(2); led2=1;

绍兴县15887122228: 基于单片机AT89C51,现要用8个LED灯和单个数码管来显示9~0倒计时,定时为30ms,且灯依次亮. -
迟狠盐酸: 因为你只是单个LED,所以使用静态显示就好了(9个I/O口),定时30ms若不精确,可以使用简单的延时函数,若需要精确,要使用定时器T0或者T1.8个LED就是简单的I/O口高低电平了(8个I/O口).整个功能很简单,若需要详细帮助,请再联系我!

绍兴县15887122228: 关于单片机AT89C51程序,利用两个数码管,利用按键控制实现“数字减一”显示99到00. -
迟狠盐酸: #include "reg52.h" #include<intrins.h> #define uchar unsigned char uchar code LED_TAB[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; unsigned int x=9999; void delay(unsigned int z) { unsigned int x,y; for(x=z;x>0;x--) for(y=110;y>...

绍兴县15887122228: at89c51 用c语言编个程序动态显示0 - 99 -
迟狠盐酸: #include<reg51.h> void main(void) { TMOD=0x01; ET0=1; TR0=1; EA=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; while(1); } void T0_INT() interrut 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256;//这加你要实现在功能,上面是定时50MS

绍兴县15887122228: 单片机汇编语言8只数码管显示1 - 8 -
迟狠盐酸: 1、 数码管显示演示程序: 在8个LED数码管上依次显示1,2,3,4,5,6,7,8.引用端口:数码管数据p0,数码管控制p2;DIS_DIGIT EQU 40H;位选通值, 传送到P2口用于选通当前数码管的数值,; ...

绍兴县15887122228: 利用AT89C51单片机实现两个共阳数码管倒数计时99秒,求程序!!要求是C语言的 -
迟狠盐酸: 这是正时,改动一下 #include unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00}; unsigned char second; unsigned char keycnt; unsigned int tcnt; void main(void) { unsigned...

绍兴县15887122228: 用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一.另设计一个“开始”按键和一 -
迟狠盐酸: 因为分数低,只好给你说我的思路 因为是秒表,当然用定时器,我常用的是定时器0,工作方式1 TMOD=0X01;给一个溢满值3CB020次为一秒 if(counter> 19) {second++;conunter= 0;} 而后,动态显示,懂吧,用调用延迟 然后快加,每10ms快速加1,关了定时器0,换定时器1?至于暂停,也是一个中断吧,保持现状,就是变量值不改变,而后当然调用显示函数.再按下按键跳出循环.不知道行不行,参考而已

绍兴县15887122228: AT89C51单片机,如何实现延迟一秒用C语言延迟一秒,我是用循
迟狠盐酸: 其实可以用C语言实现的,先要定义好定时器的初值 不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期 机器周期=12/n(n指晶振频率...

绍兴县15887122228: AT89c51单片机程序控制两个数码管显示00 - 59秒表的程序要怎么编啊? -
迟狠盐酸: display(second)子函数与两个数码管的连接方式有关 void main(void )//主程序 { TMOD=0x01;// 定时器1工作方式一 ET0=1; EA=1; TH0=(65536-10000)/256;//定时10ms TL0=(65536-10000)%256; TR0=0;//上电先不启动 while(1) { if(key1==0)//判...

绍兴县15887122228: 求程序用AT89C51单片机.
迟狠盐酸:#include "reg51.h" #define uint unsigned int #define uchar unsigned char unsigned char code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; uchar sec=30,min=20,hour=10; bit secup=00; uchar n=0; void delay(unsigned int ms)...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网