一、单片机编程求助!!!
这个啊,估计50块钱都没有人去做。电路构成,编程都不难,就是琐碎;
大致包括三个部分,一是数码管的显示部分,二是键盘功能定义和操作部分,三是DS1302芯片的协议通信部分。分别熟悉这三部分的构成和编程,就能够融合在一起了;
其实这三部分教材上都有典型的案例(包括电路构成,代码例程)可参考,你得专研进去,某一个问题实在是弄不明白,才拿出来讨论。你这样整个项目丢出来,就很难得到满意的解答。
费时费力的活,只有圣人才会没事干来设计这个程序,可惜圣人太稀有了。
二、单片机编程语言一般有哪几种
单片机的编程语言有三种种:机器语言、汇编语言与高级语言。
机器语言是计算机能够看懂的语言。(形式为一段二进制代码)
汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。
高级语言包括:C语言、BASIC语言和PL\M语言等。(现在一般使用C语言进行单片机编程,其他语言用作单片机编程较少)
5.由于计算机只能看懂机器语言所以无论是汇编语言还是高级语言都需要经过编译成为机器语言才能够执行。
拓展资料
单片机的高级语言
51单片机支持三种高级语言,即PL/M,C和BASIC。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是目前使用较广的单片机编程语言。
单片机的C语言采用C51编译器(简称C51)。有C51产生的目标代码短,运行速度高,所需存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言或PL/M51语言目标代码混合使用
三、单片机C语言编程简易数字电子时钟
#include <AT89X52.h>
unsigned char X=10,sec,flag;
unsigned char key[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};// 数码管显示数字表
unsigned char key2[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
unsigned char key1[]={0,0,0,0};//key1[0]=9 key1[1]=1 key1[2]=2 key1[3]=3
void delay02s(void);
void dislplay(void);
void dislplay1(void);
void tim1(void);
void main()
{
tim1();
while(1)
{
if(flag==0) dislplay();
else dislplay1();
}
}
void time1(void) interrupt 3
{
TR1=0;
X=X-1;
if(X==0)
{
flag=flag+1;
if(flag==2)
{
flag=0;
sec=sec+1;
if(sec==60)
{
sec=0;
key1[3]=key1[3]+1;
if(key1[3]==10);
{
key1[3]=0;
key1[2]=key1[2]+1;
if(key1[2]==6)
{
key1[2]=0;
key1[1]=key1[1]+1;
if(key[0]!=2)
{
if(key1[1]==10)
{
key1[1]=0;
key1[0]=key1[0]+1;
}
}
if(key[0]==2)
{
if(key[1]==4)
{
key1[1]=0;
key1[0]=0;
}
}
}
}
}
}
X=10;
}
TL1=0xb0;
TH1=0x3c;
TF1=0;
TR1=1;
}
void tim1(void)
{
TMOD =0X10;
TL1=0xb0;
TH1=0x3c;
EA=1;
ET1=1;
TR1=1;
}
void dislplay(void)
{
P2=0xfe;
P0=key[key1[0]];
delay02s();
P2=0xfd;
P0=key[key1[1]];
delay02s();
P2=0xfb;
P0=key[key1[2]];
delay02s();
P2=0xf7;
P0=key[key1[3]];
delay02s();
}
void dislplay1(void)
{
P2=0xfe;
P0=key[key1[0]];
delay02s();
P2=0xfd;
P0=key2[key1[1]];
delay02s();
P2=0xfb;
P0=key[key1[2]];
delay02s();
P2=0xf7;
P0=key[key1[3]];
delay02s();
}
void delay02s(void)
{
unsigned char i,j,k;
for(i=2;i>0;i--)
{
for(j=15;j>0;j--) //198
{
for(k=25;k>0;k--)//248
{
;
}
}
}
}
我空间还有其他的
- 相关评论
- 我要评论
-