自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 Android Studio 安装-配置-优化

Android Studio是Google官方开发和推荐的安卓开发的主流工具,也是每个安卓程序员必备的神器。其安装简单,界面优美,使用方便,内置众多人性化功能和工具,每个人都可以根据自己需要进行定制,打造属于自己的开发利器。本文包含安装-配置-优化,让你的开发之路更加顺手。

2023-08-09 15:36:24 6998

原创 7-1 定时器

STC89C52单片机内置三个定时器(T0、T1、T2),其中T0/T1兼容传统51,T2为增强功能。定时器用于精确计时、替代延时函数,提升CPU效率。工作模式中,模式1(16位定时器)最常用。定时器通过系统时钟或外部信号计数,达到设定值后触发中断,实现定时任务。中断系统支持多级优先级与嵌套,具备8个中断源和4级优先级。寄存器作为软硬件接口,控制定时器配置与运行。

2026-11-04 15:49:06 148

原创 6-2 矩阵键盘密码锁(SDCC + Notepad++ + STC-ISP/普中ISP)

本文实现基于8051的密码输入系统,通过权重数组动态构建4位密码,按键按序显示输入过程(如2000→2300→2330→2333),利用key % 10巧妙映射0键。支持清除(15)与确认(16)功能,比对预设密码2333后显示OK/ERR,完成后自动重置,界面清晰直观。

2026-11-04 15:36:40 118

原创 6-1矩阵键盘(SDCC + Notepad++ + STC-ISP/普中ISP)

矩阵按键通过行列扫描方式减少I/O占用,4×4矩阵可实现16个按键输入。本文介绍逐列扫描原理及实现:拉低一列,读取行值,结合预设扫描码与按键值表判断按键位置。代码采用消抖与松开检测,确保按键识别准确。通过LCD显示测试结果,验证了矩阵键盘的稳定性和实用性。

2026-11-03 15:10:18 206

原创 5-2 LCD1602调试工具(SDCC + Notepad++ + STC-ISP/普中ISP)

本文介绍了基于51单片机的LCD1602液晶显示模块的硬件连接与软件驱动实现。通过P2口控制RS、RW、EN引脚,P0口传输数据,实现了初始化、字符/字符串显示、数字(十进制、十六进制、二进制)显示等功能。代码包含完整的函数库,支持指定位置显示,适用于嵌入式系统中信息可视化展示。

2026-10-26 16:33:19 16

原创 5-1 模块化编程(SDCC + Notepad++ + STC-ISP/普中ISP)

将51_Delay.c模块化,分离延时函数至独立文件,通过头文件51_Delay.h声明接口。使用SDCC编译器分别编译主程序与延时模块为.rel目标文件,最后链接生成可执行文件。该方式实现代码复用与维护性提升,符合嵌入式开发模块化设计规范。

2026-10-26 14:40:47 82

原创 4-2 动态数码管显示(SDCC + Notepad++ + STC-ISP/普中ISP)

本文实现8位共阴极数码管动态显示,通过74HC138译码器选择指定数码管,结合段码表逐位点亮。利用延时函数控制显示时间(约3ms),确保人眼感知连续显示。关键在于“消影”操作(清零P0口),避免相邻数码管串码导致的误显示。代码中通过循环调用Nixie()函数依次显示数字2、4、8,实现动态刷新效果。

2026-10-23 15:30:16 85

原创 4-1 静态数码管显示(SDCC + Notepad++ + STC-ISP/普中ISP)

8段数码管由8个LED组成“8”字型,通过动态扫描实现多位数字显示。利用人眼视觉残留,快速切换各数码管显示内容,可同时呈现多个数字。开发板采用2个4位8段数码管,配合138译码器(P22-P24控制选通,P00-P07控制段码),实现对8个数码管的分时驱动,提升显示效率与清晰度。

2026-10-15 12:01:54 150

