关于单片机AT89C51程序,利用两个数码管,利用按键控制实现“数字减一”显示99到00。

作者&投稿:仇欢 (若有异议请与网页底部的电邮联系)
用AT89C51单片机控制2位数码管实现00-59的简易秒表,并利用3个独立式按键实现秒表的启动停止复位~

这个 简单的很 去搜下protues 论坛里面仿真多的是

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)//判断按键是否按下
{
Delay1ms(10);//延时消抖
if(key1==0)
{
while(key1==0);//等待按键抬起
TR0=!TR0;//启动或停止
}
}
if(key2==0&&TR0==0)//判断按键是否按下及是否在走时
{
Delay1ms(10);//延时消抖
if(key2==0)
{
while(key2==0);//等待按键抬起
a=0; second=0;
}
}
display(second);
}

}
//中断子程序
void Timer0(void) interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
a++;
if(a==100 ) second++;
if(second==60) second=0;
}

#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>0;y--);
}
void main()
{
uchar a,b,c,d;
EX0=1;
EX1=1;
IT0=1;
IT1=1;
EA=1;

while(1)
{
a=x/1000;
b=x/100%10;
c=x/10%10;
d=x%10;
P2=0X7F;

P2=_crol_(P2,1);
P0=LED_TAB[a];
delay(2); P2=_crol_(P2,1);
P0=LED_TAB[b];
delay(2); P2=_crol_(P2,1);
P0=LED_TAB[c];
delay(2); P2=_crol_(P2,1);
P0=LED_TAB[d];
delay(2);
}
}void aa() interrupt 0
{
x--;
}void bb() interrupt 2
{
x=9999;
}


求文档: AT89C2051-24PU中文资料
目前,攻击单片机主要有四种技术,分别是: (1)软件攻击 该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。软件攻击取得成功的一个典型事例是对早期ATMEL AT89C 系列单片机的攻击。攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后,停止下一步擦...

STC89C51与AT89C51的区别?
1、STC89C51在AT89C51的基础上加入了AD数模转换,集成程度更高;AT89C51是老式的255位单片机 2、STC89C51是宏晶公司生产;AT89C51是Atmel公司生产。3、STC89C51可以在线编程,即有ISP功能;而AT89C51必须通过编程器编程。4、STC89C51具有6T模式,速度更快;AT89C51是12T模式,速度较慢。5、STC89C51集成了512或...

怎样破解AT89C55单片机密码
要用专门的工具破解,原理:利用AT89C系列单片机擦除芯片内容时的时序漏洞来破解,这个系列单片机擦除芯片内容时先擦除加密位再擦除数据内容,根据这个漏洞,利用工具检测单片机,擦除数据时,刚好擦除加密位就停止单片机工作,加密就被破解了

AT89C52与C51有什么区别啊?
首先.AT89C单片机已经停产了,现在是AT89S系列的支持ISP在线下载。然后再说C52和C51的区别:C51及C52单片机在内核结构上完全一样,兼容一样的指令系统,两者的主要差别在RAM和ROM上,C51是128byte RAM,4K ROM,C52是256Byte,8K ROM C51有T0、T1两个16位定时器、C52有T0、T1、T2三个16位定时...

stc12c5a60s2的单片机与at89c51单片机有什么区别论文上面要用
1、生产的公司不同 AT89C51是Atmel公司生产;stc12c5a60s2是宏晶公司生产。2、RAM和ROM不同 AT89C51是128byte RAM,4K ROM;stc12c5a60s2是256Byte,8K ROM。3、定时器数量不同 AT89C51有T0、T1两个16位定时器;STC89C52有T0、T1、T2三个16位定时器。

AT 89c 52单片机两个按键控制一个数码管加减
用一位共阳数码管接在P0口,用两个开关,分别接在P3.2和P3.3脚上。仿真图如下

