- 博客(276)
- 资源 (13)
- 收藏
- 关注
原创 C语言心型代码解析
int i, j;//后面for 计数用的int n = 6;// 可以调整心型的大小这里定义了两个整型变量i和j,用于在后续的循环中控制迭代次数和作为计数器。同时,定义了变量n并初始化为 6,这个变量的作用是控制心型图案的大小。可以通过修改n的值来调整心型图案的尺寸,更大的n值会使心型图案更加宽大,而较小的n值则会使心型图案更加紧凑。// 上半部分i
2024-11-06 17:24:03
2702
1
原创 单片机c51中断 — 中断嵌套实例IE0的置位和撤销
其中K0定为低优先级中断源,K1为高优先级中断源。此外,利用发光二极管D1验证外部中断请求标志IE0在脉冲触发中断时候的硬件置位与撤销过程。D1初始值为1,D1对应着INT0的中断请求标志IE0的非。K0接INT0引脚,K1接INT1引脚,K1高级中断,优先级要设置高,即。D1=1 刚开始时候这样电平,D1灯是灭的,等于初始化。所以IE0=1中断开始,D1亮可以作为一个判断v。所以为1变0为负跳变脉冲所以为1变0为负跳变脉冲。K1也是这样,但是K1是优先级为高在这个例子中。
2023-05-09 23:02:21
3688
1
原创 单片机c51中断 — 中断键控流水灯
问题是这样的:由于查询法 -按键查询、标志位修改及彩灯循环几个环节是串联关系,当CPU运行于彩灯时,将因不能及时检测按键状态,而使按键操作效果不灵敏。switch (P0 & 0x0f) 这个可以保留低四位p0电压,然后,对比,就知道哪个按键按下。P0.0是0,变化了,说明按键K1按下,K1按下是流水灯 run=1。在第4章的实例2中,按键检测是采用查询法进行的,其流程图如图所示。关于项目的内容知识点可以见专栏单片机原理及应用 的第五章,中断。为此需要对电路进行改造,按下按键就进入中断了。
2023-05-09 22:29:14
8570
3
原创 单片机c51中断 — 中断扫描法行列式键盘
当按键被按下时,按键所在的行线和列线之间就会产生一个电压差,从而触发行列式键盘电路中的4与门集成元件进行逻辑与运算。处理器通过检测INTO引脚的电平变化来判断是否有按键被按下,如果有按键被按下,处理器就会进入中断函数进行按键扫描查询工作,从而快速响应按键动作。因此,可以采用中断扫描方式来提高CPU的效率,即只有在键盘有键按下时,才执行键盘扫描程序如果无键按下,则将键盘视为不存在。当各列电平都为0时,无论压下哪个按键,对应的行线和列线会产生逻辑与运算的结果,与门的输出端都可形成INTO的中断请求信号。
2023-05-09 19:15:36
4550
2
原创 单片机c51中断 — 开关状态监测
项目文件关于项目的内容知识点可以见专栏单片机原理及应用 的第五章,中断图中 P2.0引脚处接有一个发光二极管 D1,P3.2引脚处接有一个按键。要求分别采用一般方式和中断方式编程实现按键压下一次,D1 的发光状态反转一次的功能。
2023-05-08 22:35:37
2366
1
原创 行列式键盘(共阴极数码管)
关于项目的内容知识点可以见专栏单片机原理及应用 的第四章 行列式键盘。图为4x4行列式键盘和1位共阴极数码管电路原理图。单片机C51-行列式键盘。
2023-05-08 19:27:57
2464
原创 数码管动态显示
下面先将位码(也就是选择哪个亮的)0x02 | 0x01 先后送入 P3口依次使能。关于项目的内容知识点可以见专栏单片机原理及应用 的第四章 数码管动态显示。然后赋值P2端口,0x38是L,共阴极。采用共阴极LED数码管,采用动态显示显示字符"L2"先给1晶体管,赋值为led_mod[0] 是L。再给2晶体管,赋值为led_mod[1]是2。C51单片机——数码管动态显示。
2023-05-08 17:08:04
1090
原创 LED数码管显示
上(电路原理图如图4.19所示),使之循环显示0~9数字,时间间隔为 500循环步。数码管的显示段码跟显示数值123之类没有规律,所以要用数组表示;将80C51单片机PO口的P0.0 ~ P0.7引脚连接到一个。顺序提取0~9的字模并送到P0口输出。单片机C51-LED数码管显示。
2023-05-08 10:09:32
1278
原创 键控流水灯
显然,按键状态可以依据(PO&0x0f)是否等于 0xof 来进行判断。LED的工作状态可由存放在一个数组中的数据控制。关于项目的内容知识点可以见专栏单片机原理及应用 的第四章 IO口编写。当K1~ K4分别按下时,经。单片机C51-键控流水灯。运算得到的应键值分别为。,而无键按下时的键值为。
2023-05-08 00:34:02
6327
5
原创 独立按键识别
也就是刚开始要使端口P0.4~P0.7强制为0,而P0.0 ~ P0.3不变。这样传过去,对应哪个端口,那个端口电压变化,这里是低电平驱动,发光(如下图)先看这个电路,P2端口这里初始是VCC,二极管是低电阻,端口处是。P0这里,按下按键前不接地,电压都是一样的,1.25V大概,按键按下,低4位变化,这样key值不等于0,有一位电压变低。分析:电路LED采用的是低电平驱动,按键按下后低电压。然后只要按键按下了,就把这个值传输到P2端口。需要从P0按键输入电压,到p2输出。,这是P2端口的初始。
2023-05-07 23:38:58
934
原创 单片机c51延时函数解析(isp自动生成)
下面讲解如何使用isp自动生成延时程序。可以生成C语言的,还可以生成汇编的。软件 STC 官网 >>打开后选择菜单上面的。
2023-05-07 16:32:18
6061
原创 汇编实现LED循环点亮(延时子程序模板)
汇编实现LED循环点亮(延时子程序模板)在单片机P2口外接8个发光二极管(低电平驱动)。试编写一个汇编程序,实现LED循环点亮功能:P2.0-P2.1-P2.2-P2.3-..-P2.7-P2.6-P25-..-P2.0的顺序,无限循环。要求采用软件延时方式控制闪烁时间间隔(约50ms)。
2023-05-07 00:25:44
8547
原创 汇编仿真 — 比较大小
在这个代码段中,相对地址0013H是指标签NOEQU的地址。因此,在编写汇编代码时,程序员必须使用标签的相对地址来告诉计算机如何计算下一条指令的地址。,它表示如果CJNE指令转移到NOEQU标签,则程序将从NOEQU标签后的第14个字节开始执行SETB 7FH指令。最终得出下一条指令的地址为0017H(0009H+0EH),这就是修正后的目标地址。题目:编程实现如下功能:比较片内 RAM的30H和40H单元中两个无符号数的大小,并将大数存入50H,小数存入51H,若两数相等,则使位单元7FH置1。
2023-05-05 17:31:47
4223
1
原创 P3口仿真
关于项目的内容知识点可以见专栏单片机原理及应用 的串口。当P3口用作通用I0的输出时,“第二输出功能”端应保持。当选择第二输入功能时,该位的锁存器和第二输出功能端。先验证P3口的第二输出输入功能。
2023-05-04 23:31:51
261
原创 P1口仿真
读锁存器验证: 读锁存器=1,改变内部总线输入,跟随变化。开关sw1设置输入模式,读引脚=1,内部总线=0。sw2断开,不接地。内部总线随输入端变化而变化。内部总线不随输入端变化而变化。运行改变内部总线,输出端随着内部总线变化。用于测试P1口的输入输出。
2023-04-28 10:05:00
297
原创 C语言文件操作
C语言文件 文件概述 文件的概念 逻辑文件 文件的分类 文本文件和二进制文件 缓冲文件系统 文件结构 FILE FILE 结构定义 文件类型指针 文件的打开和关闭 文件打开函数fopen fopen定义 fopen的返回值 ❗️fopen的打开方式列表 文件关闭函数fc
2023-04-20 11:11:08
1262
原创 结构体联合体sizeof内存求值 - 对齐数
结构体联合体sizeof内存求值 - 对齐数不同位数下类型字节大小内存对齐规则struct 内存对齐求值嵌套struct内存对齐求值union的内存大小求值union大小计算准则struct嵌套union内存对齐求值
2023-04-13 18:12:35
1035
原创 main主函数参数解析
其中,int 是主函数的返回值类型,主函数执行完后会返回一个整数值给操作系统,通常是主函数的参数列表: 主要用于命令行argc:表示命令行参数的个数(argument count),即程序被调用时在命令行中输入的参数的总数(包括程序本身),其中至少有一个参数,即程序本身。例如,输入命令 “./my_program file1.txt file2.txt”,则 argc 的值为 3。argv[]:表示命令行参数的数组。
2023-03-31 16:48:07
2070
原创 C语言指针与数组 进阶
C语言指针与数组 进阶用一级指针访问二维数组❗易错点: 不能直接`指针变量=数组名`指向数组的指针1. 指向指针的指针2. 指向一维数组的指针 (*P)[4]—行指针二维数组名指针数组❗易错点: 区别行指针 (*ps)[10]— *ps[10] — *(ps[10])❗❗指针数组的作用指针数组表示二维数组的举例:p[i]=a[i]动态申请和释放二维数组动态一维数组实现用指针数组实现- 为什么不用定义int *a[N]?动态分配内存的过程分配内存的图示定义指针数组动态申请指
2023-03-30 09:24:33
708
原创 n个字符串排序(指针数组实现)
然后使用 * 运算符来取出指针所指向的字符串,再使用 strcmp 函数进行比较。这样,在调用 qsort 函数时,我们可以将 cmp 函数的地址作为参数传递,qsort 函数会根据 cmp 函数的返回值来排序指针数组中的元素。在本例中,cmp 函数的作用是比较两个字符串指针所指向的字符串,返回它们的大小关系。具体地,cmp 函数的参数类型为。输入n和n个字符串(每个字符串不超过80个字符)请排序后输出,要求使用指针数组(而不是二维字符数组)处理。,分别指向数组中需要比较的两个元素。
2023-03-30 09:24:05
2041
1
原创 C语言枚举—事件提醒程序 (time函数)
编写程序,实现一个事件提醒程序,如果今天是周几,完成什么事情.....运用time函数和local函数,以及enum的序号0,1,2,3,4,5..
2023-03-22 16:03:47
463
原创 C语言数组——多维数组
C语言多维数组多维数组的空间想象C语言在内存中的存放情况易错点: 二维数组初始化不能缺少列数,可以..三维数组熟悉三维数组的初始化!!几维数组指针三维数组例子
2023-03-12 22:53:33
4214
转载 防止C语言头文件被重复包含 — ifndef & #pragma once
防止C语言头文件被重复包含 — ifndef & #pragma once
2023-03-06 21:23:48
3210
原创 变量的四大存储类型static extern auto register
C语言变量的四种存储类别:存储类别 生命周期 作用域 存储方式 存储区域 使用场景auto 函数内部 块级别 栈 RAM 用于存储局部变量static 整个程序 块级别 数据段 RAM 用于存储局部变量的持久性版本extern 整个程序 文件级 数据段 RAM 用于在不同的源文件中共享全局变量register 函数内部 块级别 寄存器 CPU 用于提高变量的访问速度
2023-03-05 22:41:15
6197
5
转载 预处理命令使用详解----#if、#endif、#undef、#ifdef、#else、#elif
预处理命令使用详解----#if、#endif、#undef、#ifdef、#else、#elif 预处理命令的作用就是在编译和链接之前,对源文件进行一些文本方面的操作,比如文本替换、文件包含、删除部分代码等,这个过程叫做预处理(在编译之前对源文件进行简单加工)
2023-03-01 17:01:24
23171
4
原创 C语言字符指针—扩展实数相等
- 从键盘输入两个实数,位数不超过200,试判断这两个实数是否完全相等。注意输入的实数整数部分可能有前导0,小数部分可能有末尾0。- 输入的实数位数可能超过19位,显然用double类型无法表示,只能用字符串(字符数组)存储。显然需要去掉整数部分的前导0和小数部分的未尾0,然后调用字符串比较函数判断相等。
2023-02-26 22:30:58
314
原创 C语言指针易错点—字符数组与字符指针
C语言指针易错点—字符数组与字符指针 字符数组与字符指针的区别 字符数组与字符指针的区别举例 字符指针必须先赋值,后引用
2023-02-26 15:49:28
768
原创 C语言字符串转换double等类型(sscanf,atof,strod)
C语言字符串转换double等类型 1. 使用atof 2. 使用 sscanf 3. 使用strtod
2023-02-23 23:43:20
5678
原创 C语言指针—字符账单处理
C语言指针——字符账单处理问题描述:每到月末,superbin就会对这个月的支出账单进行整理和统计。如今电脑已经普及大学校园,所以superbin想让电脑帮忙做这件事情。聪明的你就为superbin编一个程序来完成这件事情吧输入:第一行是整数n(n
2023-02-23 22:08:29
219
转载 vscode中文乱码问题
VS Code:4个中文乱码问题及解决方法 打开文件后,中文显示乱码 终端命令行运行时出现中文乱码 点击运行键运行程序出现中文乱码 调试时,终端出现中文乱码或无法输出中文
2023-02-23 21:57:16
4528
2
学生信息管理系统简易版(文件读写操作)
2023-04-25
C语言速记——基本内容
2022-10-02
linux用多线程同步方法解决睡眠理发师问题(Sleeping-Barber_Problem).pdf
2021-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人