原创 3-3 独立按键控制LED移位(SDCC + Notepad++ + STC-ISP/普中ISP)

本文实现8051单片机控制LED左移、右移功能。通过按键K1(P3.1)触发左移,K2(P3.0)触发右移,使用变量LEDNum记录当前亮灯位置(0~7),通过取反操作~(0x01 << LEDNum)动态控制P2口输出,实现循环移位。代码包含消抖处理,确保按键响应稳定。相比直接移位寄存器方式,该方法避免了读取引脚电平导致的错误,逻辑清晰且易于扩展。

2026-10-14 18:13:00 55

原创 3-3 独立按键控制LED显示二进制(SDCC + Notepad++ + STC-ISP/普中ISP)

按键每按下一次,LEDNum 加 1 并取反后输出至 P2 口,因 LED 为低电平点亮,取反后对应位为 0 的 LED 亮起,实现二进制数 0~255 的动态显示。

2026-10-14 16:44:33 206

原创 3-1 独立按键控制LED状态(SDCC + Notepad++ + STC-ISP/普中ISP)

上节实现了按下按键LED亮,松开按键LED 灭,这节需要实现的是第一次按下按键LED会亮,第二次按下按键LED会灭,如此循环。像要实现这个功能,可以先读取灯的值,当按键按下后,如果是高电平就设置为低电平,如果是低电平就设置为高电平,即进行取反。

2026-10-14 16:10:50 215

原创 3-1 独立按键控制LED亮灭(SDCC + Notepad++ + STC-ISP/普中ISP)

本文介绍使用SDCC编译器在8051单片机上单独控制P2.0引脚点亮LED的方法。通过包含mcs51/8051.h头文件,可直接使用P2_0 = 0;操作实现位级控制,避免影响其他引脚。对比P2 = 0xFE;的全口操作,该方法更适用于单一LED控制。同时,结合按键检测(如P3.1)实现按键控制LED亮灭,松开即灭,适用于简单人机交互场景。

2026-10-14 13:54:33 255

原创 51 单片机LED流水灯(SDCC + Notepad++ + STC-ISP/普中ISP)

上节已经测试了led闪烁,这节写led流水灯效果,若想达到效果,可以依次让P2.0到P2.7这八个灯亮,每个间隔500ms。可以将P2.0左移一位得到1111 1100,再和0000 0001或运算,或运算(有1取1)已知P2.0亮的寄存器是1111 1110,那么P2.1亮的寄存器就是1111 1101。

2026-10-13 15:33:23 204

原创 51 单片机LED闪烁(SDCC + Notepad++ + STC-ISP/普中ISP)

想要实现 LED 闪烁,其实逻辑很简单:让 P2.0 这个灯亮 → 延时 → 灭 → 延时 → 循环。

2026-10-09 10:30:47 206

原创 从零开始:51 单片机点灯流程(SDCC + Notepad++ + STC-ISP/普中ISP)

网上大多数 51 单片机教程都基于 Keil C51,但 Keil 是商业软件,评估版有 2KB 代码限制,公司电脑用还有合规风险。我用这套完全免费、合法的工具链,跑通了 51 单片机点灯,记录一下完整步骤。

2026-10-08 09:46:10 447

原创 STM32单片机使用STM32CubeIDE点灯程序记录

作为安卓开发工程师,首次接触STM32开发,通过STM32CubeMX配置STM32G431C8T6芯片的PA8引脚为输出模式,点亮LED灯。采用CubeMX生成CubeIDE工程,使用CubeIDE进行代码编写、编译及JLink下载,完成点灯实验。记录过程以备后续参考,不用于教学。

2026-09-23 18:56:14 172

原创 window11 解决截图快捷键冲突:Ctrl+Alt+A 截不到弹窗,Ctrl+Shift+A 又切换输入法

