资源简介
开源免费软件,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个文件信息
相关资源
- 恒压力供水(DBW-DQ-1.s7p)
- 松下FP-XH手册位置功能篇
- 松下plc FP-XH的驱动
- DELPHI与西门子200PLC的串口通信实例
- PLC上位机编程软件
- PLC简易程序大合集
- Siemens PLC编程精品例程11.机械手GRAPH
- 张力控制变频收卷程序
- codesys编程手册中文版
- 基于三菱PLC-松下A6伺服485通讯-读编码
- OMRON NJ系列PLC程序.smc2
- 博图plc三层电梯
- 台达PLC与485温控仪通讯
- AB PLC 通讯协议
- PLC通讯与接口
- 欧姆龙PLC与上位机通讯共享库
- plc-西门子S7-226流水灯plc编程(流水灯
- PLCS7-1200PID参数自整定
- PLCS7-1200PID闭环控制
- plc通讯测试.doc
- 200PLC与电表自由口通讯程序.mwp
- S7-200PLC编程手册
- PLC结构和原理.ppt
- plc模拟量输入输出转换
- S7-1200PLC-自来水供水系统-五泵-备用泵
- 基于PLC和组态软件的变频器监控系统
- 基于S7-300 PLC和WinCC带式输送机系统设
- 西门子PLC S7 300 S7 400 STL编程手册 中文
-
Hollow fibre ba
sed Liquid-liquid-liquid mic - 三菱PLC的专用通讯协议的485通讯
评论
共有 条评论