当前位置:首页 » 课程大全 » 单片机c语言课程设计

单片机c语言课程设计

发布时间: 2020-11-29 15:43:09

⑴ 求51单片机C语言程序编程思路

#include<AT89X51.H>
//假定继电器是安装在P3.5,按键分别安装在P3.6,P3.7,时钟频率12MHz
sbitsw1=P3^6;
sbitsw2=P3^7;
sbitrelay=P3^5;

voidSetupTimer0()
{
TMOD&=0XF0;//仅保留T1信息
TMOD|=0X02;//设置T0:定时功能,方式2,自动重载8位定时器/计数器
TH0=256-250;//定时每0.25ms中断一次
TL0=256-250;
TR0=1;//开启定时器
ET0=1;//定时器0中断打开
}

dataunsignedcharus250;
dataunsignedintrelay_timer;

voidTimer0_ISR()interrupt1//定时中断服务程序,为按键消抖服务
{
//如果一个动作过程刚刚开始,则设定继电器延时3000ms,并打开继电器
if(0==relay_timer&&0==sw1){relay_timer=3000;relay=1;}

if(++us250>=4)//250us中断一次,每四次得到1ms
{
us250=0;
if(relay_timer==0)relay=0;//如继电器延时为0,则关继电器
else--relay_timer;//否则继电器延时递减
}

//如果当前正处于一个动作过程且有sw2按下,则修改继电器延时为1000ms
if(relay_timer&&0==sw2)relay_timer=1000;
}

voidmain()
{
us250=0;
relay_timer=0;
relay=0;
SetupTimer0();
EA=1;//全局中断打开
while(1);//所有的动作均在中断函数内完成
}

⑵ 单片机课程设计用c语言SPK是什么

单片机课程设计用c语言与SPK貌似没有直接联系,从字面上来理解,SPK应该是Speaker的意思,也就是扬声器,所以题目就是用单片机控制扬声器发声或者播放音乐。

⑶ 89c51单片机c语言课程设计新年倒计时电脑时钟的设计(4个数码管,我急需程序)!!!

==========================
推荐一个电子技术导航网站你吧!------ 电子世家网址导航 。它分类收录了很多优秀的电子技术网站,你可以去逛逛的;特别是它里面的那些网站的论坛,有很多大虾分享的资料,希望能对在日后从事电子技术的工作中有帮助啦
======================

⑷ 怎么设计基于51单片机的八位抢答器课程设计用c语言

你的描述不详:下面我给出方法,自已参考:
1:主持人端有一个单片机设备 且设备有一个或多个按键,单个按键,那么就做成按键复用,如果是多个按键,那就可以按要求设置按键功能和数量。参赛队每队一个设备,如果不方便能过连线来通讯,就采用无线通讯,抢答端只需一个按键按键,同时在按键里或边上用指示灯来指示状诚。
2:逻辑,当主持人按下抢答键时,主持人端设备向8个参赛队发送抢答开始信号数据,参赛队8个设备向主持端应答,判断收到应答后,开始计时10秒,某一队按下按键时,这队会向主持端发送本队的编号即可,说到这里,后面的基本上都是一样的原理,就是收发数据,应答,判断数据类型和功能。即可达到你的要求。

⑸ 单片机课程设计 广告灯 求C语言的

#include<reg52.h>
void delayMs(unsigned char m); //函数声明void delayUs2x(unsigned char t);
void delay1s(unsigned int r);
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{

unsigned char i;
unsigned char temp;//临时转换变量
while (1)
{
for(i=0;i<4;i++) //for循环,执行4次

{ P1=0xff; //LED全灭
delay1s(1);
P1=0x00; //LED全亮
delay1s(1);
}
temp=0xfc; //11111100
P1=temp;
for(i=0;i<7;i++) //for循环,执行7次
{
delay1s(1); //调用延时程序

temp<<=1; //移位
temp=temp|0x01;
}

}}
/*------------------------------------------------
μs级延时函数
------------------------------------------------*/
void delayUs2x(unsigned char t)
{
while(--t);
}
/*------------------------------------------------
mS级延时函数
------------------------------------------------*/
void delayMs(unsigned char m)
{

while(m--)
{
//大致延时1mS
delayUs2x(245);
delayUs2x(245);
}
}
/*------------------------------------------------
s级延时函数
-------------------------------------------------*/
void delay1s(unsigned int r)
{
while(r--)
{
//大致延时1s
delayMs(1000);
delayMs(1000);
}
}

⑹ 单片机课程设计:用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();
}
}

⑺ 80c51单片机交通灯课程设计,c语言编程

交通灯.rar proteus仿真C语言供参考

⑻ 单片机课程设计的内容。最好用汇编语言,实在不行,C语言也可以。需要大家快速点。

keil2编程 用了Atmel 89c52 ,锁存器74hc573两片,LED

时间长都忘记了,没有硬件,你调试看看吧

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit la=P2^6;
sbit wela=P2^7;
void delay(uint z);
void main()
{
while(1)
{
wela=1;
P0=0xd7;//东西
wela=0;
la=1;
P0=0x40;//绿
la=0;
delay(60000);//延时60s

wela=1;
P0=0xeb;//南北
wela=0;
la=1;
P0=0x01;//红
la=0;
delay(60000);

wela=1;
P0=0x3a;//东西南北
wela=0;
la=1;
P0=0x08;//黄
la=0;
delay(2000);
wela=1;
P0=0x3a;
wela=0;
la=1;
P0=0x00;//灭
la=0;
delay(2000);
wela=1;
P0=0x3a;
wela=0;
la=1;
P0=0x08;//黄
la=0;
delay(2000);

wela=1;
P0=0xd7;//东西
wela=0;
la=1;
P0=0x01;//红
la=0;
delay(60000);

wela=1;
P0=0xeb;//南北
wela=0;
la=1;
P0=0x40;//绿
la=0;
delay(60000);
}
}

void delay(uint z)//1ms
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

⑼ c语言单片机课程设计

给你给出关键代码吧,你看懂了才有写的
srand((unsigned)time(null));
while(1)
{
int value = rand()%13;
int k = getValue(); //得到用户输入的值,这部分没法帮你弄
while(1)
{
int k = getValue();
if(k>value)
{
/*点亮绿灯*/
continue;
}
if(k<value)
{
/*点亮红灯*/
continue;
}
if(k==value)
{
/*点亮红、绿灯灯*/
break;
}
}
}

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919