使用截图工具时,Ctrl+Alt+A 无法截取弹窗,因 Alt 键会触发系统关闭临时界面;Ctrl+Shift+A 易误触输入法切换,因该组合为系统默认输入法快捷键。解决方法:一、避免使用含 Alt 或 Ctrl+Shift 的快捷键,推荐设为 Ctrl+Q 等;二、关闭系统输入法热键设置,将 Ctrl+Shift 切换改为“未分配”;三、启用延迟截图应对必须用 Alt 的场景。最优方案是修改系统设置并选用无冲突快捷键,彻底解决冲突,提升截图效率与稳定性。

2026-09-17 13:57:11 768

原创 常用安卓开发应用及设置

用于编辑代码。

2026-09-03 10:40:32 34

原创 ubuntu vi/vim配置

默认的vi,不会显示行号等,如果每次打开都手动使用命令启动行号等,就会非常不方便。有一种长期使用的方法,也就是配置 .vimrc 文件,可以自定义 Vi/Vim 的行为和外观,从而提升编辑效率。一般存在在用户根目录下,直接就能生效。有人自己配置, 也有人使用一键配置脚本,这里推荐使用一键配置脚本。

2026-07-02 17:26:58 245

原创 window11使用wsl2下载编译android 8代码,并用emulator运行

博主需要使用android 8代码进行学习,电脑环境window11,踩了很多坑才完成了android 8的代码下载编译运行,在此做记录。如遇到网络问题,一般使用清华源或者中科源。博主生活在中原地区,离中科源更近,所以优先使用的中科源。

2026-04-27 19:53:42 507

原创 WSL无法联网(被火绒拦截)

总结:WSL无法连接,是被火绒拦截了。

2026-04-21 18:30:19 118

原创 VSCode运行Hello Word c++程序

官网:https://code.visualstudio.com/Download。

2026-03-12 17:14:22 139

原创 window11搜索一直加载,不能正常显示

Windows更新后搜索功能失效的解决方案:用户反映系统更新后搜索功能持续转圈无法使用,通过卸载KB50开头的更新补丁后恢复正常。具体操作路径为:设置-Windows更新-更新历史记录-卸载更新。该方法已成功解决问题且重启后未复现,参考了优快云相关技术文章。

2026-02-26 10:09:45 668

原创 安卓应用冷启动流程走读源码(Android 15)

大纲Android触控事件处理机制Zygote进程启动和应用进程创建流程Handler消息机制AMS的Activity组件管理应用Application和Activity组件创建与初始化应用UI布局与绘制RenderThread渲染SurfaceFlinger合成显示。

2026-01-21 18:36:54 994

原创 第九章 JAVA常用类

String:字符串,使用一对" "引起来表示。①String声明为final的,不可被继承②String实现了Serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示String可以比较大小。③String内部定义了final char[] value用于存储字符串数据(JDK 9及以后是 byte[] value)④String:代表不可变的字符串序列。简称:不可变性。体现:对字符串重新赋值;对字符串进行连接操作;

2026-01-09 15:06:44 424

原创 第八章 多线程

是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程——生命周期- 如:运行中的QQ,或运行中的MP3播放器- 程序是静态的,进程是动态的,系统在运行时会为每个进程分配一个不同的内存区域,进程可进一步细化为线程,为一个程序内部的一个执行路径。- 若一个进程同一时间并行执行多个线程,就是支持多线程的,线程切换的开销小。

2026-01-05 11:38:25 324

原创 项目三介绍与演示-开发团队调度软件(TeamSchedule)

TeamSchedule├── domain│ ├── Architect.java│ ├── Designer.java│ ├── Employee.java│ ├── Equipment.java│ ├── NoteBook.java│ ├── PC.java│ ├── Printer.java│ ├── Programmer.java│ └── Status.java├── service│ ├── Data.java│ ├── N

2025-12-29 15:27:32 178

原创 异常处理-异常概述

在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的。

2025-12-23 16:29:05 207

原创 面向对象(下)-内部类的分类

