完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用uart可以显示在串口助手上
/* * 红外接收数据,查询方式,液晶显示 * * 晶振:11.0592M */ #include //#include typedef unsigned char uint8; ***it Ir_Pin = P3^3; ***it RS = P1^0 ; ***it RW = P1^1 ; ***it EN = P1^5 ; ***it BUSY = P0^7; uint8 Ir_Buf[4]; //用于保存解码结果 /** * 等待繁忙标志 */ void wait(void) { P0 = 0xFF; do { RS = 0; RW = 1; EN = 0; EN = 1; }while (BUSY == 1); EN = 0; } /** * 写数据 */ void w_dat(uint8 dat) { wait(); EN = 0; P0 = dat; RS = 1; RW = 0; EN = 1; EN = 0; } /** * 写命令 */ void w_cmd(uint8 cmd) { wait(); EN = 0; P0 = cmd; RS = 0; RW = 0; EN = 1; EN = 0; } /** * 初始化1602 */ void Init_LCD1602(void) { w_cmd(0x38); // 16*2显示,5*7点阵,8位数据接口 w_cmd(0x0C); // 显示器开、光标开、光标允许闪烁 w_cmd(0x06); // 文字不动,光标自动右移 w_cmd(0x01); // 清屏 } /* * 获取低电平时间 */ unsigned int Ir_Get_Low() { TL0 = 0; TH0 = 0; TR0 = 1; while (!Ir_Pin && (TH0&0x80)==0); TR0 = 0; return (TH0 * 256 + TL0); } /* * 获取高电平时间 */ unsigned int Ir_Get_High() { TL0 = 0; TH0 = 0; TR0 = 1; while (Ir_Pin && (TH0&0x80)==0); TR0 = 0; return (TH0 * 256 + TL0); } main() { unsigned int temp; char i,j; Init_LCD1602(); while (1) { start: while (Ir_Pin); temp = Ir_Get_Low(); if ((temp < 7833) || (temp > 8755)) //引导脉冲低电平8500~9500us goto start; temp = Ir_Get_High(); if ((temp < 3686) || (temp > 4608)) //引导脉冲高电平4000~5000us goto start; for (i=0; i<4; i++) //4个字节 { for (j=0; j<8; j++) //每个字节8位 { temp = Ir_Get_Low(); if ((temp < 184) || (temp > 737)) //200~800us goto start; temp = Ir_Get_High(); if ((temp < 184) || (temp > 1843)) //200~2000us goto start; Ir_Buf[i] >>= 1; if (temp > 1032) //1120us Ir_Buf[i] |= 0x80; } } w_cmd(0xc0); w_dat(Ir_Buf[0]/100%10+'0'); w_dat(Ir_Buf[0]/10%10+'0'); w_dat(Ir_Buf[0]%10+'0'); w_dat('32'); w_dat(Ir_Buf[1]/100%10+'0'); w_dat(Ir_Buf[1]/10%10+'0'); w_dat(Ir_Buf[1]%10+'0'); w_dat('32'); w_dat(Ir_Buf[2]/100%10+'0'); w_dat(Ir_Buf[2]/10%10+'0'); w_dat(Ir_Buf[2]%10+'0'); w_dat('32'); w_dat(Ir_Buf[3]/100%10+'0'); w_dat(Ir_Buf[3]/10%10+'0'); w_dat(Ir_Buf[3]%10+'0'); // w_dat('32'); // w_cmd(0xc0); } } |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 03:47 , Processed in 0.642049 second(s), Total 53, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号