第一范文网 - 专业文章范例文档资料分享平台

基于红外遥控步进电机的设计

来源:用户分享 时间:2025/5/17 7:18:55 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

}

/*------------------------------------------------ 写入字符函数

------------------------------------------------*/

/* void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) {

if (y == 0) {

LCD_Write_Com(0x80 + x); } else {

LCD_Write_Com(0xC0 + x); }

LCD_Write_Data( Data); }*/

/*------------------------------------------------ 初始化函数

------------------------------------------------*/ void LCD_Init(void) {

LCD_Write_Com(0x38); /*显示模式设置*/ DelayMs(5);

LCD_Write_Com(0x38); DelayMs(5);

LCD_Write_Com(0x38); DelayMs(5);

LCD_Write_Com(0x38);

LCD_Write_Com(0x08); /*显示关闭*/ LCD_Write_Com(0x01); /*显示清屏*/

LCD_Write_Com(0x06); /*显示光标移动设置*/ DelayMs(5);

LCD_Write_Com(0x0C); /*显示开及光标设置*/ }

/*void speed1(void) {

if(Speed<14) Speed++;

TempData[0]=zf[f];

TempData[1]=Tab[Speed/10];

TempData[2]=Tab[Speed]; }

void speed2(void) {

if(Speed>1) Speed--;

TempData[0]=zf[f]; TempData[1]=Tab[Speed/10]; TempData[2]=Tab[Speed]; }*/

/*------------------------------------------------ 主函数

------------------------------------------------*/ main() {

unsigned int i=512;//旋转一周时间

EX0init(); //初始化外部中断 TIM0init(); Init_Timer1();

LCD_Init(); //初始化液晶

DelayMs(20); //延时有助于稳定 LCD_Clear(); //清屏

LCD_Write_String(0,0,\ LCD_Write_String(0,1,\ Coil_OFF;

while(1)//主循环 {

if(irok) //如果接收好了进行红外处理 {

Ircordpro(); irok=0; }

if(irpro_ok) //如果处理好后进行工作处理,如按对应的按键后显示对应的数字等 {

Ir_work(); }

} }

/*------------------------------------------------ 定时器0初始化

------------------------------------------------*/ void TIM0init(void)//定时器0初始化 {

TMOD=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值 TH0=0x00; //重载值

TL0=0x00; //初始化值 256微秒 ET0=1; //开中断 TR0=1; }

/*------------------------------------------------ 定时器初始化子程序

------------------------------------------------*/ void Init_Timer1(void) {

TMOD |= 0x01; //使用模式1,16位定时器,使用\符号可以在使用多个定时器时不受影响 //TH1=0x00; //给定初值 //TL1=0x00;

EA=1; //总中断打开

ET1=1; //定时器中断打开 TR1=1; //定时器开关打开 }

/*------------------------------------------------ 外部中断0初始化

------------------------------------------------*/ void EX0init(void) {

IT0 = 1; //指定外部中断0下降沿触发,INT0 (P3.2) EX0 = 1; //使能外部中断 EA = 1; //开总中断 }

/*------------------------------------------------ 定时器0中断处理

------------------------------------------------*/

void tim0_isr (void) interrupt 1 {

irtime++; //用于计数2个下降沿之间的时间 }

/*------------------------------------------------ 定时器中断子程序

------------------------------------------------*/ void Timer1_isr(void) interrupt 3 {

static unsigned char times,i;

TH1=(65536-500)/256; //重新赋值 1ms TL1=(65536-500)%6;

if(StartFlag)

{if(zfFlag==0) {

if(times==(20-Speed)) {

times=0; switch(i) {

case 0:Coil_A1;i++;break; case 1:Coil_B1;i++;break; case 2:Coil_C1;i++;break; case 3:Coil_D1;i++;break; case 4:i=0;break; default:break; } }

times++; }

else {

if(times==(20-Speed)) {

times=0; switch(i) {

case 0:Coil_D1;i++;break; case 1:Coil_C1;i++;break; case 2:Coil_B1;i++;break; case 3:Coil_A1;i++;break;

搜索更多关于: 基于红外遥控步进电机的设计 的文档
基于红外遥控步进电机的设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3nazj5hp0r10e609m87w9sc9l3ppnv01a06_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top