小菜菜~~
码龄4年
关注
提问 私信
  • 博客:100,180
    问答:214
    动态:75
    100,469
    总访问量
  • 19
    原创
  • 280,377
    排名
  • 981
    粉丝
  • 学习成就

个人简介:学习!

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2020-11-18
博客简介:

小菜菜~~的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    499
    当月
    4
个人成就
  • 获得326次点赞
  • 内容获得20次评论
  • 获得1,861次收藏
  • 代码片获得782次分享
创作历程
  • 1篇
    2024年
  • 18篇
    2022年
成就勋章
TA的专栏
  • C语言
    17篇
  • 数电实验
    2篇
  • EasyX图形库
    2篇
兴趣领域 设置
  • Python
    python
  • 编程语言
    c++c语言
  • 嵌入式
    单片机stm3251单片机proteus嵌入式硬件
  • 硬件开发
    fpga开发
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

179人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

# include “ “ 和 # include < >两者的区别

包含头文件时,比如在C语言中我们可以用来包含输入输出库,也可以用来包含标准输入输出库。但是两者并不完全相同。
原创
发布博客 2024.02.21 ·
999 阅读 ·
10 点赞 ·
1 评论 ·
9 收藏

AT89C51芯片,独立按键

答:

代码如下:

#include <REG52.H>

sbit K1 = P1^0; //K1按键
sbit K2 = P1^1; //K2按键
sbit K3 = P1^2; //K3按键
sbit LED = P2^0; //LED灯
sbit DIO = P2^1; //74HC595数据线
sbit RCLK = P2^2; //74HC595存储锁存线
sbit SCLK = P2^3; //74HC595时钟线

unsigned char code NUM_TAB[10] = { //数码管显示码表
    0xC0,  //0
    0xF9,  //1
    0xA4,  //2
    0xB0,  //3
    0x99,  //4
    0x92,  //5
    0x82,  //6
    0xF8,  //7
    0x80,  //8
    0x98   //9
};

void display(unsigned char number) { //数码管显示函数
    DIO = 0;
    SCLK = 0;
    for (int i = 0; i < 8; i++) { //向74HC595中写入一个字节的数据
        DIO = (number & 0x80) >> 7;
        number <<= 1;
        SCLK = 1;
        _nop_();
        _nop_();
        SCLK = 0;
    }
    RCLK = 1; //锁存数据
    _nop_();
    _nop_();
    RCLK = 0;
}

void main() {
    unsigned char cnt = 0; //按下K1的次数
    unsigned char state = 0; //密码输入状态
    P1 = 0xFF; //按键输入口设置为上拉输入
    P2 = 0x00; //数码管输出口初始化
    while (1) {
        if (K1 == 0) { //检测到按下K1
            delay(10); //延时去抖动
            if (K1 == 0) {
                cnt++; //按下K1的次数加一
                if (cnt == 2) { //连续按下K1两次
                    state = 1; //进入下一个状态
                    cnt = 0; //重置K1按下次数
                }
            }
            while (K1 == 0); //等待K1松开
        }
        if (K2 == 0 && state == 1) { //检测到按下K2
            delay(10);
            if (K2 == 0) {
                state = 2; //进入下一个状态
            }
            while (K2 == 0);
        }
        if (K3 == 0 && state == 2) { //检测到按下K3
            delay(10);
            if (K3 == 0) {
                display(NUM_TAB[1]); //数码管显示1
                LED = 1; //点亮LED灯
                delay(500); //延时500ms
                display(0); //数码管清零
                LED = 0; //熄灭LED灯
                state = 0; //回到起始状态
            }
            while (K3 == 0);
        }
    }
}

void delay(unsigned int n) { //延时函数
    while (n--);
}

该代码实现使用 AT89C51 芯片,三个按键通过上拉电阻连接至输入口,数码管使用 74HC595 串行移位寄存器驱动,LED 灯则直接接至输出口。使用状态变量 state 记录当前密码输入状态,计数器 cnt 记录连续按下 K1 次数,在已经连续按下两次 K1 的情况下按下 K2 和 K3 才会触发数码管显示 1 的操作。使用 delay 函数实现延时操作,可能需要根据实际情况适当调整延时时长。

回答问题 2023.05.31

