PLC程序设计9大要求 一套完整的PLC程序,并不仅仅是使系统能够运行起来这么简单,它也需要完整的注释、精良的架构、良好的可扩展性、完备的报警保护系统、运行前的模拟系统。 最好的评价标准是实践。看程序能否达到预期的目的。但这还不够。因为能达到目的的程序还有好与不好之分。到底什么样的... 2023-06-13 PLC程序设计要求文章软件开发
FB PSPS的实质解析 INTERRUPTDECL 10 WHEN $CYCFLAG[254]==FALSE DO VW(#FB_STOP,TRUE)INTERRUPTON 10-只要M254没有那么立即执行VW(#FB_STOP,TRUE)开行条件程序-只能满足条件M245/M255,或者发出模拟信号才能推出VW(#FB_STOP,TRUE)程序----------------------------------... 2023-06-13 FBPSPS实质文章软件开发程序设计
STM32l053与DS1302的接口电路 (1)硬件 CLK PA4DAT PA5 RST PA6(2)硬件初始化 CLK与RST均为输出,而DAT是开漏型的输出。因为在这种方式下,IO口的读仍然存在,因此是真正的双向IO模式。/*DSCK -PA4 DAT PA5 RST DAT*/#define ds1302Clk GPIO_Pin_4 //与时钟线相连的芯片的管脚#define ds1302Dat GPIO_Pin_5 //与... 2023-06-13 STM32l053DS1302接口电路文章软件开发程序设计
流水灯的开发步骤 开发环境:MDK5.14 和STM32CubeMX4.11。 就像Hello World一样,流水灯也算是学习开发板时第一个接触的。STM32F469开发板上也有4个LED,就从LED开始,一点一点的学习使用STM32l053。 通过 STM32CubeMX4.11配置与LED相关的GPIO,生成MDK工程。打开 STM32CubeMX4.11软件,新建工程,选... 2023-06-13 STM32l053GPIOwhile文章软件开发程序设计
根据电路图来设计PLC梯形图 PLC运用与继电器电路图极为类似的梯形图语言。假如用PLC改造继电器操控系统,依据继电器电路图来规划梯形图是一种非常便捷的方法。这是由于原有的继电器操控体系通过长时刻的运用和考验,已经被证明能完成系统要求的操控功用,而继电器电路图又与梯形图有很多类似之处,因而能够... 2023-06-13 PLC梯形图继电器中心单元文章软件开发程序设计
按键扫描程序分享 新型的按键扫描程序 不过我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强大的可移植性。 同时,这里面用到了一些分层... 2023-06-13 按键扫描触发文章软件开发程序设计
底层读键的两种简单思路的空间时间开销简单测试 一个需要关心的问题是 位是否足够表达足够多的键 任何一个系统,32位变量不在话下,即使8位机如51,long 或者 long long也可以是32位,甚至64位。 当然有些系统可能会有更多的按键,甚至多达百来个以上,这里先不考虑这种情形,何况在FreeUI里其实我只需要16个,大多数情况,二三十个就绰... 2023-06-13 空间KEYFreeUI文章软件开发程序设计
tq2440 按键驱动 中断方式 硬件平台:TQ2440 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define DEVICE_NAME "key-device" MODULE_DESCRIPTION("... 2023-06-13 TQ2440按键驱动中断方式数据采集文章软件开发程序设计
【MicroPython】使用DS1820单总线温度传感器 在MicroPython的源码中,带有了单总线的驱动,可以很方便的驱动单总线器件,如读取温度传感器DS1820。 首先在MicroPython的源码目录中,进入drivers\onewire\目录,然后将目录下的文件ds18x20.py和onewire.py复制到PYBFLASH磁盘的根目录。复制文件后要安全退出磁盘,然后重新接入,... 2023-06-13 DS1820单总线温度传感器文章软件开发程序设计
新型的按键扫描程序 核心算法: unsigned char Trg; unsigned char Cont; void KeyRead( void ) { unsigned char ReadData = PINB^0xff; // 1 异或 不一样取1 相同取0 Trg = ReadData & (ReadData ^ Cont); // 2 Cont = ReadData;... 2023-06-13 按键扫描放大器仪器文章软件开发程序设计
关于assert_param的疑惑 最近调试程序,发现ST的固件库中到处都是assert_param(),不清楚其编译结果,感觉这个“校参”过程很影响效率 在stm32f10x_conf.h中找到其源代码: /* Exported macro ------------------------------------------------------------*/ #ifdef DEBUG /*******... 2023-06-13 源代码libraryfunctiononly文章软件开发程序设计
看门狗的使用与原理 一、看门狗原理 在产品化的嵌入式系统中,为了使系统在异常情况下能自动复位,一般都需要引入看门狗。 看门狗其实就是一个可以在一定时间内被复位的计数器。当看门狗启动后,计数器开始自动计数,经过一定时间,如果没有被复位,计数器溢出就会对CPU产生一个复位信号使系统重启(俗... 2023-06-13 看门狗BootloaderLinux文章软件开发程序设计
关于数码管动态扫描程序设计 #include#define uchar unsigned char#define uint unsigned int #define duan P0#define wei P1//----------------------------------------------------------------------------uchar code weima[8] =... 2023-06-13 数码管动态扫描文章软件开发程序设计
基于nRF24L01的无线温湿度程序 nRF24L01程序:#ifndef__NRF24L01_H__#define__NRF24L01_H__#include#defineucharunsignedchar#defineuintunsignedint//NRF24L01寄存器操作命令#defineREAD_REG0x00//读配置寄存器,低5位为寄存器地址#defineWRITE_REG0x20//写配... 2023-06-13 nRF24L01无线温湿度循环文章软件开发程序设计
使用1602液晶显示的c代码 连接线图:-------------------------------------------------|LCM-----51 | LCM-----51 | LCM------51 | |-------------- -|------------------|-----------------| |DB0-----P1.0 | DB4-----P1.4 | RW----- P2.0 | |DB... 2023-06-13 1602液晶显示C文章软件开发程序设计
DS18B20温度读取函数 /***********************************\* DS18B20温度读取函数** 晶振12M** 返回double,精确到小数点后4位 ** 只需调用read_temperature函数即可 *\***********************************/sbit DQ =P2^7; //定义连接DS18B20的数据口//延时函数void delay(uns... 2023-06-13 DS18B20温度读取文章软件开发程序设计
单片机四位数码管时钟程序 #include#ifndef NULL#define NULL ((void *) 0)#endifsbit speaker=P3^7;struct display{char a[2];struct display *next;}time,fm,date,alarm,*p;bit d=0,flag=0,nao=0,flag_2=1;unsigned int k=0,tiao=0... 2023-06-13 单片机数码管时钟文章软件开发程序设计
四位加减计数器(C语言写) /*四位数码管的加减计数器程序,陈永飞同志于2007-11-10写,采用AT89C2051单片机,4位共阳数码管显示*/#include#define leddata P1 //数码管的段码输出#define uchar unsigned char#define uint unsigned intuint shu;sbit jia=P3^0; //加一按键sbit... 2023-06-13 四位加减计数器C文章软件开发程序设计
结果送数码管的高低3位显示 //实验目的:熟悉A/D转换//软件思路:选择RA0做为模拟输入通道;// 结果只取低8位// 连续转换5次再求平均值做为转换结果// 结果送数码管的高低3位显示//硬件要求:跳线J18接通// 拨码开关S6全部置ON,S5第4-6位置ON,第1-3位置OFF// 为不影响结果,其他拨码开关置... 2023-06-13 数码管高低位寄存器文章软件开发程序设计
PMW波调速程序设计 51单片机PWM调速程序/*******************************************************************/ /* 程序名:PWM直流电机调速 */ /* 晶振:11.00592 MHz CPU型号:AT89C51 */ /* 直流电机的PWM波控制,可以直接的调速从0到20级的调速 */ /************************... 2023-06-13 PMW波调速51单片机文章软件开发程序设计
如何避免脆弱的代码 遗留代码最常见的问题就是脆弱性。团队如要修改脆弱的代码库,必定伴随着巨大的痛楚。在我们 ThoughtWorks 开发产品的 10 年里,当我们年复一年地尽量保持庞大代码库的延展性时,学到了一些惨痛的教训。我想在本文分享我们从最大挑战中吸取的教训。声明:我写下这些思考,不代表我... 2023-06-13 代码脆弱单元测试文章软件开发程序设计
一个简单的端口扫描程序题 一、TCP扫描技术 常用的端口扫描技术有很多种,如 TCP connect() 扫描 、TCP SYN 扫描、TCP FIN 扫描 等,网络上也有很多文章专门介绍,比如 :http://www.antai-genecon.com/suml/zhishiyy/jingong/duankougj.htm上就介绍了很多我的程序 所使用的最基本的扫描技术:TCP 扫描。 操... 2023-06-13 TFC全局变量StartScan线程文章软件开发程序设计
低级bug耗费12小时Fix 调试某程序非常简单的程序,简单到认为不可能存在缺陷,但该BUG处理时间超过12小时:程序属于后台进程,监控系统每隔15秒检查外设IO状态,IO异常后发出报警或复位外设,外设都在linux下有/sys/class等文件节点。程序有规律性4-5小时后崩溃程序崩溃原因也非常简单:某文件反复打开未释... 2023-06-13 低级bugfixgdb文章软件开发程序设计
STM32F103C8 19 5点阵 int main(void) { u8 a,j,i=0; /* config the led */ LED_GPIO_Config(); /*config key*/ Key_GPIO_Config(); while(1) { if( Key_Scan(GPIOA,GPIO_Pin_11,1) == KEY_ON)... 2023-06-13 STM32F103C8点阵LED文章软件开发程序设计
嵌入式系统驱动程序设计技巧 1 - 使用设计模式设计模式是一个用来处理那些在软件中会重复出现的问题的解决方案。 开发人员可以选择浪费宝贵的时间和预算从无到有地重新发明一个解决方案,也可以从他的解决方案工具箱中选择一个最适合解决这个问题的方案。在微处理器出现 之初,底层驱动已经很成熟了,那么... 2023-06-13 嵌入式系统驱动程序设计文章软件开发嵌入式OS