导航:首页 > 操作系统 > 单片机的c语言设计答案

单片机的c语言设计答案

发布时间:2024-07-05 22:51:05

‘壹’ 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;

}

}

‘贰’ 鍗旷墖链篊璇瑷绋嫔簭璁捐

  1. 鐢–PU鍐呴儴瀹氭椂鍣═0涓鏂鏂瑰纺璁℃椂锛屼骇鐢熷懆链熶负2s,鍗犵┖姣斾负80%镄勮剦鍐叉尝褰锛屾樉绀哄湪P1.0鍙c

  2. 鐢–PU鍐呴儴璁℃暟鍣═1锛屾寜璁℃暟妯″纺宸ヤ綔锛屽笔1.0鍙h緭鍑虹殑鑴夊啿杩涜岃℃暟锛屽苟鏄剧ず鍦≒2鍙c侳OSC=6MHz.

璇蜂綘鍙傝冿细

#include<reg51.h>

sbitWAVE=P1^0;

unsignedcharcodesegCode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

unsignedcharcount;

voidmain()
{
TMOD=0x51;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
IE|=0x82;
TR0=1;
TR1=1;
count=0;

while(1)
{
if(WAVE)
P2=segCode[TL1%10];
}
}

voidT0_INT()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;

count=++count%20;
WAVE=(count<4)?1:0;
}

甯屾湜鏄浣犺佺殑锛侊紒锛侊紒

‘叁’ 单片机c语言的一道简单的题目,急求答案,要答题过程,在线等

#include<reg51.h>
sbitLED = P1^0;
voidTimer0Init(void)
{
AUXR&=0x7F;
TMOD&=0xF0;
TMOD|=0x01;
TL0=0xE0;
TH0=0xB1;
TF0=0;
TR0=1;
ET0=1;
}

voidmain(void)
{
EA=1;
Timer0Init();
}

voidtimer0_Isr()interrupt1
{
LED=~LED;
TL0=0xE0;
TH0=0xB1;
}

‘肆’ 单片机C语言程序设计题

这是两个题啊。哈哈好做,第一个有C语言的冒泡法排序,第二个用中断,读,输出就可以

‘伍’ 鍗旷墖链篊璇瑷璁捐$粌涔犻

灏嗘墍链夋暟鎹鍙栧弽灏卞彲浠ヤ简銆傛垨钥呬笉鐢ㄤ慨鏀规暟鎹锛岀洿鎺ュ湪璋幂敤镞跺彇鍙嶏细

P0=~led[n];

‘陆’ 一个单片机C语言程序设计

1)把这10个数放在数组中(你没说数据宽度,就设定为字节)

unsigned char shu[10]={};

2)定义变量

unsignedchar max=0;

unsignedchar min=255;

unsignedchar avg=0;

unsigned int tmp=0;

3)采用循环

main()

{ char i;

for(i=0,i<10;i++)

{

if(shu[i]>max)max=shu[i];

if(shu[i]<min)max=shu[i];

tmp+=shu[i];

}

tmp-=max;

tmp-=min;

avg=tmp/8;

while(1){}

}

阅读全文

与单片机的c语言设计答案相关的资料

热点内容
剪应力计算法 浏览:819
如何自己搭建url跳转服务器 浏览:983
广数980tb3用g83钻孔怎么编程 浏览:576
程序员上海与北京 浏览:405
安卓手机的动态照片为什么卡 浏览:538
ad编译集成库时最常见的问题 浏览:846
matlab微分方程编程 浏览:700
安卓手机如何打开esp文件 浏览:545
什么app能安装应用 浏览:199
手机用什么app看电视剧电影好 浏览:603
导入原理图为什么文件夹不显示 浏览:656
androidapp风格 浏览:211
php取服务器url地址 浏览:293
linux时间调度算法 浏览:771
单片机最小电路详解 浏览:185
请求要求命令 浏览:806
电脑文件夹发微信显示被占用 浏览:295
手机怎么看加密视频 浏览:207
怎样解压手机es文件包 浏览:661
2017年学什么编程 浏览:935