扫雷小游戏工程文件(包含图片,背景)

发布资源 2022.06.16 ·
rar

扫雷的图片文件夹(全部)

发布资源 2022.06.16 ·
rar

扫雷游戏(图形界面)C语言小游戏

摆脱黑窗口,我们用easyX图形库做一个我们小时经常玩的扫雷小游戏。在做出来时你会发现,做一个小游戏原来如此简单,最会还有如何打包的教程,打包之后,可以发给朋友玩玩哦,在炫耀技术的同时可以回味一下童年乐趣。二、全局变量三、游戏初始化四、绘图渲染游戏五、自动解密0周围的格子(使用递归)六、鼠标消息七、判断成功/失败八、主函数 九、运行成功 下一步 给项目起名 点击创建因为我把图片素材放在tp文件夹下,所以需要添加一个子目录
原创
发布博客 2022.06.16 ·
1941 阅读 ·
6 点赞 ·
3 评论 ·
45 收藏

C语言相关问题10个标题

答:

你这个代码到处都有错误吧,第一个for中 使用:分隔开的,应该用; ,还有两个for后面都加上 ; 你确定要加这个吗,最后那个输出你那样写是不能输出x
的值的,printf("%d",x); 才可以

回答问题 2022.06.11

数码管动态显示电路.ms14

发布资源 2022.06.11 ·
ms14

密码锁_153.ms14

发布资源 2022.06.11 ·
ms14

密码锁_138.ms14

发布资源 2022.06.11 ·
ms14

数码管循环显示电路设计

使用555、74LS161、74LS138、4511等器件,在4位共阴极数码管上从右到左依次显示9。使用555芯片产生的10Hz的时钟来扫描4个数码管,使用74LS161芯片来设计一个4进制计数器,再用计时器的输出端与74LS138芯片的数据输入端连接分别来点亮四位数码管,从而实现对四位数码管的扫描。使用4511芯片来控制4位数码管的段选段,使数码管显示数字9,从而实现数码管数字的显示。用555设计时钟信号发生器,频率为10Hz,用于驱动数码管动态显示。555电路的设计.........
原创
发布博客 2022.06.09 ·
1711 阅读 ·
0 点赞 ·
0 评论 ·
11 收藏

密码锁电路设计及仿真

设计要求:密码锁上有三个按键A、B、C。当三个按键同时按下,或A、B两个同时按下,锁就能被打开(用F表开锁信号);而当有键按下却不符合上述组合状态时,将发出报警信号(用G表示报警信号)1、试用数据选择器74LS153设计此逻辑电路;2、试用译码器74LS138及与非门设计此逻辑电路;方案一 使用74LS138芯片方案二 使用74LS153数据选择器1、实验原理:将三位密码按键作为三位二进制数输入,将译出的8个信号根据要实现的功能连接起来作为相应的输出。 首先根据逻辑函数使三位密码按键与译码器的输入
原创
发布博客 2022.06.09 ·
10242 阅读 ·
12 点赞 ·
5 评论 ·
106 收藏

EasyX图形库学习(完整版)

