note
note copied to clipboard
智能车代码 C语言(大学)
所用单片机均是 51,参加学校智能车大赛的代码。分两个代码:
代码一
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
uchar num[] ={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
sbit p1_0=P1^0; //D2,低有效
sbit p1_1=P1^1; //D3,低有效
sbit p1_2=P1^2; //
sbit p1_3=P1^3; //
sbit p1_4=P1^4; //K1,低有效
sbit p1_5=P1^5; //K2,低有效
sbit p1_6=P1^6; //控制蜂鸣器,低有效
sbit p1_7=P1^7; //控制数码管,低有效
bit duoJiFlag;
bit dianJiFlag;
uint i;
uint maxDij;
uint highDij;
uint maxDoj;
uint highDoj;
void delay_ms(uint i)
{
uint m,n;
for(m=0;m<i;m++ )
for(n=0;n<137;n++)
;
}
void uint_inter()
{
TMOD=0X01; // 定时器0方式1
EA = 1; // 允许所有中断
duoJiFlag=1;
maxDoj=19000;
highDoj=15000;
ET0 = 1; // 开定时器0中断
TR0 = 1; // Timer0开始计数
}
void timer0(void) interrupt 1
{
ET0=0;
TR0=0;
if(duoJiFlag)
{
p1_0=1;
p1_6=1;
TH0=(65535-highDoj)/256;
TL0=(65535-highDoj)%256;
}
else
{
p1_0=0;
p1_6=0;
TH0=(65535-maxDoj+highDoj)/256;
TL0=(65535-maxDoj+highDoj)%256;
}
duoJiFlag=~duoJiFlag;
ET0 = 1; // 开定时器0中断
TR0 = 1; // Timer0开始计数
}
main()
{
p1_7=0;
i=0;
while(1)
{
if(p1_5==0)
{
i++;
p1_0=p1_5;
delay_ms(200);
}
else
p1_0=1;
if(i==10)
i=0;
P2=num[i];
}
}
代码二
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
uchar num[] ={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
sbit p1_0=P1^0; //D2,低有效
sbit p1_1=P1^1; //D3,低有效
sbit p1_2=P1^2; //
sbit p1_3=P1^3; //
sbit p1_4=P1^4; //K1,低有效
sbit p1_5=P1^5; //K2,低有效
sbit p1_6=P1^6; //控制蜂鸣器,低有效
sbit p1_7=P1^7; //控制数码管,低有效
bit duoJiFlag;
bit dianJiFlag;
uint i;
uint maxDij;
uint highDij;
uint maxDoj;
uint highDoj;
void delay_ms(uint i)
{
uint m,n;
for(m=0;m<i;m++ )
for(n=0;n<137;n++)
;
}
void uint_inter()
{
TMOD=0X01; // 定时器0方式1
EA = 1; // 允许所有中断
duoJiFlag=1;
maxDoj=19000;
highDoj=15000;
ET0 = 1; // 开定时器0中断
TR0 = 1; // Timer0开始计数
}
void timer0(void) interrupt 1
{
ET0=0;
TR0=0;
if(duoJiFlag)
{
p1_0=1;
p1_6=1;
TH0=(65535-highDoj)/256;
TL0=(65535-highDoj)%256;
}
else
{
p1_0=0;
p1_6=0;
TH0=(65535-maxDoj+highDoj)/256;
TL0=(65535-maxDoj+highDoj)%256;
}
duoJiFlag=~duoJiFlag;
ET0 = 1; // 开定时器0中断
TR0 = 1; // Timer0开始计数
}
main()
{
p1_7=0;
i=0;
while(1)
{
if(p1_5==0)
{
i++;
if(i==10)
i=0;
p1_0=p1_5;
delay_ms(200);
}
else
p1_0=1;
if(p1_4==0)
{
i--;
if(i==-1)
i=9;
p1_1=p1_4;
delay_ms(200);
}
else
p1_1=1;
P2=num[i];
}
}
👌🏻,这代码怎么样?有实战过的兄弟吗?
👌🏻,这代码怎么样?有实战过的兄弟吗?
实战过,没问题的
@Yhzhtk 多谢