单片机课程设计c语言
Ⅰ 现在在搞单片机课程设计啊,,,但c语言都忘了,有没有大神会设计秒表的啊,急需。
我有一个 自己写的 可以调时 暂停 并加AT24c02的 要吗?
Ⅱ c语言单片机课程设计
可惜不懂单片机!
Ⅲ 单片机课程设计:用c语言做简易时钟
#include<reg52.h>
#include<intrins.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
#define rst573 P2&=0X1F
#define y4 P2|=0X80
#define y5 P2|=0XA0
#define y6 P2|=0XC0
#define y7 P2|=0XE0
sbit s5=P3^2;
sbit s4=P3^3;
sbit s6=P3^1;
sbit s7=P3^0;
sbit scl=P1^7;
sbit IO=P2^3;
sbit rst1302=P1^3;
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code chu[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar time[8]={0xa4,0xb0,0xbf,0x90,0x90,0xbf,0xc0,0xc0};
uchar miao1,miao2,fen1,fen2,shi1,shi2,shi,fen;
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=120;j>0;j--);
}
void writebyte(uchar add,uchar date)
{
uchar i;
scl=0;
IO=0;
rst1302=1;
for(i=0;i<8;i++)
{
scl=0;
IO=add&0x01;
scl=1;
add>>=1;
}
for(i=0;i<8;i++)
{
scl=0;
IO=date&0x01;
scl=1;
date>>=1;
}
rst1302=0;
}
uchar readbyte(uchar add)
{
uchar i,temp;
scl=0;
IO=0;
rst1302=1;
for(i=0;i<8;i++)
{
scl=0;
IO=add&0x01;
scl=1;
add>>=1;
}
for(i=0;i<8;i++)
{
scl=1;
temp>>=1;
scl=0;
if(IO)
temp|=0x80;
}
return temp;
}
void set1302()
{
writebyte(0x8e,0x00);
writebyte(0x84,0x00);
writebyte(0x82,0x00);
writebyte(0x80,0x00);
writebyte(0x8e,0x80);
}
void read1302(uchar *p)
{
p[0]=readbyte(0x85);
writebyte(0x84,0x00);
p[1]=readbyte(0x83);
writebyte(0x82,0x00);
p[2]=readbyte(0x81);
writebyte(0x00,0x00);
}
void zhuanghuan()
{
shi=time[0];
fen=time[1];
miao1=(time[2]/16)%10;
miao2=(time[2]%16)%10;
}
void display()
{
rst573;
P0=chu[0];
y6;
rst573;
P0=tab[shi>>4];
y7;
delay(2);
rst573;
P0=chu[1];
y6;
rst573;
P0=tab[shi&0x0f];
y7;
delay(2);
rst573;
P0=chu[3];
y6;
rst573;
P0=tab[fen>>4];
y7;
delay(2);
rst573;
rst573;
P0=chu[4];
y6;
rst573;
P0=tab[fen&0x0f];
y7;
delay(2);
rst573;
P0=chu[6];
y6;
rst573;
P0=tab[miao1];
y7;
delay(2);
rst573;
P0=chu[7];
y6;
rst573;
P0=tab[miao2];
y7;
delay(2);
rst573;
P0=chu[2];
y6;
rst573;
P0=0xbf;
y7;
delay(2);
rst573;
P0=chu[5];
y6;
rst573;
P0=0xbf;
y7;
rst573;
delay(1);
read1302(time);
zhuanghuan();
}
void jian()
{
if(s4==0)
{
delay(5);
if(s4==0)
{
while(!s4)
display();
writebyte(0x8e,0x00);
shi++;
if(shi==10) //对应BCD的0~9
shi=16;
if(shi==26) //对应BCD的10~19
shi=32;
if(shi==36) //对应BCD的19~23
shi=0;
writebyte(0x84,shi);
}
}
if(s5==0)
{
delay(5);
if(s5==0)
{
while(!s5)
display();
writebyte(0x8e,0x00);
shi--;
if(shi==-1) //对应BCD的23~20
shi=35;
if(shi==31) //对应BCD的19~10
shi=25;
if(shi==15) //对应BCD的9~0
shi=9;
writebyte(0x84,shi);
}
}
if(s6==0)
{
delay(5);
if(s6==0)
{
while(!s6)
display();
writebyte(0x8e,0x00);
fen++;
if(fen==10) //对应BCD的0~9
fen=16;
if(fen==26) //对应BCD的10~19
fen=32;
if(fen==42) //对应BCD的20~29
fen=48;
if(fen==58) //对应BCD的30~39
fen=64;
if(fen==74) //对应BCD的40~49
fen=80;
if(fen==90) //对应BCD的50~59
fen=0;
writebyte(0x82,fen);
}
}
if(s7==0)
{
delay(5);
if(s7==0)
{
while(!s7)
display();
writebyte(0x8e,0x00);
fen--;
if(fen==-1) //对应BCD的59~50
fen=89;
if(fen==79) //对应BCD的49~40
fen=73;
if(fen==63) //对应BCD的39~30
fen=57;
if(fen==47) //对应BCD的29~20
fen=41;
if(fen==31) //对应BCD的19~10
fen=25;
if(fen==15) //对应BCD的9~0
fen=9;
writebyte(0x82,fen);
}
}
}
void main()
{
set1302();
while(1)
{
jian();
display();
}
}
Ⅳ 求基于51单片机课程设计时钟的硬件图和程序(C语言)
请问楼主是要单片机内部的定时器计时还是使用DS1302计时
Ⅳ 请问你会C语言编程吗我最近在做一个单片机课程设计,需要用C语言编程
这种要不把问题问清楚了,要不就去群里问,这样问哪能得到答案?
Ⅵ 51单片机交通灯课程设计C语言
具体让回答的人编写个程序给你不太现实哦,我找到了一些资料,希望对你有用,也希望你实际的去编写程序,以后找工作或者电子竞赛都很有好处。方法:在网络文库输入“51单片机c语言交通灯设计报告”,有好几份,可以参考参考。
Ⅶ 单片机课程设计用c语言SPK是什么
单片机课程设计用c语言与SPK貌似没有直接联系,从字面上来理解,SPK应该是Speaker的意思,也就是扬声器,所以题目就是用单片机控制扬声器发声或者播放音乐。