單片機課程設計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的意思,也就是揚聲器,所以題目就是用單片機控制揚聲器發聲或者播放音樂。