2022年飞思卡尔智能车的数据采集程序,舵机,电机控制程序 .pdf

上传人:Q****o 文档编号:28020079 上传时间:2022-07-26 格式:PDF 页数:11 大小:51.43KB
返回 下载 相关 举报
2022年飞思卡尔智能车的数据采集程序,舵机,电机控制程序 .pdf_第1页
第1页 / 共11页
2022年飞思卡尔智能车的数据采集程序,舵机,电机控制程序 .pdf_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《2022年飞思卡尔智能车的数据采集程序,舵机,电机控制程序 .pdf》由会员分享,可在线阅读,更多相关《2022年飞思卡尔智能车的数据采集程序,舵机,电机控制程序 .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、* * 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 : Dont change this file if possible. */ #include #include #define HIGHSPEED 8000 #defin

2、e LOWSPEED 11000 /* 速度变量, 0-24000 数值越大,速度越慢*/ void PWMout(int, int); /* 24000-20000 */ void IOtest(void) static unsigned char i=0,j=0 x01,k; DDRB = DDRA = 0 xFF; PORTB = 0 xf0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - for(;) k=(j)&0

3、 x7f; PORTA = PORTB = k; while (TCNT != 0 x0000); while (TCNT = 0 x0000) if(i9) j=j=0 x80) j=0 x01; void PWMtest(void) int counter=-4500; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - DDRB = 0 xff; PORTB = 0 xff; TSCR1 = 0 x80; /* enable

4、 timer TCNT */ TSCR2 = 0 x00; /* TCNT prescaler setup */ for(;) while (TCNT != 0 x0000); while (TCNT = 0 x0000); counter=counter+30; if(counter = 3000) counter = 0; PWMout(4500, LOWSPEED); if(counter = 1500) PWMout(-4500, LOWSPEED); PORTB = (char)(counter/100); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -

5、 - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - void SignalTest(void) unsigned char signal; int Direction, Velocity; Direction = 0; Velocity = LOWSPEED; DDRA = 0 x00; DDRB = 0 xff; signal = PORTA; PORTB = signal; switch(signal) case 0 x08: /* 0001 1000 */ case 0 x10: Direction

6、 = 800; Velocity = HIGHSPEED; break; case 0 x04: /* 0010 0100 */ case 0 x20: Direction = 1500; Velocity = HIGHSPEED; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - break; case 0 x02: /* 0100 0010 */ case 0 x40: Direction = 2800; Velocity

7、= HIGHSPEED; break; case 0 x01: /* 1000 0001 */ case 0 x80: Direction = 4000; Velocity = LOWSPEED; break; case 0 x3c: /* 0011 1100 over start line */ case 0 xff: /* 1111 1111 over crossing line */ case 0 x00: /* 0000 0000 go straight not need changed state */ default: break; if(signal 0 x0f) Directi

8、on = -Direction; PWMout(Direction, LOWSPEED); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - /* * * LCD1620.c * ICC-AVR application builder : 2006-1-8 21:43:48 * Target : M8 * Crystal: 4.0000Mhz * * Note : Dont change this file if possibl

9、e. */ #define CMD_CLEAR 0 x01 #define CMD_RESET 0 x02 #include #include #define LCD_DATA 0 xff #define LCD_EN 0 x01 /PORTC 0 #define LCD_RS 0 x02 /PORTC 1 #define LCD_RW 0 x04 /PORTC 2 #define LCD_DATAPORT PORTB #define LCD_ENPORT PORTA #define LCD_RSPORT PORTA #define LCD_RWPORT PORTA 名师资料总结 - - -精

10、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - 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_

11、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=0 x30; /控制字规则: 5:8bit,4:16x2,3:5x7 LCD_ENPORT|=LCD_EN; delay_nus(1); LCD_ENPORT&=LCD_EN; delay_nus(40); lcd_write_cmd(0,0 x38); /8bit test lcd

12、_write_cmd(0,0 x0c); /显示开lcd_write_cmd(0,0 x01); /显示清屏lcd_write_cmd(0,0 x06); /显示光标移动设置 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - void lcd_write_cmd(unsigned cmd,unsigned data) if(cmd=0) LCD_RSPORT&=LCD_RS; else LCD_RSPORT|=LCD_RS; L

13、CD_DATAPORT&=0 x00; 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+0 x80; else addr=x+0 xc0; lcd_write_cmd(0,addr); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师

14、精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - 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;in;i+) dela

15、y_1us(); void delay_1ms(void) /1ms延时函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - unsigned int i; for (i=0;i1140;i+); void delay_nms(unsigned int n) /N ms延时函数 unsigned int i=0; for (i=0;in;i+) delay_1ms(); /call this routine to initial

16、ize all peripherals void main(void) lcd_init(); while(1) lcd_write_cmd(0,0 x01); /清屏delay_nms(2); lcd_write_string(0,0,happy new year); delay_nms(100); lcd_write_string(0,1,LCD successful!); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - delay_nms(100); /* 程序结束*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