外部中断模拟串口,波特率不能超过65536 实验测试:发送57600可以正常,但接收只能 <= 38400 #include "Uart_EXT0.h" #include "MAIN.h" #define FOCS 22114800ul bit Over; bit bRxflag; unsigned char IEN0_NOW,IEN1_NOW; //中断临时变量 unsigned char idata bRxstate=0; //接收状态 unsigned char idata tmp_Len=0; //缓存数组下标 unsigned char idata bRxlen; //接收字节数 unsigned char xdata EX_buf[64]; //接收存放区 /*************************************************** baud = 56000 接收一字节 =178.6us ,接收会出现错误 baud = 38400 接收一字节 =260.4us //快速接收都容易出现错误 baud = 19200 接收一字节 =520us | baud = 14400 接收一字节 =694.5us | baud = 9600 接收一字节 =1041.6us | baud = 4800 接收一字节 =2.083ms 接收过长,定时器MODE2无法满足 //主机发送的数据最好加上校验字 发送:最大57600,发送还能正常。 ****************************************************/ void Time0_Uart(unsigned int baud) { TMOD &= 0XF0; TMOD |= 0X02; //使用定时器0方式2,使用方式1则2400波特也能有 TH0 = 256-(FOCS/12)/baud; TL0 = TH0; IP0 |= 0x02; //设置为最高优先级 IP1 |= 0x02; TR0 = 1; ET0 = 1; EA = 1; } void Time0_isr() interrupt 1 { //方式1则重装值 Over = 1; } /* 发送数据,1起始位,8数据,1停止位 发送波特率实验57600都不会错误,大量发送数据待测试 */ void Uart_set(unsigned char dat) { unsigned char i; Over = 0; TL0 = TH0; //防止发送数据开始时不知道TL0是多少 T_uart = 0; //起始位 while(Over==0); Over = 0; for(i=0;i<8;i++) //8数据位 {// Over = 0; //起始位时清零了 if(dat&0x01) //先发最低位 { T_uart = 1; } else { T_uart = 0; } while(Over==0); Over = 0; dat >>= 1; } // Over = 0; //数据位清零了 T_uart = 1; //停止位,此后如果没有数据则一直为高 while(Over==0); } unsigned char get_Uart() { unsigned char I=0,get_dat=0; Over = 0; TL0 = TH0; //重新赋值,防止出错 while(Over==0); Over = 0; for(I=0;I<8;I++) { get_dat >>= 1; if(Get_ex == 1) get_dat |= 0x80; else get_dat &= 0x7f; while(Over==0); Over = 0; } if(Get_ex == 1) { Over = 0; } return get_dat; } void EXuart_isr() interrupt 0 { unsigned char _chr; IEN0_NOW = IEN0; //进入接收1字节,关闭中断 IEN1_NOW = IEN1; IEN0 = 0X82; IEN1 = 0; _chr=get_Uart(); switch(bRxstate) { case 0: if(_chr==0x55) { bRxstate=1; } else bRxstate=0; break; case 1: if(_chr==0xaa) { bRxstate=2; } else bRxstate=0; break; case 2: //取得数据长度 bRxlen=_chr; bRxstate=3; break; case 3: EX_buf[tmp_Len]=_chr; tmp_Len++; if(tmp_Len==bRxlen) { bRxstate=0; tmp_Len=0; bRxflag=1; //一帧数据接收完毕,置位完成标志位 } break; default: break; } IE0 = 0; //清外部0中断标志,防止下次接收不到 IEN0 = IEN0_NOW; IEN1 = IEN1_NOW; } void main() { Time0_Uart(9600); EX_uart(); if(bRxflag==1) { bRxflag = 0; for(i=0;i<10;i++) RevBuffer[i] = EX_buf[i]; T0Uart_TX(10,RevBuffer); } }
2022-06-21 15:14:28 61KB 模拟串口 51
1
与大家一起分享,基于51单片机的电子琴仿真。
2022-06-21 14:56:55 40KB 电子琴
1
2022年五一赛B题一等奖论文,西南交通大学作品; 本文针对矿山加工质量控制问题进行研究,采用多元线性回归、BP 神经网络 预测、人工神经网络评价模型,旨在对矿石温度、指标、产品合格率做出预测。 针对问题四,在神经系统输出层中通过合格率给系统设定温度导出温度数据。 采用 Sobol 法进行敏感度分析,得出指标 B 的敏感性最大,A 和 C 次之,指标 D 的敏感性最小。利用 Matlab 计算系统设定温度的预测值与实际值的误差,发现误 差值较小,准确性较高,经计算得出合格率为 80%,满足要求,此时系统Ⅰ温度为 1329.27,系统Ⅱ温度为 884.00。
2022年五一赛B矿石加工质量控制一等奖--江苏师范大学做作品,仅供参考学习,博主版权所有。 本文针对影响矿产加工因素问题进行研究,采用多元线性回归等模型,旨在为矿产 加工提出最优方案。 针对问题一,采用回归分析分别对质量指标 A、B、C、D 与系统温度、原矿参数的 六个因素建立多元线性回归模型
2022年五一赛A血管机器人订购一等奖-南京理工大学(matlab代码全),博主版权所有,严谨二次上传,仅供参考和学习。 本文针对血管机器人的订购与生物学习问题进行研究,运用了整数规划模 型、时间序列 ARIMA 模型,旨在解决血管机器人的订购与生物学习问题,对我国医 疗行业具有重大意义。 针对问题一,本文建立了整数规划模型。通过找出六个约束条件和目标(即最 小运营成本),列出目标函数,
2022年五一赛A血管机器人订购二等奖--中国矿业大学(lingo代码全),博主版权所有,仅供参考学习。 本文主要研究血管机器人的订购问题,建立了动态规划模型和时间序列模 型,运用了 Lingo 算法,对得到订购物品的最优规划具有指导意义。 针对问题一,建立动态规划模型,以医院的总花费最小作为目标函数,将总花 费分为购买器材的费用、保养器材的费用和新器材参与训练的费用三个方面进行计 算。以满足医院需求作为约束条件,即可用于工作的器材必须满足当周的需求,建 立模型为:
2022年五一赛C火灾报警系统问题一等奖-武汉理工(数据代码在附录),博主版权所有,请勿二次上传。 本文针对火灾报警系统进行研究,建立熵权 TOPSIS 模型、Fisher 判别分析模 型、模糊综合评价模型,对火灾报警器的选择及管理维护具有指导性意义。 针对问题一,本文运用熵权法,建立 TOPSIS 模型。根据机号、回路等条件筛选出 存在误报情况的样本,结合地址以及误报次数得到 6 月 1 日至 18 日真实火灾起数。采 用误报警率、MTBF(平均故障间隔时间)作为可靠性、故障率的衡量标准,并对其客 观赋权。通过计算各部件与最优、最劣的距离,对部件打分,并将得分归一化。
基于51的温度报警系统课程设计,包含源程序和仿真图片,论文详细介绍了调试过程。
2022-06-21 12:45:23 530KB 课程设计
1
使用的51单片机作为主控芯片,两个51单片机通过24L01通信,一个检测吊瓶滴液的速度,如果太快太慢或者不滴液都会报警,并发送到主机,输液者也可以主动通过按键呼叫主机,丛机用1602显示,主机用12864显示。 硬件部分由2部分组成:报警显示板+检测板 51单片机无线点滴报警系统实物展示: 原理图、PCB、程序、及其他资料都有,开题报告模板也有,这是我帮别人做成功的项目,完全可以使用。 整个附件内容截图:
2022-06-21 11:09:52 33.56MB 单片机 51单片机 电路方案
1
微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报名预约 51报名管家小程序 (源代码+截图)微信小程序 报
2022-06-21 11:05:26 197KB 微信小程序报名预约51报名管