电子09级定稿代码_第1页
电子09级定稿代码_第2页
电子09级定稿代码_第3页
电子09级定稿代码_第4页
电子09级定稿代码_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主程序#include config.h#include LCD1602_LPC2103.hDelayTime=10;/延时函数原型/延时参数void delay(u32 dly);/中断服务程序原型void irq IRQ_E void irq IRQ_E void irq IRQ_E/中断初始化函数0(void);1(void);2(void);void_Init(void);main (void)/配置引脚功能 PINSEL0=0 x50000000; PINSEL1=0 x00000001; IO0DIR=0 x7f6007ff;(0 x01);(0 x38);(0 x0c);(0 x

2、06);/设 P0.21-P0.22为输出/清零/设置为16位两行字符,8位数据总线/显示开关,关闭光标,没有闪烁/设置增量方式,显示移位方式speed=60000/(DelayTime*8); w_num(speed);w_char();delayms(5);_Init(); while(1)/中断初始化(外部中断)/模拟脉冲信号驱动步进电机转动 IO0SET=0 x0122;delay(DelayTime); IO0CLR=0 x010; dly-)for (i=0; i5000; i+);/*/外部中断0服务程序void irq IRQ_E0(void)IO0CLR=0 x0121; I

3、O0CLR=0 x7f24;IO0SET=0 x3f24;/设置的步进电机的运转方向为逆时针While(EXTEXT&0 x01)!=0)=0 x01;/清除中断标志VICVectAddr=0;/*/外部中断1服务程序void irq IRQ_E1(void)IO0SET=0 x0121; IO0CLR=0 x7f24;IO0SET=0 x0624;/设置的步进电机的运转方向为顺时针while(EXT&0 x02)!=0)EXT=0 x02;/清除中断标志VICVectAddr=0;/*/外部中断2服务程序void irq IRQ_E2(void)DelayTime+=10;/ 增加延时,即s

4、peed=60000/(DelayTime*8) ; w_num(speed);IO0CLR=0 x7f24;IO0SET=0 x5b24;while(EXT&0 x04)!=0)EXT=0 x04;/清除中断标志VICVectAddr=0;/*/中断初始化函数void_Init(void)IRQEnable();EXTMODE=0 x00; EXTPOLAR =0 x00;/设置外部中断为电平触发VICSelect=0 x00000000;/设置所有分配为 IRQ 中断tl0 = 0 x20 | 0 x0e;/* 分配外部中断0到向量中断0*/VICVectAddr0= (u32)IRQ_E

5、0;/* 设置中断服务程序地址*/tl1=0 x20|0 x0f;/* 分配外部中断1到向量中断1*/VICVectAddr1=(u32)IRQ_E1;/* 设置中断服务程序地址*/tl2 = 0 x20 | 0 x10;/* 分配外部中断2到向量中断1*/VICVectAddr2 = (uEXT= 0 x0f;32)IRQ_E2;/* 设置中断服务程序地址*/* 清 E0 E1 E2中断标志*/VICEnable = (1 14)|(1 15)|(1 0; dly-)for (i=0; i0)i-; IO0CLR=IO0CLR|en;/*向1602写数据*void lcd1602_write

6、_dat(ulcd1602_check_busy();8 lcd_dat)gpio_out(p00|p01|p02|p03|p04|p05|p06|p07);IO0SET=IO0SET|rs;IO0CLR=IO0CLR|rw;IO0CLRIO0SET|=0 x000000ff;(u|(u|(u|(u32)(lcd_dat&0 x80)0) 32)(lcd_dat&0 x40)0) 32)(lcd_dat&0 x20)0)32)(lcd_dat&0 x10)0)|(u|(u|(u|(u IO0SET=IO0SET|en;delayms(5);IO0CLR=IO0CLR|en;32)(lcd_da

7、t&0 x08)0) 32)(lcd_dat&0 x04)0) 32)(lcd_dat&0 x02)0)32)(lcd_dat&0 x01)0);/*向1602写 string 数据*void lcd1602_write_string(const uwhile(*cy)lcd1602_check_busy();8 *cy)gpio_out(p00|p01|p02|p03|p04|p05|p06|p07);lcd1602_write_dat(*cy);cy+;/*向1602写指令*void(u8)lcd1602_check_busy();gpio_out(p00|p01|p02|p03|p04|

8、p05|p06|p07);IO0CLR=IO0CLR|rs;IO0CLR=IO0CLR|rw;IO0CLRIO0SET|=0 x000000ff;(u|(u|(u|(u|(u|(u|(u|(u32)(32)(32)(32)(32)(32)(32)(32)(&0 x80)0) &0 x40)0) &0 x20)0) &0 x10)0) &0 x08)0) &0 x04)0) &0 x02)0)&0 x01)0);IO0SET=IO0SET|en;delayms(5); IO0CLR=IO0CLR|en;/*输出一个小于1000的数*/void w_num(u16 num)u16 num0;(0

9、x86);/是0则不显示if(num0=num/100)lcd1602_write_dat(num0+0 x30); num0=(num%100/10);lcd1602_write_dat(num0+0 x30);elselcd1602_write_dat( );if(num0=num%100/10) lcd1602_write_dat(num0+0 x30);elselcd1602_write_dat( );num0=num%10; lcd1602_write_dat(num0+0 x30);void w_char(void)(0 x80);lcd1602_write_dat(s); lcd1602_write_dat(p); lcd1602_write_dat(e); lcd1602_write_dat(e);lcd1602_wri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论