在此之前我们用C语言/C++编程面对的都是黑框框,感觉很无聊。现在用easyX库可以很快的画一个房子、车子、人物等等。当然也可以基于easyX图形库来做一些我们平时玩过的游戏,比如贪吃蛇、俄罗斯方块、坦克大战、天天酷跑等。目录一、easyX图形库基本介绍1、easyX的原理2、easyX的安装3、easyX的颜色 4、easyX的坐标二、easyX图形库的使用1、窗口函数 init(int width,int height,int flag = NULL); 2、图形绘制1.画圆 circle(int x,
原创
发布博客 2022.06.05 ·
33311 阅读 ·
194 点赞 ·
5 评论 ·
1297 收藏

C语言 学生管理系统

C语言也是过了一遍了,再写一遍学生管理系统#include<stdio.h> #include<stdlib.h> #include<string.h> #define N 50 //最大学生人数int n = 0,m=0,k=1; // n代表当前记录的学生人数struct student { char num[16]; //学号 char name[18]; //姓名 char cla[10
原创
发布博客 2022.04.30 ·
2594 阅读 ·
5 点赞 ·
0 评论 ·
27 收藏

C语言 排序的算法

目录一、冒泡排序(起泡法)二、选择排序三、快速排序一、冒泡排序(起泡法)冒泡法排序的思路:每次比较相邻的两个数,把大的数放到后面,小数放到前面。比如说 7 5 4 3 1 这几个数 从小到大排序,先将 7和5进行比较大小,所以把7放到后面;第二次再将7和4进行比较,再把7和4换位置;第三次再将7和3比较,把7和3换位;....7在经过四次比较之后放到了最后一位,现在的排序为 5 4 3 1 7。接下来再让5依次和下面的数比较,但是因为已经找到最大的数了,所以就可以比上次大
原创
发布博客 2022.04.25 ·
1355 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

C语言 -- 文件的输入输出

前言文件在我们生活中处处可见,大部分人或多或少都接触过一些文件,例如,我们写的文章就是以文件的形式保存在电脑的磁盘或者我们的移动硬盘(U盘)中,用数码相机拍照,每一张照片都是一个文件。当我们需要时,就得读取文件中的信息。一、什么是文件文件 一般指存储在外部介质上的数据的集合。我们平时存储在磁盘上的文件就是常见的。1、流(数据流)输入输出信息的过程,信息如流水一样从一端流向另一端,因此称之为流(数据流)。流表示信息从源到目的端的流动,输入时,数据从文件流向计算机内存;输出时,数据从
原创
发布博客 2022.04.23 ·
15753 阅读 ·
42 点赞 ·
1 评论 ·
180 收藏

C语言 -- #deifne 和 typedef 的使用

目录一、#definef (宏定义)二、typedef1、typedef是干什么的?2、typedef代替复杂类型一、#definef (宏定义)#define 可以定义一个标识符来表示一个常量,在后面的程序代码中就可以用这个标识符来代表这个常量。 格式如下:#define 标识符 常量 // 注意后面不加“ ; ”特点:宏定义的标识符不占内存,只是一个符号,预编译后就不存在了。...
原创
发布博客 2022.04.17 ·
1821 阅读 ·
1 点赞 ·
2 评论 ·
3 收藏

C语言 -- 共用体

目录前言一、共用体的声明及变量的定义二、共用体变量的大小三、共用体的使用前言有时候我们想用同一段内存单元存放不同类型的变量,把一个字符型变量,一个整型变量,一个实型变量放在同一个地址的内存单元中,当我们为其中一个赋值,就会把这个单元中之前赋的值覆盖掉,这就用到“共用体”类型的结构。一、共用体的声明及变量的定义共用体的声明和变量定义和结构体基本相同,只是共用体用的是“union”。//格式如下 例子如下union 共用体名 .
原创
发布博客 2022.04.13 ·
6451 阅读 ·
18 点赞 ·
2 评论 ·
77 收藏

这个世界很大,人也很多 我们在长大 也渐渐有了自己的心事

发布动态 2022.04.11

C语言 -- 结构体及位域

前言我们之前看到的变量都是单独存在的,互相之间不存在联系,在内存中的地址也是互不相干的,但是在日常工作和学习中,我们常常需要把把一些变量放在一块,成组出现。例如,学生的姓名,学号,班级,联系方式,成绩等信息都是属于一个同学的,我们想让他们成组的保存和出现,让他们成为一个数据组合就用到了结构体。一、结构体的定义和声明结构体:由不同数据类型数据构成的组合型的数据结构,是用户自定义的数据类型结构体类型的声明格式:struct 结构体名{成员列表} ;举个例子,写一个用来放学生.
原创
发布博客 2022.04.10 ·
5703 阅读 ·
10 点赞 ·
1 评论 ·
52 收藏

C语言 -- 字符串

目录一、字符串的初始化二、字符串函数三、strlen 和 sizeof 的区别一、字符串的初始化1. char ch[] = {'h','e','l','l','o','w'}; //用数组把字符串的字符一个一个的放进去2. char str[] = {"hellow"}; //直接用字符型数组来放3. char *p = "hellow"; //通过指针存储字符串字符串的最后会自动加上一个 '\0' 表示字符串结束,可以通过过下面例子来了解#include <
原创
发布博客 2022.04.09 ·
776 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏
加载更多