资源简介
开源免费软件,2009年更新至1.9版
LDMicro是一款AVR/PIC16单片机梯形图编译软件,用户可以在软件上绘制梯形图,实时仿真,将梯形图编译成可在AVR/PIC16单片机上运行的HEX文件,或编译成ANSI C代码,或编译成可解释的字节码。
压缩包内含有可直接运行的exe文件,以及开放源码和说明文档等。
目前支持的单片机如下:
* PIC16F877
* PIC16F628
* PIC16F876 (未测试)
* PIC16F88 (未测试)
* PIC16F819 (未测试)
* ATmega128
* ATmega64
* ATmega162 (未测试)
* ATmega32 (未测试)
* ATmega16 (未测试)
* ATmega8 (未测试)
代码片段和文件信息
/*
* A library for storing parameters in the registry.
*
* Jonathan Westhues 2002
*/
#include
#include
#include
/*
* store a window‘s position in the registry or fail silently if the registry calls don‘t work
*/
void FreezeWindowPosF(HWND hwnd char *subKey char *name)
{
RECT r;
GetWindowRect(hwnd &r);
HKEY software;
if(RegOpenKeyEx(HKEY_CURRENT_USER “Software“ 0 KEY_ALL_ACCESS &software) != ERROR_SUCCESS)
return;
char *keyName = (char *)malloc(strlen(name) + 30);
if(!keyName)
return;
HKEY sub;
if(RegCreateKeyEx(software subKey 0 ““ REG_OPTION_NON_VOLATILE KEY_ALL_ACCESS NULL &sub NULL) != ERROR_SUCCESS)
return;
sprintf(keyName “%s_left“ name);
if(RegSetValueEx(sub keyName 0 REG_DWORD (BYTE *)&(r.left) sizeof(DWORD)) != ERROR_SUCCESS)
return;
sprintf(keyName “%s_right“ name);
if(RegSetValueEx(sub keyName 0 REG_DWORD (BYTE *)&(r.right) sizeof(DWORD)) != ERROR_SUCCESS)
return;
sprintf(keyName “%s_top“ name);
if(RegSetValueEx(sub keyName 0 REG_DWORD (BYTE *)&(r.top) sizeof(DWORD)) != ERROR_SUCCESS)
return;
sprintf(keyName “%s_bottom“ name);
if(RegSetValueEx(sub keyName 0 REG_DWORD (BYTE *)&(r.bottom) sizeof(DWORD)) != ERROR_SUCCESS)
return;
sprintf(keyName “%s_maximized“ name);
DWORD v = IsZoomed(hwnd);
if(RegSetValueEx(sub keyName 0 REG_DWORD (BYTE *)&(v) sizeof(DWORD)) != ERROR_SUCCESS)
return;
free(keyName);
}
static void Clamp(LONG *v LONG min LONG max)
{
if(*v < min) *v = min;
if(*v > max) *v = max;
}
/*
* retrieve a window‘s position from the registry or do nothing if there is no info saved
*/
void ThawWindowPosF(HWND hwnd char *subKey char *name)
{
HKEY software;
if(RegOpenKeyEx(HKEY_CURRENT_USER “Software“ 0 KEY_ALL_ACCESS &software) != ERROR_SUCCESS)
return;
HKEY sub;
if(RegOpenKeyEx(software subKey 0 KEY_ALL_ACCESS &sub) != ERROR_SUCCESS)
return;
char *keyName = (char *)malloc(strlen(name) + 30);
if(!keyName)
return;
DWORD l;
RECT r;
sprintf(keyName “%s_left“ name);
l = sizeof(DWORD);
if(RegQueryValueEx(sub keyName NULL NULL (BYTE *)&(r.left) &l) != ERROR_SUCCESS)
return;
sprintf(keyName “%s_right“ name);
l = sizeof(DWORD);
if(RegQueryValueEx(sub keyName NULL NULL (BYTE *)&(r.right) &l) != ERROR_SUCCESS)
return;
sprintf(keyName “%s_top“ name);
l = sizeof(DWORD);
if(RegQueryValueEx(sub keyName NULL NULL (BYTE *)&(r.top) &l) != ERROR_SUCCESS)
return;
sprintf(keyName “%s_bottom“ name);
l = sizeof(DWORD);
if(RegQueryValueEx(sub keyName NULL NULL (BYTE *)&(r.bottom) &l) != ERROR_SUCCESS)
return;
sprintf(keyNam
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14227 2009-06-15 21:32 ldmicro\ansic.cpp
文件 49174 2009-06-15 21:32 ldmicro\avr.cpp
文件 4859 2009-06-15 21:32 ldmicro\CHANGES.txt
文件 33149 2009-06-15 21:32 ldmicro\circuit.cpp
文件 7645 2009-06-15 21:32 ldmicro\coildialog.cpp
文件 3330 2009-06-15 21:32 ldmicro\commentdialog.cpp
文件 13361 2009-06-15 21:32 ldmicro\compilecommon.cpp
文件 9184 2009-06-15 21:32 ldmicro\confdialog.cpp
文件 6326 2009-06-15 21:32 ldmicro\contactsdialog.cpp
文件 35823 2009-06-15 21:32 ldmicro\COPYING.txt
文件 36143 2009-06-15 21:32 ldmicro\draw.cpp
文件 20611 2009-06-15 21:32 ldmicro\draw_outputdev.cpp
文件 9763 2009-06-15 21:32 ldmicro\helpdialog.cpp
文件 43644 2009-06-15 21:32 ldmicro\intcode.cpp
文件 3246 2009-06-15 21:32 ldmicro\intcode.h
文件 6261 2009-06-15 21:32 ldmicro\INTERNALS.txt
文件 8041 2009-06-15 21:32 ldmicro\interpreted.cpp
文件 30447 2009-06-15 21:32 ldmicro\iolist.cpp
文件 2213 2009-06-15 21:32 ldmicro\lang.cpp
文件 21447 2009-06-15 21:32 ldmicro\lang-de.txt
文件 21398 2009-06-15 21:32 ldmicro\lang-es.txt
文件 21207 2009-06-15 21:32 ldmicro\lang-fr.txt
文件 21252 2009-06-15 21:32 ldmicro\lang-it.txt
文件 1242 2009-06-15 21:32 ldmicro\lang-make.pl
文件 21360 2009-06-15 21:32 ldmicro\lang-pt.txt
文件 983 2009-06-15 21:32 ldmicro\lang-tables.pl
文件 20428 2009-06-15 21:32 ldmicro\lang-tr.txt
文件 13462 2009-06-15 21:32 ldmicro\ldinterpret.c
文件 37101 2009-06-15 21:32 ldmicro\ldmicro.cpp
文件 716 2009-06-15 21:32 ldmicro\ldmicro.exe.manifest
文件 24256 2009-06-15 21:32 ldmicro\ldmicro.h
............此处省略51个文件信息
相关资源
- 电镀生产线设计整套图纸PLC
- 一步一步学PLC编程 施耐德 SOMACHINE
- 三菱FXPLC控制16个灯,轮流一秒闪烁
- TwinCAT用户指令手册
- codesys2.3 PLC基础例程包括详细步骤
- 中位值平均滤波-PLC程序
- 信捷毕业设计题,飞剪滚切,PLC,运
- 自动化生产线PLC程序
- 运用三菱PLC步进指令实现交通信号灯
- 三菱、西门子、欧姆龙、松下PLC、单
- AB PLC 学习教程--识别Logix5000系统的
- 基于PLC的全自动洗衣机控制系统设计
- 基于PLC的发电机励磁系统模糊控制器
- 基于PLC和变频器的恒压供水控制系统
- PLC 在模糊控制中的应用.pdf
- PLC发电机励磁控制程序.rar
- 贝加莱 plc OPC SERVER ON AR配置步骤
- omron PLC驱动伺服
- 松下plc通讯协议
- PLC梯形图 6个 交通灯,电梯控制等
- LABVIEW与PLC通信(OMRON)
- 西门子S7-200PLC+变频一拖三恒压供水全
- 病床呼叫系统
- 台达PLC解密软件
- LGPLC解密软件
- S7-200PLC三层楼电梯控制程序
- 欧姆龙PLC解密软件(超级全能版)
- 如何仿真两个CPU之间的通信西门子S
- 用西门子PLC让步进电机转起来的简单
- 三菱PLC温度PID控制
评论
共有 条评论