首页 (CCD摄像头)程序,舵机,电机控制程序

(CCD摄像头)程序,舵机,电机控制程序

举报
开通vip

(CCD摄像头)程序,舵机,电机控制程序 * Test.c * Description: This file includes I/ O function for test, the PWM outputs function for test, function * testing sensors. * (c) Copyright 2006,Zhao Cheng * All Rights Reserved * By : Zhao Cheng * Note : Don't change this file if possible. *****...

(CCD摄像头)程序,舵机,电机控制程序
* Test.c * Description: This file includes I/ O function for test, the PWM outputs function for test, function * testing sensors. * (c) Copyright 2006,Zhao Cheng * All Rights Reserved * By : Zhao Cheng * Note : Don't change this file if possible. **********************************************************************************/ #include #include #define HIGHSPEED 8000 #define LOWSPEED 11000 /* 速度变量,0-24000 数值越大,速度越慢 */ void PWMout(int, int); /* 24000-20000 */ void IOtest(void) { static unsigned char i=0,j=0x01,k; DDRB = DDRA = 0xFF; PORTB = 0xf0; for(;;) { k=(~j)&0x7f; PORTA = PORTB = k; while (TCNT != 0x0000); while (TCNT == 0x0000) { if(i>9) { j=j<<1; i=0; } i++; } if(j>=0x80) j=0x01; } } void PWMtest(void) { int counter=-4500; DDRB = 0xff; PORTB = 0xff; TSCR1 = 0x80; /* enable timer TCNT */ TSCR2 = 0x00; /* TCNT prescaler setup */ for(;;) { while (TCNT != 0x0000); while (TCNT == 0x0000); counter=counter+30; if(counter >= 3000) { counter = 0; PWMout(4500, LOWSPEED); } if(counter == 1500) { PWMout(-4500, LOWSPEED); } PORTB = (char)(counter/100); } } void SignalTest(void) { unsigned char signal; int Direction, Velocity; Direction = 0; Velocity = LOWSPEED; DDRA = 0x00; DDRB = 0xff; signal = PORTA; PORTB = ~signal; switch(signal) { case 0x08: /* 0001 1000 */ case 0x10: Direction = 800; Velocity = HIGHSPEED; break; case 0x04: /* 0010 0100 */ case 0x20: Direction = 1500; Velocity = HIGHSPEED; break; case 0x02: /* 0100 0010 */ case 0x40: Direction = 2800; Velocity = HIGHSPEED; break; case 0x01: /* 1000 0001 */ case 0x80: Direction = 4000; Velocity = LOWSPEED; break; case 0x3c: /* 0011 1100 over start line */ case 0xff: /* 1111 1111 over crossing line */ case 0x00: /* 0000 0000 go straight not need changed state */ default: break; } if(signal > 0x0f) Direction = -Direction; PWMout(Direction, LOWSPEED); } /* *********************************************************************************** * LCD1620.c * ICC-AVR application builder : 2006-1-8 21:43:48 * Target : M8 * Crystal: 4.0000Mhz * * Note : Don't change this file if possible. **********************************************************************************/ #define CMD_CLEAR 0x01 #define CMD_RESET 0x02 #include #include #define LCD_DATA 0xff #define LCD_EN 0x01 //PORTC 0 #define LCD_RS 0x02 //PORTC 1 #define LCD_RW 0x04 //PORTC 2 #define LCD_DATAPORT PORTB #define LCD_ENPORT PORTA #define LCD_RSPORT PORTA #define LCD_RWPORT PORTA void lcd_init(void); void lcd_write_cmd(unsigned cmd,unsigned data); void lcd_setxy(unsigned char x,unsigned char y); void lcd_write_string(unsigned char X,unsigned char Y,unsigned char *str); void delay_nus(unsigned int n); void delay_nms(unsigned int n); void lcd_init(void) { DDRB |= LCD_DATA; DDRA |= LCD_EN | LCD_RS | LCD_RW; LCD_RWPORT&=~LCD_RW; LCD_DATAPORT=0x30; //控制字规则:5:8bit,4:16x2,3:5x7 LCD_ENPORT|=LCD_EN; delay_nus(1); LCD_ENPORT&=~LCD_EN; delay_nus(40); lcd_write_cmd(0,0x38); //8bit test lcd_write_cmd(0,0x0c); //显示开 lcd_write_cmd(0,0x01); //显示清屏 lcd_write_cmd(0,0x06); //显示光标移动设置 } void lcd_write_cmd(unsigned cmd,unsigned data) { if(cmd==0) LCD_RSPORT&=~LCD_RS; else LCD_RSPORT|=LCD_RS; LCD_DATAPORT&=0x00; LCD_DATAPORT=data; LCD_ENPORT|=LCD_EN; delay_nus(10); LCD_ENPORT&=~LCD_EN; delay_nus(10); } void lcd_setxy(unsigned char x,unsigned char y) { unsigned char addr; if(y==0) addr=x+0x80; else addr=x+0xc0; lcd_write_cmd(0,addr); } void lcd_write_string(unsigned char X,unsigned char Y,unsigned char *str) { lcd_setxy(X,Y); while(*str) { lcd_write_cmd(1,*str); str++; } } void delay_1us(void) //1us延时函数 { asm("nop"); } void delay_nus(unsigned int n) //N us延时函数 { unsigned int i=0; for (i=0;i
本文档为【(CCD摄像头)程序,舵机,电机控制程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_708074
暂无简介~
格式:doc
大小:26KB
软件:Word
页数:11
分类:生产制造
上传时间:2011-12-22
浏览量:15