自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

采菊东篱下

宁静致远,从一而专

  • 博客(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

原创 golang学习笔记1:工程文件结构及编译问题

golang学习笔记:工程文件结构及编译问题

2022-01-23 12:53:23 489

原创 Lazarus研究--FGL 泛型标准库

Lazarus研究--FGL 泛型标准库

2022-01-18 14:30:44 850

原创 XEGE图形库CodeBlocks 20.03中的配置

讲述EGE图形库在Blocks 20.03中的配置

2022-01-11 12:16:25 1135

原创 easyX图形库在CodeBlocks 20.03中的配置

讲述easyX图形库在Blocks 20.03中的配置

2022-01-11 11:01:44 4146 1

原创 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

原创 lazarus研究-C指针和PASCAL指针

对比一下C语言的指针和PASCAL指针

2021-01-29 18:43:34 553

原创 学点 C++ 笔记 15 : 构造函数初始化列表

构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。如下:在此可以对const 成员或引用成员初始化

2021-01-27 12:38:37 82

原创 学点 c++ 笔记 14 :抽象类和纯虚函数

本次学习抽象类:含有纯虚函数的类,该类不能实例化,只能作为基类,子类必须重载所有纯虚函数

2021-01-26 22:54:11 132

原创 学点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++笔记12:类的定义

类的基础:创建、实例化、构造函数和析构函数、虚拟函数、对象数组、对象指针数组

2021-01-24 10:13:39 84

原创 学点C++笔记 11 :动态内存分配new 和 delete

内存管理 new 和 delete

2021-01-23 12:33:00 250

原创 学点C++笔记 10 :模板函数

本次学习模板函数

2021-01-22 21:43:55 125

原创 学点C++笔记 9 :运算符重载

象 + - * / << >> 等运算符,都可以重载,其实是一种特殊函数重载

2021-01-21 23:27:44 88

原创 学点C++笔记8:函数重载

函数重载:函数可以同名,只要它们的形参不一样(个数或数据类型不一样)编译器会根据实参和形参的匹配选择正确的一个

2021-01-21 22:11:44 70

原创 学点C++笔记7:函数的默认参数

函数形参可以带默认参数,一律靠右不能中间有,右边的没有

2021-01-21 21:58:51 100

原创 学点C++笔记4:引用

引用是是变量的别名,它不占用额外的内存空间引用象指针一样高效快速,不产生复制副本,使用又象变通变量一样自然

2021-01-21 13:17:06 102

原创 学点C++笔记 6 : 异常处理

程序要健壮,必须能处理各种出现的错误,这被称为异常处理c++ 用 try {可能出错的代码} catch(错误对象){ 错误处理代码 } 语法来处理错误

2021-01-20 22:22:39 80

原创 学点C++笔记5:内联函数

// 用inline 来说明一个函数是内联函数// 在调用内联函数的地方,编译器不会产生函数调用,因为那个地方已被代换为函数体代码。

2021-01-20 21:22:53 73

lazaurs写的自动升级系统

这是一套网络软件升级系统。2013年用DELPHI 7 写的,目的是用来熟悉 indy 控件的。现将它移到Lazarus ,迁移过程中还是发现两套工具有很多不兼容的,手工改了好几天。我在WINDOWS测试过,没有在linux中测试过,linux中要修改gs_updater_tools。

2023-02-20

LCD1602_OOP.zip

这是一个PASCAL语言面向对象方法实现LCD1602驱动,对应我博客上实例 12

2021-02-22

McuSerialTest.zip

这是一个用LAZARUS和Turbo51开发的单片机串口示例,含上位程序和下位机程序(Test9.pas) , 对应我博客上的实例9 和实例 10

2021-02-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除