欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    红外发射程序键值在LCD1602上显示实例程序.doc

    • 资源ID:67753735       资源大小:38KB        全文页数:24页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    红外发射程序键值在LCD1602上显示实例程序.doc

    LCD1602显示键值程序: #include <reg51.h>#include <intrins.h> #define uchar unsigned char#define uint unsigned int#define delayNOP(); _nop_();_nop_();_nop_();_nop_(); void delay(uchar x); /x*0.14MSvoid delay1(int ms);void beep(); sbit IRIN = P33; /紅外接收器數據線sbit BEEP = P15; /蜂鳴器驅動線sbit RELAY= P14; /繼電器驅動線 uchar IRCOM7; sbit LCD_RS = P23; sbit LCD_RW = P24;sbit LCD_EN = P25; uchar code cdis1 = " Red Control "uchar code cdis2 = " IR-CODE: -H " /*/* */*檢查LCD忙狀態 */*lcd_busy爲1時,忙,等待。lcd-busy爲0時,閑,可寫指令與數據。 */* */*/ bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x01); LCD_EN = 0; return(result); /*/* */*寫指令數據到LCD */*RS=L,RW=L,E=高脈衝,D0-D7=指令碼。 */* */*/ void lcd_wcmd(uchar cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); cmd = (cmd&0x01)<<7)|(cmd&0x02)<<5)|(cmd&0x04)<<3)|(cmd&0x08)<<1)|(cmd&0x10)>>1)|(cmd&0x20)>>3)|(cmd&0x40)>>5)|(cmd&0x80)>>7); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*/* */*寫顯示數據到LCD */*RS=H,RW=L,E=高脈衝,D0-D7=數據。 */* */*/ void lcd_wdat(uchar dat) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0;dat = (dat&0x01)<<7)|(dat&0x02)<<5)|(dat&0x04)<<3)|(dat&0x08)<<1)|(dat&0x10)>>1)|(dat&0x20)>>3)|(dat&0x40)>>5)|(dat&0x80)>>7); P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*/* */* LCD初始化設定 */* */*/ void lcd_init() delay1(15); lcd_wcmd(0x38); /16*2顯示,5*7點陣,8位數據 delay1(5); lcd_wcmd(0x38); delay1(5); lcd_wcmd(0x38); delay1(5); lcd_wcmd(0x0c); /顯示開,關光標 delay1(5); lcd_wcmd(0x06); /移動光標 delay1(5); lcd_wcmd(0x01); /清除LCD的顯示內容 delay1(5); /*/* */* 設定顯示位置 */* */*/ void lcd_pos(uchar pos) lcd_wcmd(pos | 0x80); /數據指針=80+地址變量 /*/main() uchar m; IRIN=1; /I/O口初始化 BEEP=1; RELAY=1; delay1(10); /延時 lcd_init(); /初始化LCD lcd_pos(0); /設置顯示位置爲第一行的第1個字符 m = 0; while(cdis1m != '0') /顯示字符 lcd_wdat(cdis1m); m+; lcd_pos(0x40); /設置顯示位置爲第二行第1個字符 m = 0; while(cdis2m != '0') lcd_wdat(cdis2m); /顯示字符 m+; / IE = 0x81; /允許總中斷中斷,使能 INT0 外部中斷/ TCON = 0x01; /觸發方式爲脈衝負邊沿觸發IT1=1;EX1=1;EA=1; while(1) ; /end main/*/void IR_IN() interrupt 2 using 0 unsigned char j,k,N=0; EX1 = 0; delay(15);if (IRIN=1) EX1 =1; return; /確認IR信號出現 while (!IRIN) /等IR變爲高電平,跳過9ms的前導低電平信號。 delay(1); for (j=0;j<4;j+) /收集四組數據 for (k=0;k<8;k+) /每組數據有8位 while (IRIN) /等 IR 變爲低電平,跳過4.5ms的前導高電平信號。 delay(1); while (!IRIN) /等 IR 變爲高電平 delay(1); while (IRIN) /計算IR高電平時長 delay(1); N+; if (N>=30) EX1=1;return; /0.14ms計數過長自動離開。 /高電平計數完畢 IRCOMj=IRCOMj >> 1; /數據最高位補“0” if (N>=8) IRCOMj = IRCOMj | 0x80; /數據最高位補“1” N=0; /end for k /end for j if (IRCOM2!=IRCOM3) EX1=1; return; IRCOM5=IRCOM2 & 0x0F; /取鍵碼的低四位 IRCOM6=IRCOM2 >> 4; /右移4次,高四位變爲低四位 if(IRCOM5>9) IRCOM5=IRCOM5+0x37; else IRCOM5=IRCOM5+0x30; if(IRCOM6>9) IRCOM6=IRCOM6+0x37; else IRCOM6=IRCOM6+0x30; lcd_pos(0x4b); lcd_wdat(IRCOM6); /第一位數顯示 lcd_pos(0x4c); lcd_wdat(IRCOM5); /第二位數顯示 beep(); EX1 = 1; /*/void beep() unsigned char i; for (i=0;i<100;i+) delay(4); BEEP=!BEEP; /BEEP取反 BEEP=1; /關閉蜂鳴器/*/void delay(unsigned char x) /x*0.14MS unsigned char i; while(x-) for (i = 0; i<13; i+) /*/void delay1(int ms) unsigned char y; while(ms-) for(y = 0; y<250; y+) _nop_(); _nop_(); _nop_(); _nop_(); 将遥控器发过来的代码解释后用lcd1602显示:#include<reg52.h>#include<intrins.h>#define uchar unsigned char #define uint unsigned int sbit rs=P35;sbit rw=P25;sbit e=P34;sbit ir=P32;Init_t0();Init_ex0();Init_lcd();Wr_lcd_cmd(uchar cmd);Wr_lcd_dat(uchar dat);Delay(uint time);Ircode();Ir_work();code uchar Display="xiewanchen kaifa"code uchar hex="0123456789ABCDEF"uchar table1="Code "uchar irdata33;uchar rdata4;uchar irtime,irok,irdisp_ok;main() uchar i; Init_t0(); Init_ex0(); Init_lcd(); Wr_lcd_cmd(0x80); for(i=0;i<16;i+) Wr_lcd_dat(Displayi); Wr_lcd_cmd(0xc0); for(i=0;i<16;i+) Wr_lcd_dat(table1i); while(1) if(irok) irok=0; Ircode(); if(irdisp_ok) irdisp_ok=0; Ir_work(); P1=rdata3; Init_t0() TMOD|=0X02; TMOD&=0XFe; TL0=0X00; TH0=0X00; EA=1; ET0=1; TR0=1;Init_ex0() IT0=1; EA=1; EX0=1;Wr_lcd_cmd(uchar cmd) Delay(400); rs=0; rw=0; e=1; P0=cmd; _nop_(); _nop_(); e=0; Wr_lcd_dat(uchar dat) Delay(400); rs=1; rw=0; e=1; P0=dat; _nop_(); _nop_(); e=0;Delay(uint time) uint t; t=time/2; while(t-);Init_lcd() Wr_lcd_cmd(0x38); Delay(200); Wr_lcd_cmd(0x38); Delay(200); Wr_lcd_cmd(0x38); Delay(200); Wr_lcd_cmd(0x0c); Wr_lcd_cmd(0x06); Wr_lcd_cmd(0x02); Wr_lcd_cmd(0x01);Inter_t0() interrupt 2 irtime+;Inter_ex0() interrupt 0 static uchar i; static uchar irflag=0; if(irflag) if(irtime<63&&irtime>33) i=0; irdatai=irtime; irtime=0; i+; if(i=33) i=0; irflag=0; irok=1; else irflag=1; irtime=0; Ircode() uchar i,j,k=1,dat=0; for(i=0;i<4;i+) for(j=0;j<8;j+) if(irdatak>7) dat=dat|0x80; if(j<7) dat=dat>>1; k+; rdatai=dat; irdisp_ok=1; Ir_work() uchar i; table15=hexrdata0/16; table16=hexrdata0%16; table18=hexrdata1/16; table19=hexrdata1%16; table111=hexrdata2/16; table112=hexrdata2%16; table114=hexrdata3/16; table115=hexrdata3%16; Wr_lcd_cmd(0xc5); for(i=5;i<16;i+) Wr_lcd_dat(table1i); 步进电机控制程序:#include "reg51.h"void DELAY();main()while(1)P1=0x08;/ADELAY();P1=0x0C;/ABDELAY();P1=0x04;/BDELAY();P1=0x06;/BCDELAY();P1=0x02;/CDELAY();P1=0x03;/CD DELAY();P1=0x01;/DDELAY();P1=0x09;/DADELAY();void DELAY() int i,j;for(i=0;i<240;i+)for(j=0;j<200;j+);

    注意事项

    本文(红外发射程序键值在LCD1602上显示实例程序.doc)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开