完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想让单片机通过串行口给手机返回记录的led灯亮的总次数,但是我写的程序返回值不对,求大佬帮帮忙,
#include #include typedef unsigned char u8; typedef unsigned int u16; u8 tmp; u8 tmp5; u8 tmp6; u8 tmp7; u8 tmp8; u16 c=0; ***it led1=P1^0; ***it led2=P1^1; ***it led7=P1^3; ***it wei1=P2^4; ***it wei2=P2^5; ***it wei3=P2^6; ***it wei4=P2^7; u8 code TEXT1[]="************************************************************"; u8 code TEXT2[]="**** 'Welcome to use this product' ****"; u8 code TEXT3[]="**** 'Instructions of use' ****"; u8 code TEXT4[]="**** If you want open the red lamp,please enter '1'. ****"; u8 code TEXT5[]="**** If you want close the red lamp,please enter '1'. ****"; u8 code TEXT6[]="**** If you want open the green lamp,please enter '2'. ****"; u8 code TEXT7[]="**** If you want close the green lamp,please enter '2'. ****"; u8 code TEXT8[]="**** .<-_->. ****"; u8 code TEXT9[]="red"; u8 code TEXT10[]="green"; u8 code sugduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~9的值 u16 i; u16 sugshu; u8 sugshu1; u8 sugshu2; u8 sugqwei; u8 sugbwei; u8 sugswei; u8 suggwei; u8 sugswei1; u8 suggwei1; u8 sugswei2; u8 suggwei2; void delay100us(void) //延时100us { unsigned char a,b; for(b=1;b>0;b--) for(a=47;a>0;a--); } void sugwei() { sugqwei=sugduan[(sugshu/1000)%10]; sugbwei=sugduan[(sugshu/100)%10]; sugswei=sugduan[(sugshu/10)%10]; suggwei=sugduan[(sugshu/1)%10]; } void sugwei1() { sugswei1=sugduan[(sugshu1/10)%10]; suggwei1=sugduan[(sugshu1/1)%10]; sugswei2=sugduan[(sugshu2/10)%10]; suggwei2=sugduan[(sugshu2/1)%10]; } void DigDisplay() { u8 i; for(i=0;i<4;i++) { switch(i) //位选,选择点亮的数码管, { case(0): P0=sugqwei; wei4=1; wei1=0; break;//显示第0位 case(1): P0=sugbwei; wei1=1; wei2=0; break;//显示第1位 case(2): P0=sugswei; wei2=1; wei3=0; break;//显示第2位 case(3): P0=suggwei; wei3=1; wei4=0; break;//显示第3位 default:break; } delay100us(); //间隔一段时间扫描 100 P0=0x00;//消隐 } } void DigDisplay1() { u8 i; for(i=0;i<4;i++) { switch(i) //位选,选择点亮的数码管, { case(0): P0=sugswei1; wei4=1; wei1=0; break;//显示第0位 case(1): P0=suggwei1; wei1=1; wei2=0; break;//显示第1位 case(2): P0=sugswei2; wei2=1; wei3=0; break;//显示第2位 case(3): P0=suggwei2; wei3=1; wei4=0; break;//显示第3位 default:break; } delay100us(); //间隔一段时间扫描 100 P0=0x00;//消隐 } } void send(u8 a) //单字节数据发送 { TI=0; SBUF=a; while(TI==0); TI=0; if(c%2) //发送指示灯标志,每接收一次,此灯亮灭交替 led7=1; else led7=0; c++; } void sendstr(u8 *s) { while(*s!='') { send(*s); s++; } } void init() //串口初始化 { ES=0; //关中断 SCON = 0x50; // REN=1允许串行接受状态,串口工作模式1, //10位UART(1位起始位,8位数据位,1位停止位,无奇偶校验),波特率可变 TMOD = 0x20; // 定时器1工作于方式2,8位自动重载模式, 用于产生波特率 TH1=TL1=0xFD; // 波特率9600 (本次测试采用晶振为11.0592) PCON &= 0x7f; // 波特率不倍增 TR1 = 1; //定时器1开始工作,产生波特率 //发送标志位置0 TI=0; //接收标志位置0 RI=0; EA=1; ES=1; } void ctrl() interrupt 4 //接收处理函数 { if(RI==1) // 是否有数据到来 { RI = 0; tmp=SBUF; tmp5=sugswei1; tmp6=suggwei1; tmp7=sugswei2; tmp8=suggwei2; ES=0; switch(tmp) { case '1': led1=~led1; //led灯1状态取反 if(led1==1) { sugshu++; sugshu1++; } send(tmp); sendstr(TEXT9); send(tmp5); send(tmp6); //记录led灯亮的次数 break; case '2': //收到字符2,指示灯1亮 led2=~led2; if(led2==1) { sugshu++; sugshu2++; } send(tmp); sendstr(TEXT10); send(tmp7); send(tmp8); break; default: //其他,灯全灭 led1=0; led2=0; sendstr(TEXT1); sendstr(TEXT2); sendstr(TEXT3); sendstr(TEXT4); sendstr(TEXT5); sendstr(TEXT6); sendstr(TEXT7); sendstr(TEXT8); break; } ES=1; } } void main() { init(); led2=0; led1=0; sugshu=0; sugshu1=0; sugshu2=0; while(1) { sugwei(); sugwei1(); for(i=2000;i>0;i--) { DigDisplay(); } for(i=2000;i>0;i--) { DigDisplay1(); } } } |
|
相关推荐
1个回答
|
|
有偿找我 1 0 0 2 9 2 5 0 9 4
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
727 浏览 0 评论
815 浏览 0 评论
850 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
823 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1274 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11816 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 00:36 , Processed in 0.684969 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号