请教如何利用单片机(AT89C205)改变PWM的占空比?
首先要看你的PWM是怎么产生的,如果是定时器产生,就将计数器的装载值设置成可调的,那么在定时器的中断里的取反操作就会产生变化的高低方波脉冲;如果使用延时产生高低电平,那就更改延时参数

AT89C55在keil4中内存多少?
在用keil 4新建工作时,单片机型号选定AT89C55,就是弹出它的主要参数了,程序存储器是20KB,内部数据存储器RAM是256B。见下图。

节水灌溉为什么要选AT89C55作为单片机
记得在上个世纪九十年代有一款产品中选这个芯片的理由是程序超过了8kB。

AT89C20是什么
单片机型号,是一种功能简单的的单片机,只有二十个脚,

丹阳市17530216699: 关于单片机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>...

丹阳市17530216699: 写一个有关单片机AT89C51的程序
潭斌普利: ORG 0000H ;单片机上电后从0000H地址执行 AJMP START ;跳转到主程序存放地址处 ORG 0030H ;设置主程序开始地址 START:MOV SP,#60H ;设置堆栈起始地址为60H MOV A,#0FEH ;ACC中先装入LED1亮的数据(二进制的...

丹阳市17530216699: 汇编语言,利用AT89C51单片机结合8个发光二极管L0~L7,要求每间隔0.5秒依次点亮一盏灯, -
潭斌普利: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R2,#3 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP MOV P1,#0FFH SJMP $ DELAY: MOV R3,#10 DLY1: MOV R4,#100 DLY2: MOV R5,#250 DJNZ R5,$ DJNZ R4,DLY2 DJNZ R3,DLY1 RET END

丹阳市17530216699: AT89C51单片机延时1秒程序怎么写??? -
潭斌普利: void DELAY(int z)//延时zms {int x,y;for(x = z;x > 0;x--)for(y = 110;y > 0;y--); }DELAY(1000); 就可以延时1S 但是有很小的误差 精确的只能用定时器了

丹阳市17530216699: 利用AT89C51单片机实现两个共阳数码管倒数计时99秒,求程序!!要求是C语言的
潭斌普利: 这是正时,改动一下 #include &lt;AT89X51.H&gt; 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 ...

丹阳市17530216699: AT89C51单片机计时程序 -
潭斌普利: 先读地址线,检测到第1个中断时开始定义一个计数器 并以高电平触发做使能信号,即 if(clk'event and clk='1') then if((高电平地址)='1') then count

丹阳市17530216699: 51单片机C语言程序,利用定时器1控制LED灯每隔100ms亮一个,并且数码管上的数每隔200ms加1,加到100清零 -
潭斌普利: #include<reg51.h> #include<intrins.h> #define uchar unsigned char; uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f uchar number,dat,time; void t0isr() interrupt 1 {TH0=(65536-5000...

丹阳市17530216699: 跪求单片机AT89C51程序 -
潭斌普利: #include<reg52.h> sbit key =P1^7; sbit LED1=P2^0; sbit LED2=P2^1; unsigned char keycnt; unsigned char Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned int counet,second,msecond,minute; void delay(unsigned int m) {...

丹阳市17530216699: 51单片机的加密如何使用?原理是是什么? -
潭斌普利: AT89cxx加密原理单片机解密简单就是擦除单片机片内的加密锁定位.由于AT89C系列单片机擦除操作时序设计上的不合理.使在擦除片内程序之前首先擦除加密锁定位成为可能.AT89C系列单片机擦除操作的时序为:擦除开始---->擦除操作...

丹阳市17530216699: 通过AT89C51单片机控制8个发光二极管发光,实现暗点以1HZ频率由低位到高位循环移动
潭斌普利:ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV A,#0FEH R: MOV P1,A RL A ACALL DEL AJMP R DEL : MOV R5,#04H DEL1: MOV R6,#0FFH DEL2: MOV R7,#0FFH DEL3: DJNZ R7,DEL3 DJNZ R6,DEL2 DJNZ R5,DEL1 RET END

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