- 博客(52)
- 资源 (2)
- 收藏
- 关注
原创 用Lazarus开发自动升级系统
这是一套网络软件升级系统。2013年用DELPHI 7 写的,目的是用来熟悉 indy 控件的。十年后我将它移到Lazarus ,迁移过程中还是发现两套工具有很多不兼容的,手工改了好几天。我在WINDOWS测试过,没有在linux中测试过,linux中要修改gs_updater_tools。delphi7是ANSI 的,lazarus是UTF8,之前在delph7建的两个ini文件也是ANSI编码的,所以程序中有几处用了CP936TOUTF函数转码。其实,如果这两个ini文件是UTF8编码,就不用转了。
2023-02-20 10:41:09
484
原创 CodeBlocks 20.03 开发基于wxWidgets 3.1.5 的应用
详细讲解CodeBlocks 20.03 编译wxWidgets 3.1.5 源码,并讲解如何在CB中配置wxWidgets
2022-01-11 01:42:51
1120
原创 CodeBlocks 20.03 开发基于FLTK 1.4.X 的应用
CodeBlocks 20.03 构建基于FLTK 1.4.X图形用户界面程序的配置经过
2022-01-10 12:08:38
478
原创 Lazarus研究--应用程序中使用资源文件
/*昨天,我想把一个图片和一个exe文件编译进自己的程序中,需要时才提取出来,我想到了使用资源文件。在LAZARUS中使用资源文件简单,在程序中 {$R myrc.rc}或 {$R myres.res } 引入资源文件,LAZARUS 会自动编译进可执行文件中。rc 是文本文件,可用lazarus 编写res 是二进制文件,可用winres等工具创建Lazarus RTL提供了许多方法使用资源文件:EnumResourceTypes 枚举资源类型EnumResourceNames 枚举资源名
2022-01-06 11:26:20
773
原创 让git bash 客户端显示中文不乱码
今天第一次使用 git ,发现仓库目录内的文件如果是中文名称,在git bash 都显示乱码,网上查找到解决方案,记录如下:git config --global core.quotepath false # 显示 status 编码git config --global gui.encoding utf-8 # 图形界面编码git config --global i18n.commit.encoding utf-8 # 提交信息编码git confi
2022-01-02 16:22:33
616
原创 51单片机-PASCAL语言实例 13:非面向对象驱动LCD1602
实例12中,我用OOP编写了 LCD1602 驱动,测试时发现不能正确显示,研究很久也没有解决,另外发现OOP代码比非OOP代码长了400多字节,在单片机中有点多了,还是用回非OOP吧。电路图同上例,代码如下:// TestLCD1602NotOOP{ // 51单片机 pascal 语言 示例 // LCD1602 写字符 // 使用 Turbo51 编译器}Program TestLCD1602NotOOP;uses LCD1602NotOOP; .
2021-02-23 11:10:58
278
原创 51单片机-PASCAL语言实例 12:面向对象驱动LCD1602
Turbo51 编译器支持Turbo pascal 7 面向对象语法,虽然不完善,但还是可以一用。下面代码实现了一个LCD1602类,不是很完美。主要端口指定无法集成在类中,目前只能将端口定义LCD1602PortDef.inc, 在类文件 LCD1602.PAS 中用 {KaTeX parse error: Expected 'EOF', got '}' at position 22: …602PortDef.inc }̲ ,实现一定的灵活性。另外,T…M $0000, $1000, $0000, $.
2021-02-22 21:44:05
422
原创 51单片机-串口工作方式总结
一、英文名称:1、UART:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)2、Fosc:晶振频率3、Baud:波特率,指串行口每秒钟发送(或接收)的位数二、相关寄存器和端口:1、SBUF串口数据收发寄存器:接收、发送共用一个名字,实际上是物理上独立的。2、RXD(P3.0): 接收信号线3、TXD(P3.1): 发送信号线4、SCON: 串行口控制寄存器5、PCON:电源控制寄存器三、SM0和SM1 串口工作方.
2021-02-21 20:19:51
3542
原创 51单片机-PASCAL语言实例11:关于延时的问题
在单片机开发中,延时是时常出现,初学时总不知所以,现总结一下:首先要了解以下概念(假设开发板上晶振频率为 12MHZ,CPU STC89C52 ):1个时钟周期=振荡周期=(1/12MHZ) s1个机器周期=12x时钟周期=1 us ( 注:有些CPU不是12倍的)指令周期NOP : 1 个机器周期 (空指令)DJNZ : 2 个机器周期 (循环等)LCAL : 4 个机器周期(过程调用)MOV : 1 个机器周期(赋值语句)
2021-02-20 23:09:59
281
1
原创 51单片机-PASCAL语言实例10:用Lazarus开发串口应用程序
实例9中,我是通过STC-ISP软件中串口助手调试单片机程序的,不太直观,能否在PC上用PASCAL写一个程序通过串口与单片机沟通呢。完全可以,可以用免费的开发环境LAZARUS开发,安装 lazSerial 后,进行快速开发。
2021-02-19 13:38:24
1591
6
原创 51单片机-PASCAL语言实例9:串口编程之多字节收发
本程序使用 Turbo51( https://turbo51.com/ ) 单片机 PASCAL 编译器 演示了单片机串口 按自定协议收发串口数据
2021-02-18 23:42:48
1039
1
原创 51单片机-PASCAL语言实例8:串口编程之发送数据
// Test8.pas Program NewProgram;// 本程序使用 Trubo51( https://turbo51.com/ ) 单片机 PASCAL 编译器// // // 实例 7 演示了单片机接收串口数据,本实例演示如何通过串口发送数据// CPU 电路图请看 实例 1 // // uses Delay,MyDefine; // 串口中断,中断号serial在 system 中定义procedure OnSerial; interr
2021-02-18 12:55:10
403
1
原创 51单片机-PASCAL语言实例7:串口编程之接收数据
// 本程序使用 Trubo51( https://turbo51.com/ ) 单片机 PASCAL 编译器// 本程序演示 如何串口编程 ,根据从电脑发来的数字点亮LED
2021-02-17 14:24:26
319
原创 51单片机-PASCAL语言实例:认识重要单元SYSTEM.PAS
// system.pas 单元开发时不用引用,这是编译器核心包含的// 该单元定义了8051单片机所有资源// 熟悉该单元是对使用TRUBO51 开发程序的基础
2021-02-17 13:31:50
427
原创 51单片机-PASCAL语言实例 6:使用定时器0
// Test6.pas Program NewProgram;// 本程序使用 Trubo51( https://turbo51.com/ ) 单片机 PASCAL 编译器// // // 本程序演示 如何对定时器 1 编程 ,每次中断后逐一连续点亮LED灯// CPU 电路图、LED灯、蜂鸣器电路图请看前面实例// 8051 单片机有两个定时器/计数器: T0 与 T1// uses Delay,MyDefine; // 定义定时器0中断程序 ,中断号
2021-02-16 20:56:06
314
原创 51单片机-PASCAL语言实例 5:外部中断 1
Program NewProgram;// 本程序使用 Turbo51( https://turbo51.com/ ) 单片机 PASCAL 编译器// // // 本程序测试外部中断 1 // CPU 电路图请看 实例 1 // 8051 单片机外部中断有两个: EX0 和 EX1 , 对应 IO为 P3.2 和 P3.3// KEY1 接在 P3.3上,本实验将以低电平触发 外部中断 1uses Delay; const BEEP_ON=FALSE;
2021-02-16 18:54:45
521
原创 51单片机-PASCAL语言开发环境搭建
要用PASCAL语言开发8051单片机,可以下载推荐的集成开发环境 MC-51 或 Turbo51 studio , 这些 IDE 已集成编译器,无须独立下载。但我不太喜欢这些集成环境,主要是代码编辑器颜色太单调了,我是用pspad 的。搭建步骤如下:1. 下载编译器。访问 [http://turbo51.com,](http://turbo51.com) 下载解压后放到自己喜欢的目录下。 该编译器是纯命令行的。2. 下载pspad 安装。3. 运行PSPAD ,点菜单【设置】-【语法
2021-02-16 13:15:44
606
1
原创 51单片机--用PASCAL语言实例4:独立按键检测
Program NewProgram;// 本程序使用 Trubo51( https://turbo51.com/ ) 单片机 PASCAL 编译器// // 开发环境使用 MC-51 集成开发环境// 本程序对独立按键 KEY1 , KEY2 , KEY3 , KEY4 进行检测并开关对应的LED// uses Delay;var // 定义LED 和 KEY 对应的 I/O KEY1:boolean absolute P3.3 ; KEY2:boole
2021-02-16 12:37:39
305
1
原创 51单片机--PASCAL语言实例3:驱动蜂鸣器
// 本程序控制蜂鸣器发声,CPU 电路图 见实例1// 蜂鸣器电路图见代码后// 主程序 Test3.pasProgram NewProgram;uses Delay; // 引用延迟函数单元var FM:Boolean absolute P0.7 ; const BEEP_ON=FALSE; // 低电平开蜂鸣 BEEP_OFF=TRUE; // 高电平关蜂鸣 begin FM:=BEEP_OFF;
2021-02-16 06:09:56
306
原创 51单片机--PASCAL语言实例2:逐一轮流点亮LED
// 此程序 电路图 同接 实例1// 留意 二进制常数、十六进常数的表示方法// 留意 SHL(在移位) 、按位取反NOT、按位与AND// 主程序单元 Test2.pasProgram NewProgram;uses Delay;var Led:byte absolute P1 ; i:byte; begin while True do begin Led:=%11111111 ; //初始化全灭,也可以用16进制表示
2021-02-16 05:11:46
475
3
原创 51单片机--PASCAL语言实例 1:亮灭一只LED
/*单片机程序开发,一直以来的都是用C语言开发,对于广大的PASCAL爱好者来说,是一种遗憾。好在外国有大神开发了TURBO51编译器,详情大家可以在百度一下。Turbo51编译的HEX文件高效短小,比SDCC小4至5倍,虽不开源,但可免费使用,作为业余应用开发,足够了。*///下面的程序用来闪烁一支LED灯//延时单元 delay.pasunit Delay;interfaceprocedure Delayms(ms:integer);implementationprocedu
2021-02-15 23:24:39
370
1
原创 51单片机-SDCC 与KEIL C区别
在国内,学习51单片机,很多人采用盗版 keil c, 其实开源的SDCC+code blocks也不错的。SDCC语法与keil C有一点点不同,记录如下: * 1 sbit * // keil c :sbit LED1=P1^3 ;// SDCC#define LED1 P1_3 * 2 中断 *keil c 的中断void SerialComm(void ) interrupt 4 ;{}sdcc 的中断void SerialComm(void) __interrupt.
2021-02-14 12:18:26
3944
4
原创 sfml库在code:blocks中的安装
游戏开发库sfml很火,我想在windows7 x64上的code:blocks中应用,记录一下整个配置过程。1.下载源码,官网上不了,只能从github下载源码:点击下载sfml源码下载后解压,我的放在f:\gdl\dev\c\SFML-master2.源码是要编译的,首先要下载工具 cmake: 点击下载cmake3.cmake安装后运行,如下图红1处指定SFML源码目录,该目录你应该...
2021-02-03 13:52:41
1895
2
原创 学点 C++ 笔记 15 : 构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。如下:在此可以对const 成员或引用成员初始化
2021-01-27 12:38:37
82
原创 学点c++ 笔记 13 : 类的继承、多态、多文件编译
本次练习包含 文件 main.cp、iphone.cpp 、phone.h#include "iphone.h"/* 本次练习类的继承、虚方法重载、调用基类方法、有参构造函数的参数传递 多文件编译*/int main(int argc, char *argv[]) { //对子类iphone 实例测试 iphone iph5("i5", 5); iph5.selftest(); iphone iph5_2(iph5); iph5_2.selftest() ; // 多态测试 p
2021-01-25 19:55:12
351
原创 学点C++笔记 6 : 异常处理
程序要健壮,必须能处理各种出现的错误,这被称为异常处理c++ 用 try {可能出错的代码} catch(错误对象){ 错误处理代码 } 语法来处理错误
2021-01-20 22:22:39
80
原创 学点C++笔记5:内联函数
// 用inline 来说明一个函数是内联函数// 在调用内联函数的地方,编译器不会产生函数调用,因为那个地方已被代换为函数体代码。
2021-01-20 21:22:53
73
lazaurs写的自动升级系统
2023-02-20
McuSerialTest.zip
2021-02-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人