当一个事物的内部,还有一部分需要一个完整的结构进行描述,而这个内部的完整结构又只为外部事物提供服务,那么整个内部的结构最好使用内部类。在Java中,允许一个类的定义位于一个类的内部,前者称为内部类,后者称为外部类。分类:成员内部类(static成员内部类和非static成员内部类)局部内部类(不谈修饰符:方法内、代码块内、构造器内)、匿名内部类。Inner Class的名字不能与包含他的外部类的类名相同;

2025-12-19 17:27:20 248

原创 面向对象(下)-接口应用:代理模式 && 工厂模式

概述:代理模式是Java开发中使用比较多的一种设计模式。代理设计就是为其他对象提供一种代理以控制这个对象的访问。

2025-12-12 18:32:39 296

原创 面向对象(下)-接口的理解

接口的使用- 接口使用interface定义- java中,接口和类是并列的两个结构- 如何定义接口:定义接口中的成员- - JDK7及以前:in定义全局常量和抽象方法- -(全局常量:public static final,书写时可以省略)- -(抽象方法:public abstract,书写时可以省略)- - JDK8及以后:除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法- 接口中不能定义构造器!意味着接口不可以实例化。

2025-12-12 16:55:20 362

原创 提取Google Play商店的APP

Google Play 商店搜索想要的APP,点击分享,复制分享链接。

2025-12-09 10:52:57 4349

原创 面向对象(下)-模版方法的设计模式其应用场景

多态的应用:模版方法设计模式(TemplateMethod)抽象类体现的就是一种模版模式的设计,抽象类作为多个子类的通用模版,子类在抽象类的基础上进行扩展、改造,单子类总体上会保留抽象类的行为方式。解决的问题:- 当功能内部一部分实现是确定的,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。- 换句话说,在软件开发中实现一个算法时,这就是一种模版模式。

2025-12-04 16:49:06 174

原创 面向对象(下)-抽象类与抽象方法的使用

abstract:抽象的abstract可以用来修饰的结构:类、方法- 此类不能实例化- 抽象类中一定有构造器,以便于子类实例化调用(涉及:子类对象实例化的全过程)- 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关操作- 抽象方法只有方法的声明,没有方法体- 包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法。- 若子类重写了父类中的所有抽象方法后,此子类可实例化。- 若子类没有重写父类中的所有抽象方法,则此子类也是一个抽象类,需要使用abstract修饰。

2025-12-04 10:38:23 194

原创 面向对象(下)final修饰类和方法

final可以用来修饰的结构:类、方法、变量。

2025-12-03 14:18:27 248

原创 面向对象(下)类中代码块结构的使用

代码块如果有修饰的话,只能使用static。分类:静态代码块 vs 非静态代码块。代码块的作用:用来初始化类、对象。

2025-12-02 18:03:40 172

原创 面向对象(下)-了解main方法的语法

main()方法的使用说明。

2025-12-02 15:59:35 226

原创 面向对象(下)-设计模式与单例设计模式

设计模式是在大量的实践中总结和理论化之后优先的代码结构、编码风格、以及解决问题的思考方式。设计模式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,免去我们自己再思考和探索。总结就是“套路”。所谓的类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对,并且该类只提供一个取得该对象实例的方法。如果我们要让类在虚拟机中只产生一个对象。

2025-12-01 18:04:27 318

原创 面向对象(下)-static关键字的引入

当我们编写一个类时,其实就是在描述其对象的属性和方法,而并没有产品实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。我们有时候希望无论是否产生了对象或者无论产生了多少对象的情况下,。例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每个中国人的实例对象中都单独分配一个用于代表国家名称的变量。

2025-12-01 13:01:53 165

原创 安卓常见问题分析方法

遇到问题,需要有效日志协助分析,以下方式获取常见问题的分析日志。

2025-11-28 15:50:52 268

空空如也

空空如也

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

TA关注的人

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