单片机源程序如下:
#include #define uint unsigned int #define uchar unsigned char sbit lcd0=P1^0; sbit lcd1=P1^1; sbit lcd2=P1^2; sbit lcd3=P1^3; sbit lcd4=P1^4; sbit lcd5=P1^5; sbit lcd6=P1^6; sbit lcd7=P1^7; sbit key_config_Ap=P2^1; sbit key_config_Air=P2^3; uchar usartbuf[50]={0}; uchar sn,checksum,usrtlen,usarrtflag,num_usart; uchar send_3_config,send_7_error,send_8_dev,send_9_dev; /*wifi模组请求设备信息,mcu回复*/ uchar mcu_send_1[75]={ 0xff,0xff,0x00,0x47,0x02,0x55,0x00,0x00, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31, 0x34,0x39,0x33,0x35,0x33,0x31,0x33,0x36, 0x30,0x66,0x38,0x66,0x34,0x32,0x37,0x64, 0x38,0x64,0x33,0x34,0x35,0x39,0x36,0x62, 0x33,0x37,0x33,0x62,0x38,0x61,0x39,0x30, 0x00,0x00,0x55}; /*wifi模组与设备mcu心跳,mcu回复*/ uchar mcu_send_2[9]={0xff,0xff,0x00,0x05,0x08,0x55,0x00,0x00,0x55}; /*设备mcu通知wifi模组进入配置模式,mcu发送*/ uchar mcu_send_3[10]={0xff,0xff,0x00,0x06,0x09,0x55,0x00,0x00,0x11,0x55}; /*设备mcu重置wifi,mcu发送*/ uchar mcu_send_4[9]={0xff,0xff,0x00,0x05,0x0b,0x55,0x00,0x00,0x55}; /*wifi模组向设备通知工作状态变化,mcu回复*/ uchar mcu_send_5[9]={0xff,0xff,0x00,0x05,0x0e,0x55,0x00,0x00,0x55}; /*wifi模组请求重启mcu,mcu回复*/ uchar mcu_send_6[9]={0xff,0xff,0x00,0x05,0x10,0x55,0x00,0x00,0x55}; /*非法消息通知,mcu回复*/ uchar mcu_send_7[10]={0xff,0xff,0x00,0x06,0x12,0x55,0x00,0x00,0x11,0x55}; /*wifi模组读取设备当前状态,mcu回复*/ uchar mcu_send_8[11]={0xff,0xff,0x00,0x07,0x04,0x55,0x00,0x00,0x03,0x11,0x55}; /*设备向wifi主动上报当前状态,mcu发送*/ uchar mcu_send_9[11]={0xff,0xff,0x00,0x07,0x05,0x55,0x00,0x00,0x04,0x11,0x55}; /*wifi模组控制设备,mcu回复*/ uchar mcu_send_10[9]={0xff,0xff,0x00,0x05,0x04,0x55,0x00,0x00,0x55}; /*mcu通知wifi进入可绑定模式,mcu发送*/ uchar mcu_send_12[9]={0xff,0xff,0x00,0x05,0x15,0x55,0x00,0x00,0x55}; /**********************************************************************/ /**********************************************************************/ /**********************************************************************/ /**********************************************************************/ /**********************************************************************/ /**********************************************************************/ /**********************************************************************/ /**********************************************************************/ /*延时函数*/ void Delay_ms(unsigned char z) { unsigned char x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /*初始化函数*/ void Usart_Init() { TMOD=0x21; //定时器0工作方式1,定时器1工作方式2 TH0=(65536-10000)/256; TL0=(65536-10000)%256; TH1=0xfd; TL1=0xfd; TR0=1; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; } /*mcu发送数据程序*/ void Usart_SendArrang(uchar *dat,uchar len) { unsigned char i; for(i=0;i ES=0; SBUF=dat[i]; while(!TI); TI=0; ES=1; } } /*定时器0中断*/ void Timer0_Int() interrupt 1 { TH0=(65536-10000)/256; TL0=(65536-10000)%256; num_usart++; } /*串口中断函数*/ void Usart_Int() interrupt 4 { num_usart=0; ET0=1; usartbuf[usrtlen++]=SBUF; if(usrtlen==2) { if(usartbuf[0]!=0xff||usartbuf[1]!=0xff) { usrtlen=0; } } RI=0; } /*改变设备状态*/ void Control_Mcu() { switch(usartbuf[9]) { case 0x01: if(usartbuf[10]==0x01) { lcd0=0; } else if(usartbuf[10]==0) { lcd0=1; } break; case 0x02: if(usartbuf[10]==0x02) { lcd1=0; } else if(usartbuf[10]==0) { lcd1=1; } break; case 0x04: if(usartbuf[10]==0x04) { lcd2=0; } else if(usartbuf[10]==0) { lcd2=1; } break; case 0x08: if(usartbuf[10]==0x08) { lcd3=0; } else if(usartbuf[10]==0) { lcd3=1; } break; case 0x10: if(usartbuf[10]==0x10) { lcd4=0; } else if(usartbuf[10]==0) { lcd4=1; } break;
上一篇:出租车计费仿真原理图+单片机源程序
下一篇:单片机DS18B20温度检测LCD1602显示程序+电路PCB设计
推荐阅读
史海拾趣
Eltek公司是一家专注于电力电子技术的公司,成立于20世纪中期。创始人王刚(化名)意识到电力电子技术对于提高能源利用效率的重要性,于是决定投身这一领域。在他的带领下,Eltek公司不断研发出高效、可靠的电力电子产品,如变频器、逆变器等。随着可再生能源技术的兴起,Eltek公司抓住机遇,将电力电子技术应用于可再生能源领域,如太阳能、风能等。这一创新举措让Eltek公司在可再生能源领域取得了显著的成绩。
随着全球环保意识的增强,ABC Electronics Inc. 敏锐地捕捉到了绿色电子产品的市场潜力。公司开始研发和生产符合环保标准的产品,如低能耗的LED照明产品、可循环利用的电池等。同时,公司还优化了生产工艺,减少了生产过程中的环境污染。这些环保举措不仅赢得了消费者的青睐,也提升了公司的社会形象。
在产品多元化的基础上,义隆电子开始积极拓展国际市场。公司以台湾新竹科学园区为营运总部,在亚洲、美洲等多个国家和地区设立了分支机构和设计中心。通过与全球合作伙伴的紧密合作,义隆电子的产品逐渐进入欧洲、亚洲和美洲等市场,实现了全球布局。
随着电子行业的不断变革,Able Systems公司也面临着新的挑战。例如,新技术的出现、市场需求的变化等都对公司的发展提出了新的要求。然而,Able Systems始终保持着敏锐的市场洞察力,不断调整战略,积极应对挑战。通过不断创新和改进,公司成功克服了各种困难,保持了稳健的发展态势。
CSM深知在半导体领域,合作是实现共赢的关键。因此,公司积极与TSMC、UMC、SMIC等国内外领先的半导体芯片厂商建立合作关系,共同推进流片生产和技术研发。这种合作模式不仅提高了CSM的生产效率和产品质量,也促进了整个半导体产业链的发展。
IGBT负载短路下的几种后果 (1) 超过热极限:半导体的本征温度极限为250℃,当结温超过本征温度,器件将丧失阻断能力,IGBT负载短路时,由于短路电流时结温升高,一旦超过其热极限时,门级保护也相应失效. (2) 电流擎住效应:正常工作电流下,IGBT由于薄 ...… 查看全部问答∨ |
|
急!!!如何在PC机上实现对单片机的控制(用VC++6.0编程) 小弟正在想弄一个在PC机上实现对单片机的控制,但不知道从哪个方面入手? 希望各位达人给予小弟一些指点.发个程序给小弟参考参考(用C语言编写的)… 查看全部问答∨ |
LM3S使用Keil关于代码和变量定位,我知道的,大概有2种方法: 其一:在Options for Target \'Target 1\'的Linker选项中,选择Scatter File test.sct,然后点击右边的Edit按钮,在打开的test.sct文件,编辑指定程序的加载域和运行域.其二:使用关键字__attri ...… 查看全部问答∨ |
经历了很多推销的宣传,今天买了10片样品,准备把以前ATMEL8的东西都移植过来. 有几个问题,一直没搞明白: 1. STM8S103K3会不会象ATMEL那样,1000元就能把代码都读出来?STM8S103K3的 解密难度有多大? 2. 以前一直用ICC和KEIL开 ...… 查看全部问答∨ |
2812程序烧到片内flash中运行,能否用CCS和仿真器观察内部变量 2812程序烧到片内flash中运行,能否用CCS和仿真器观察内部变量, 调试电机程序,使用仿真器容易跑飞,希望能烧到flash中运行,同时也希望能像在ccs里仿真一样观察几个关键变量,听有的工程师说是能实现的,希望有能得到指点?… 查看全部问答∨ |
这是个试验程序,就是把整页写入同一个数据,,另外ID什么都可以读出来,,个人感觉数据是可以读出来的,,但读出来的全是FF,2112个FF后是64个0x15,我把读命令改错的话,读出来的是那个输入的数据,说明内部没把数据读出来,这是不是说明FF读出来 ...… 查看全部问答∨ |
我用的是mc9s12dp512芯片,系统是5v的,系统供电正常4.6v。现在接上下载器根本就不认我的板子,我量了一下reset脚的输出,发现是3.5v,我用的是33064的复位芯片,不知道是这个复位电压太低不能让系统不能工作么?有啥办法?谢谢谢谢!… 查看全部问答∨ |