调试后51单片机自动循迹小车程序
#define P_IOA_Data (volatile unsigned int *)0x7000 #define P_IOA_Dir (volatile unsigned int *)0x7002 #define P_IOA_Attrib (volatile unsigned int *)0x7003 unsigned int scan();//检测黑线函数定声明 unsigned int num=0; void delay();
void init_1()//输入初始化 {
[P_IOA_Dir]=0x00f0; [P_IOA_Attrib]=0x00f0; [P_IOA_Data]=0x000f; }
//void init_2()//输出初始化 //{
//[P_IOA_Dir]=1; //[P_IOA_Attrib]=1; //[P_IOA_Data]=0; //}
void main() {
while(1) {
void init_1(); num=scan(); //void init_2(); switch(num) {
case 1: {
while(1) {
[P_IOA_Data]=0x9f; delay(500);
// if([P_IOA_Data]==1)//传感器返回1,则终止转弯,下同 break; } }
case 2: {
while(1)
{
[P_IOA_Data]=0x9f; delay(500); break; } }
case 4: {
while(1) {
[P_IOA_Data]=0x6f; delay(500); break; } }
case 5: {
while(1) {
[P_IOA_Data]=0x6f; delay(500); break; } }
case 0: {
while(1) {
[P_IOA_Data]=0x5f; delay(500); break; } }
}
[P_IOA_Data]=0x5f;//直走 delay(500); } }
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--) for(y=110;y>0;y--); }
unsigned int scan() {
if(P_IOA_Data==0xfe) {
num=1; return num; }
if(line_2==0xfd) {
num=2; return num; }
if(line_4==0xfb) {
num=4; return num; }
if(line_5==0xf7) {
num=5; return num; }
return 0; }
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuoyibo.net 版权所有 湘ICP备2023021910号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务