专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
学习单片机
2019-07-15 13:14
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
4465
7
1088
我是一个刚学
单片机
的新手,下载了一个交通灯,想把其中的c文件复制生成新的c文件,但总是给我警告,这是怎么回事?希望打神解惑
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
唉得学啊
2019-07-15 18:39
#include<include.h>
sbit NS_GRE = P2^5;
sbit NS_YEL = P2^4;
sbit NS_RED = P2^3;
sbit EW_GRE = P2^2;
sbit EW_YEL = P2^1;
sbit EW_RED = P2^0;
uint8 EW_Timer = unused8; //东西方向红灯定时器
uint8 NS_Timer = unused8; //南北方向红灯定时器
uint8 YEL_Timer = unused8; //黄灯 5s定时器
int main(void)
{
Timer_Init(); //定时器初始化
INT0_Init(); //外部中断初始化
EA=1; //打开全局中断
NS_GRE = OFF; //所有的灯都灭
NS_YEL = OFF;
NS_RED = OFF;
EW_GRE = OFF;
EW_YEL = OFF;
EW_RED = OFF;
P3 = 0xFF; //所有显示灭
//先让东西方向红灯亮 南北方向通行
EW_Timer = EWTime_Count;//东西方向开始计时
while(1)
{
if((EW_Timer != unused8) && (EW_Timer != 0)){ //东西方向做红灯倒计时
display1(EW_Timer/10, EW_Timer%10); //东西方向显示时间 南北方向不显示
EW_RED_ON(); //东西方向保持红灯
NS_GRE_ON(); //南北方向保持绿灯
}
else if((EW_Timer != unused8) && (EW_Timer == 0) && (YEL_Timer == unused8)){//东西方向红灯计时到 东西方向保持红灯 南北方向变黄灯 开始黄灯5s计时
EW_RED_ON(); //东西方向红灯
NS_YEL_ON(); //南北方向黄灯
YEL_Timer = YELTime_Count; //5s计时
}
if((EW_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){
display1(YEL_Timer/10, YEL_Timer%10); //东西方向显示时间 南北方向不显示
}
if((EW_Timer != unused8) && (YEL_Timer == 0)){ //东西方向红-南北方向黄灯5s计时到 东西红灯定时器关 黄灯定时器关 南北红灯 东西绿灯 南北计时器开
EW_Timer = unused8; //东西红灯定时器关
YEL_Timer = unused8; //黄灯定时器关
NS_RED_ON(); //南北变红灯
EW_GRE_ON(); //东西变绿灯
NS_Timer = NSTime_Count; //南北红灯定时器开
}
if((NS_Timer != unused8) && (NS_Timer != 0)){ //南北红灯定时器正在计时
display2(NS_Timer/10, NS_Timer%10); //南北方向显示时间 东西方向不显示
EW_GRE_ON(); //东西保持绿灯
NS_RED_ON(); //南北保持红灯
}
else if((NS_Timer != unused8) && (NS_Timer == 0) && (YEL_Timer == unused8)){ //南北方向红灯计时到 南北方向保持红灯 东西方向变黄灯 开始黄灯5s计时
NS_RED_ON(); //南北方向保持红灯
EW_YEL_ON(); //东西方向变黄灯
YEL_Timer = YELTime_Count; //5s计时
}
if((NS_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){
display2(YEL_Timer/10, YEL_Timer%10); //南北方向显示时间 东西方向不显示
}
if((NS_Timer != unused8) && (YEL_Timer == 0)){ //南北方向红-东西方向黄灯5s计时到 南北方向定时器关 黄灯定时器关 东西方向变红灯 南北方向变绿灯 东西方向红灯计时器开始计时
NS_Timer = unused8;
YEL_Timer = unused8;
EW_RED_ON(); //东西方向变红灯
NS_GRE_ON(); //南北方向变绿灯
EW_Timer = EWTime_Count; //东西方向开始计时
}
if(Flag_Key == 1){ //如果急停按键按下 则全红灯 显示灭
P3 = 0xFF; //所有显示灭
EW_RED_ON(); //东西方向红灯
NS_RED_ON(); //南北方向红灯
EW_Timer = unused8; //关闭所有定时器
NS_Timer = unused8;
YEL_Timer = unused8;
}
}
}
吕立令 12:18:19
sbit Key = P3^2;
uint8 Flag_Key = 0; //按键是否按下标识
/****************************************
* 外部中断初始化
*INT0 下降沿触发
*****************************************/
void INT0_Init(void)
{
EX0 = 1; //INT0 使能
IT0 = 1; //下降沿触发
}
void Key_Stop(void) interrupt 0
{
Delay10uS(200);
if(Key == 0){ //确认按键按下
Flag_Key = 1;
}
}
复制代码
加载中...
查看其它7个回答
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
- #include<include.h>
- sbit NS_GRE = P2^5;
- sbit NS_YEL = P2^4;
- sbit NS_RED = P2^3;
- sbit EW_GRE = P2^2;
- sbit EW_YEL = P2^1;
- sbit EW_RED = P2^0;
- uint8 EW_Timer = unused8; //东西方向红灯定时器
- uint8 NS_Timer = unused8; //南北方向红灯定时器
- uint8 YEL_Timer = unused8; //黄灯 5s定时器
- int main(void)
- {
- Timer_Init(); //定时器初始化
- INT0_Init(); //外部中断初始化
- EA=1; //打开全局中断
-
- NS_GRE = OFF; //所有的灯都灭
- NS_YEL = OFF;
- NS_RED = OFF;
- EW_GRE = OFF;
- EW_YEL = OFF;
- EW_RED = OFF;
- P3 = 0xFF; //所有显示灭
- //先让东西方向红灯亮 南北方向通行
- EW_Timer = EWTime_Count;//东西方向开始计时
- while(1)
- {
-
- if((EW_Timer != unused8) && (EW_Timer != 0)){ //东西方向做红灯倒计时
- display1(EW_Timer/10, EW_Timer%10); //东西方向显示时间 南北方向不显示
- EW_RED_ON(); //东西方向保持红灯
- NS_GRE_ON(); //南北方向保持绿灯
- }
- else if((EW_Timer != unused8) && (EW_Timer == 0) && (YEL_Timer == unused8)){//东西方向红灯计时到 东西方向保持红灯 南北方向变黄灯 开始黄灯5s计时
- EW_RED_ON(); //东西方向红灯
- NS_YEL_ON(); //南北方向黄灯
- YEL_Timer = YELTime_Count; //5s计时
- }
- if((EW_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){
- display1(YEL_Timer/10, YEL_Timer%10); //东西方向显示时间 南北方向不显示
- }
- if((EW_Timer != unused8) && (YEL_Timer == 0)){ //东西方向红-南北方向黄灯5s计时到 东西红灯定时器关 黄灯定时器关 南北红灯 东西绿灯 南北计时器开
- EW_Timer = unused8; //东西红灯定时器关
- YEL_Timer = unused8; //黄灯定时器关
- NS_RED_ON(); //南北变红灯
- EW_GRE_ON(); //东西变绿灯
- NS_Timer = NSTime_Count; //南北红灯定时器开
- }
- if((NS_Timer != unused8) && (NS_Timer != 0)){ //南北红灯定时器正在计时
- display2(NS_Timer/10, NS_Timer%10); //南北方向显示时间 东西方向不显示
- EW_GRE_ON(); //东西保持绿灯
- NS_RED_ON(); //南北保持红灯
- }
- else if((NS_Timer != unused8) && (NS_Timer == 0) && (YEL_Timer == unused8)){ //南北方向红灯计时到 南北方向保持红灯 东西方向变黄灯 开始黄灯5s计时
- NS_RED_ON(); //南北方向保持红灯
- EW_YEL_ON(); //东西方向变黄灯
- YEL_Timer = YELTime_Count; //5s计时
- }
- if((NS_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){
- display2(YEL_Timer/10, YEL_Timer%10); //南北方向显示时间 东西方向不显示
- }
- if((NS_Timer != unused8) && (YEL_Timer == 0)){ //南北方向红-东西方向黄灯5s计时到 南北方向定时器关 黄灯定时器关 东西方向变红灯 南北方向变绿灯 东西方向红灯计时器开始计时
- NS_Timer = unused8;
- YEL_Timer = unused8;
- EW_RED_ON(); //东西方向变红灯
- NS_GRE_ON(); //南北方向变绿灯
- EW_Timer = EWTime_Count; //东西方向开始计时
- }
- if(Flag_Key == 1){ //如果急停按键按下 则全红灯 显示灭
- P3 = 0xFF; //所有显示灭
- EW_RED_ON(); //东西方向红灯
- NS_RED_ON(); //南北方向红灯
-
- EW_Timer = unused8; //关闭所有定时器
- NS_Timer = unused8;
- YEL_Timer = unused8;
- }
- }
- }
- 吕立令 12:18:19
- sbit Key = P3^2;
- uint8 Flag_Key = 0; //按键是否按下标识
- /****************************************
- * 外部中断初始化
- *INT0 下降沿触发
- *****************************************/
- void INT0_Init(void)
- {
- EX0 = 1; //INT0 使能
- IT0 = 1; //下降沿触发
- }
- void Key_Stop(void) interrupt 0
- {
- Delay10uS(200);
- if(Key == 0){ //确认按键按下
- Flag_Key = 1;
- }
- }
复制代码一周热门 更多>