❶ c51单片机定时器30秒倒计时程序,一个按键控制开始,另一个按键控制暂停和继续
#include<reg51.h>
unsignedcharcodeledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//0-9
unsignedcharsec=30,scanled;
unsignedchardisdat[2];
sbitkeys=P1^0;
sbitkeyc=P1^1;
sbitfmq=P3^0;
voiddelay(unsignedintx)
{
unsignedinti,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
voiddischg()
{
disdat[0]=sec/10;
disdat[1]=sec%10;
}
voidt0isr()interrupt1 //秒计时
{
TH0=0x3c;
TL0=0xb0;
time++;
if(time==20)
{
time=0;
if(sec>0&&flag==0)sec--;
}
dischg();
}
voidt1isr()interrupt3 //显示
{
TH1=0xec;
TL1=0x78;
switch(scanled)
{
case0:
P2=0xfe;
P0=ledtab[disdat[1]];
break;
case1:
P2=0xfd;
P0=ledtab[disdat[0]];
break;
default:break;
}
scanled++;
scanled%=2;
}
main()
{
TMOD=0x11;
TH0=0x3c;
TL0=0xb0;
TH1=0xec;
TL1=0x78;
TR1=1;
TR0=0;
ET0=1;
ET1=1;
EA=1;
fmq=0;
scanled=0;
while(1)
{
if(keys==0)
{
while(keys==0);
TR0=1;
}
if(keyc==0)
{
while(keyc==0);
TR0=~TR0;
}
}
}
❷ 30岁学单片机是否晚了
不晚,先入门再说吧。很多东西都需要不断的学习。根本学不完,用着学着。
❸ 用单片机显示30的程序
#include"reg52.h"
voidmain(void)
{
P1=0X30;
}
我没keil所以没烧程序,连好了就这个意思。
❹ 51单片机30和31接口各有什么区别
51单片机P3.0和P3.1接口的区别主要表现在串行口,P3.0是串行输入,P3.1是串行输出。
❺ 51单片机基本的电路里29,30,31三个引脚需不需要接啊
不一定需要接。
以AT89C51单片机为例,
第29脚是PSEN(外部存储器读选通信号),如果没有外接存储器的话,就不需要接。
第30脚是ALE/PROG(地址锁存允许信号):如果没有使用地址锁存器的话,也不需要接。
第31脚是EA/VPP(程序存储器的内外部选通),接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
❻ 单片机代码DBYTE[30]是什么意思
只是一个宏定义
DBYTE[30] 就是你定义的一个数组中的元素,简单的说就是用宏定义#define命名DBYTE[30]为g
❼ 单片机的RAM地址中30H中H是什么意思
H 代表着 HEX, hexdecimal,也就是16进制的意思
也就是说30是16进制的30,也就是3*16+0 ,及十进制的 48了。
但在单片机或者微机原理中,地址一般都是以十六进制或者二进制表示,几乎不用十进制
❽ 单片机或者嵌入式工作过了30岁就没有人要了吗
这怎么可能,30~40正是做嵌入式或单片机工作的黄金年龄,有经验、有精力是企业求之不得的人才。纯软件工作者到是有这个担忧,纯软件工作要的是激情和旺盛的精力,30以后慢慢的就会减弱。企业就不值得培养了。
❾ 51单片机30脚为何输出4v
第30脚是ALE
是外部扩展的功能控制IO
它输出的是方波
所以电压4V是正常的。
❿ 单片机的第30引脚在用C语言编程时怎么写,30引脚是ALE/PROG,要用到ALE,在C语言程序里怎么定义呢
在C语言中设定数组,把数组设定在单片机的外部RAM或ROM空间。
之后,再对这些数组的内容,进行读写的时候,ALE即自动进行它应该做的工作。