‘壹’ C51单片机程序设计题,要求用C语言做,模拟交通灯控制单片机电路,答案要详细具体。
晚上随手写,也未调试,权当看看
程序有不严谨地方还得调试修改
#include<REGX51.H>
#defineSTATUS_1S 1
#defineSTATUS_2S 2
#defineSTATUS_3S 3
#defineSTATUS_4S 4
#defineSTATUS_5S 5
#defineSTATUS_15S 15
#defineSTATUS_28S 28
#defineSTATUS_29S 29
#defineSTATUS_30S 30
unsignedcharflag,status,status_temp=1,status_temp_;
sbitK1 = P0^0;
sbitK2 = P0^1;
sbitRLED = P0^2;
sbitYLED = P0^3;
sbitGLED = P0^4;
voidInit(void)
{
ET0=1;
TR0=1;
RLED=0; //亮
YLED=0;
GLED=0;
while(status_temp)
{
switch(status)
{
caseSTATUS_1S: //1S
{
RLED=1; //灭,闪一次
YLED=1;
GLED=1;
} break;
caseSTATUS_2S: //1S
{
RLED=0; //亮,闪一次
YLED=0;
GLED=0;
} break;
caseSTATUS_3S: //1S
{
RLED=1; //灭
YLED=1;
GLED=1;
status_temp=0;
} break;
}
}
status_temp=1;
ET0=0;
TR0=0;
}
voidInit_Timer0(void)
{
TMOD=0x01;
// ET0=1;
// TR0=1;
EA=1;
TH0=0X3C;
TL0=0XB0; //未计算,偷楼上的
}
voidM_Start(void)
{
TH0=0X3C;
TL0=0XB0;
ET0=1;
TR0=1;
RLED=0; //红亮
while(status_temp)
{
switch(status)
{
caseSTATUS_1S:
{
if(status_temp_==1)
{
YLED=0;
}
} break;
caseSTATUS_2S:
{
if(status_temp_==1)
{
YLED=1;
}
} break;
caseSTATUS_3S:
{
if(status_temp_==1)
{
YLED=0;
status_temp_=0;
}
} break;
caseSTATUS_15S: //15S灭,绿亮
{
RLED=1;
GLED=0;
} break;
caseSTATUS_28S:
{
GLED=1;
} break;
caseSTATUS_29S:
{
GLED=0;
} break;
caseSTATUS_30S:
{
GLED=1;
status=0;
status_temp_=1;
} break;
}
}
ET0=0;
TR0=0;
status=0;
status_temp=1;
YLED=1;
}
voidM_End(void)
{
TH0=0X3C;
TL0=0XB0;
ET0=1;
TR0=1;
RLED=0; //亮1次
YLED=0;
GLED=0;
while(status_temp)
{
switch(status)
{
caseSTATUS_1S: //1S
{
RLED=1; //灭一次
YLED=1;
GLED=1;
} break;
caseSTATUS_2S: //1S
{
RLED=0; //亮二次
YLED=0;
GLED=0;
} break;
caseSTATUS_3S: //1S
{
RLED=1; ////灭二次
YLED=1;
GLED=1;
} break;
caseSTATUS_4S: //1S
{
RLED=0; ////亮三次
YLED=0;
GLED=0;
} break;
caseSTATUS_5S: //1S
{
RLED=1; ////灭三次
YLED=1;
GLED=1;
status_temp=0;
} break;
}
}
status_temp=1;
ET0=0;
TR0=0;
}
main()
{
Init();//单片机初始化
Init_Timer0();//定时器初始化
while(1)
{
if(K1==0)
M_Start();//模拟开始
if(K2==0)
M_End();//模拟结束
}
}
voidinterrupt_time0()interrupt1 //核对头文件,一致就好
{
TH0=0X3C;
TL0=0XB0;
flag++;
if(flag==20)
{
status++;
flag=0;
}
}
‘贰’ 51单片机的毕设题目与资料有吗
第四文件
1:小车计时
2:汽车座椅
3:没意思 285922500万年历
4:智能照明+遥控+电力通讯+无线+原理图
5:整理--室内环境监测系统的研究与设计二次修改
6:夏雪之梦 469857178温控控制50---100AD+加热制冷发送
7:基于51单片机的温湿度计设计.doc
8:数控电源
9:交通灯20111217
10:基于单片机89C51的数字体温计设计
11:基于AT892051单片机的倒车防撞预警系统设计和实现 .doc
12:浮云单87714897电加热器
13:纯数字电路时钟仿真+原理图
14:车胎检测--基于单片机AT89S52的汽车胎压监测系统TPMS.doc
15:ad590+tl480+高低温温度控制+RS232
16:1602电子钟课程设计无温度
第三文件
17:LED灯无级调光智能控制系统的设计和实现 声控变红外控
18:基于PWM模块的智能风扇调速
19:声控彩灯基于单片机的音乐彩灯控制器.doc
20:液位传感器--基于AT89CS51液位控制器设计.doc
21:音乐播放--全套==基于单片机的音乐播放器设计——软件设计.doc
第二文件
22:基于AT89c2051的简易时钟设计.doc
23:why的电热水器==基于AT89S51单片机的智能电热水器的设计--毕业设计.doc
24:场馆入场人数统计--基于89s52的场馆门票统计的设计.doc
25:出租车计价器简单双位计数+论文
26:基于89s51单片机的室内智能通风控制系统研究
27:电动自行车仪表显示系统
28:基于单片机的超速报警器的电路设计
29:温度湿度计LED显示
30:智能路灯控制光控额时间控制无调光
第一文件
31:智能充电器
32:无线恒温箱
33:万年历带秒表闹钟倒计时温度礼拜带红外感应
34:万年历带第几周分屏显示
35:基于AT89S51的停车场的设计.doc
36:生光触延时开关
37:汽车座椅有记忆
38:偶尔偏执浴室水温控制电路设计
39:交通灯001じ☆运♀志♂
40:基于AT89c51的简易时钟设计.doc
41:基于无线通讯技术的新型LED点阵屏的研制
42:基于数字逻辑电路的8路抢答器
43:基于51单片机电语音播报脉搏计
44:过客的温度湿度计
45:多路远程控制信息采集
46:单片机定时器在养鸡场得应用
47:百秒倒计时--基于89C51的99秒倒计时设计.doc
48:89c51单片机8路抢答00
49:485通信智能窗帘
50:基于51单片机的8路无线抢答器
‘叁’ 请帮忙写一个单片机C51一个延时50ms的函数例题
延时实际上就是让CPU暂停当前的任务,去执行一些空操作或其他任务.当然去执行其他任务所花的时间你必须要能够确定.不然可能会影响当前任务.常用的都是让它执行空操作.用C来实现就是给一个或几个变量让它再那里自增或自减.下面就是最基本的一个例子
void delay50ms()
{
unsigned int i;
for(i=50000;i>0;i--);
}
当然可以也可以用定时器来实现,时间也更精确.例子楼上那个就是标准的.具体用哪一个那要看用什么场合
‘肆’ 哪里可以免费下载C51
可以到亿道电子下载
‘伍’ C51 单片机的题!编主,子两程序。子程序名AVERAGE,入口参数:内部RAM中50H—59H十个单元中的数(由主
你这题好像是汇编的题,C程序一般不规定具体RAM地址。
‘陆’ 51单片机汇编题目
DATDEAL:
MOV30H,#34H
MOV31H,#58H
MOV32H,#23H
MOV33H,#45H
MOVDPTR,#1000H
MOVA,31H
ADDA,33H
MOVDPL,#02H
MOVX@DPTR,A
MOVA,30H
ADDCA,#32H
MOVDPL,#01H
MOVX@DPTR,A
CLRA
ADDCA,#0
MOVDPL,#00H
MOVX@DPTR,A
RET