蓝桥后记
距离我参加蓝桥杯电子赛已经过去了一个多月。
其实从寒假结束到蓝桥杯这段时间,我过得非常郁闷。
我总是感觉生活十分絮叨。是吧,这个形容十分奇怪。
那我该怎么形容呢?烦闷、无聊、复杂,毫无动力、郁郁寡欢、背道而驰。
我找不到合适的形容这段时间的词语。但我找到了一个十分贴切的、描述我的词语:絮叨。
我找不到坚持下去的理由。同样的,我也找不到放弃的理由。
我纠结在我到底要不要记住那些冗杂的大框架大模板。
我到底能不能记住。
我应该先写完作业回顾完当天的功课,还是应该先完成昨天没写完的蓝桥博客。
我今天下午应该是好好睡觉好好休息还是应该滚去自习室预习明天的课程呢。
……
……
然后在这自我对话和跌跌撞撞里,我还是迎来了计算机二级和蓝桥杯。
是吧,这段时间我非常忙,我都丢掉了每天玩游戏的时间,甚至丢掉了周末玩游戏的时间。
可我获得了什么吗?
七八篇完美的蓝桥杯博客?三天速通计算机算法基础?一周豪取计算机二级证书?还是一个月砥砺奋进的蓝桥杯省奖?
对不起,一个都没有。
但我总整来了点东西吧。
一堆十分潦草的博客,只会写选择题判断题的算法基础的脑子,和证书压根沾不上边的二级经历以及三百块的付款记录。
...
我有一个只出现在白日闲暇时的美丽幻梦
【1】
最近我听了很多的歌。
汪峰的《生来彷徨》《在雨中》、陶喆的《天天》《小镇姑娘》《流沙》·····
多吗?
不多。当然,我这里指的是听了一遍会单曲循环的歌。对我这个老是抱着听过的歌天天听的人来讲确实算是多的了。以至于单曲循环这几天晚上睡觉时,脑子里面都是:
“我想要天天说 天天说 天天对你说我有多爱你”“不明白 不明白 为什么我不能放得开”。
好像没什么奇怪的。不就是歌听多了,“余音绕梁”了嘛。
可是,我总感觉有点淡淡的忧伤。
这种感觉像什么呢?
像彼时的我在宿舍的床上敲着这些字,宿舍里面的空调让我有发冷。
临近十一点从诺大的实验室走到诺大的深夜操场的寒意。
自习分析电路毫无头绪的困窘。
脑袋里空响的寂寥。
是深夜的孤独袭来?还是自我某时期的莫名空虚?
我不知道。
不过比起夜晚的胡思乱想,白日的美丽幻梦更令我着迷。
不知道多少次在高数讲定义时走神,在大物讲解例题时出游,在电路条件拆解时深潜····我在找某个东西,某个我不曾得到,但距离我很近的东西。
它会在我集中精力的时候闯进我的脑袋里来,搅乱我思考的一切。我思绪被迫打断。
看着它狡黠的眼神,我告诉自己,我一定要抓住它 ...
武汉,武汉
2024/5/4[18:28:18]此刻,我坐在回西安的高铁上。旁边的之已经睡着了,同车厢的杰也大概在睡觉。
耳机里是汪峰的《光明》。
昨晚同萌和贤道了别,今早又同威说了再见。网络确实是拉进了大家的距离。不管天南海北,敲敲手机就能把我的文字和语音发给朋友们,这总算是科技的进步。
在辛亥革命纪念馆纪念品商店看到了有在出售辛亥革命的纪念邮票。我觉得邮票好常见,但是细细想来,我居然没有寄过信。
我望着那些邮票出了神。
我唯一一次寄信,是给一个杂志社。
那封信里表达了我对其社的热爱,不过具体是什么杂志,我又忘记了。
与其说是寄信,其实到头来也没有寄出去。最后那封信被留在了某一本杂志里,被时间冲没,不知所踪。
后来,我也写过好多明信片给同学当做生日的贺卡。虽然内容都是信的格式,不过几乎都是当面赠予,没有寄信的仪式感。
我拿起那些邮票,细细端详,一共有七八种板式,我最中意的是一张辛亥革命主要人物的一版邮票。有十二位前辈,我在历史书上大都听过他们的名字。
我总觉得既然来了武汉,要带走点什么,也要留下点什么。
我好想买下它,可是几近一百元的价格和捉襟的生活费,又让我望而却步。
最终还是还是没有狠下心。 ...
放学
放学放学真的是我记忆里不可多得的快乐时光,不管是幼儿园、小学、初中还是高中,甚至是大学上完一天的课,也包括听完自己不会的知识点的网课,管我有没有听懂,反正就是很快乐。
这快乐就像吃完饭不用洗碗,睡觉不用起床,说话不计后果的快乐。尤其集中体现在收拾书包的那一刻。不管面前摆了几本书,一本两本三本都无所谓。统统塞进书包,站起身,右手提起书包的背带从自己右肩膀跨上去,顺势把书包荡到左肩,摸索着找到左边的背带。有时候啊,总是摸不到左边的背带,还要叫同桌帮我的忙。不然就是背带翻到书包外侧了,或者被压在了我的手触碰不到的地方……总之,此刻的我只背好书包就行,其他的事情交给我的腿来处理——走出教室。
不过小时候还要面临站队点名等待出校门背诵古诗等等一系列冗杂多余的形式主义行为才能走到家长有权接送的的地方。
幼儿园时候,因为我还是年纪太小,所以放学后的唯一任务就是找到妈妈爸爸或者爷爷奶奶。然后回家看电视。
二年级,老妈允许我自己从校门口走到第一个十字路口之后再回家。这样只为了初步锻炼我的自理能力。幸运的是,这里包含了学校北边所有的小卖部。极大的丰富了我的放学生活。
我在这些小卖部里买了我人生中第一本小人 ...
七.DS1302时钟模块
DS1302时钟模块原理图
我们可控的引脚为5,6,7,P13为复位,P23输入数据,P17为时钟引脚。其余口是已经配置好的。
功能实现
如果要写入s,秒的地址为10000000(0x80),读时末位为1。
如果要写入57,用bcd码写入,把57化为16进制:0x57.
所以是先选中,再写入。
小时位如果是12小时制的,通过第三位判断上午下午。
12小时:0x12.
数据地址
画圈的就是读取和写入数据所调用的地址。
当复位拉高时才能进行数据写入
数据由上升沿开始读取,每一位是在每一个上升沿才会读。
写入函数定义12345678910void write_ds1302(unsigned char temp){ unsigned char i; for(1=0;i<8;i++) SCK=0;//打开复位,开始读取 SDA=temp&0x01;//屏蔽高七位,保留最后一位为1 temp>>=1;//左移一下,此时,产生上升沿,读取第一位 SCK=1;}
第二次循环就是第二位为1,那就会读取第二位 ...
六.倒计时程序
倒计时程序
定义变量
12uint Timer_1000ms;uchar Timer_count = 30;//计时变量,此处为30
123456/*中断程序内*/if(++Timer_1000ms == 1000){ Timer_1000ms = 0; Timer_count--;//1s减一次}
信息处理函数:
12seg_buf[4] = Timer_count / 10 % 10;//取十位seg_buf[5] = Timer_count % 10;//取个位
数码管第四位第五位便会显示倒数计时30.
五.蓝桥杯大模板
蓝桥杯大模板工程文件夹的建立
首先建立文件夹,包含两个文件夹
接着new project,命名文件为LED,选择芯片
魔术棒勾选生成HEX文件魔术棒选择头文件路径Driver
底层文件的编写1.第一个底层:init(初始化)两个文件
init.c和init.h
.h文件引用自身的头文件
双击driver,把init.c引用进文件夹。并在c引用h自身,h文件引用单片机型号头文件
初始化函数(关闭继电器蜂鸣器)
12345678910#include <init.h>void system_init() { P0 = 0xff;//开锁存器 P2 = P2 & 0x1f | 0x80; P2 &= 0x1f;//用完即关 P0 = 0x00; P2 = P2 & 0x1f | 0xa0; P2 &= 0x1f; }
接着在.h里声明该函数:
第二个底层:LED.c123456789101112131415161718#include <LED.h> void LED_d ...
四.独立按键和矩阵键盘
独立按键和矩阵键盘原理图:
由原理图可以知道,独立按键和矩阵键盘有些线是接在一起的。
我们看到板子实物,会看到可更改的跳线帽。当2,3跳线帽接在一起时,启用的是独立按键。
独立按键接下来我们简化独立按键原理图:
从上到下依次是S7、S6、S5、S4,所有按键可以同时输入与输出(区别于stm32)。
输入读取按键按下为低电平,程序选择表达为:
123if(s7 == 0){ }
当按键没有按下时,为高电平。(此处涉及到单片机IO口的结构和电路分析基础,此处不做过多研究。PS:我也研究不明白。)
另外,单片机按键会出现抖动,这是由于单片机按键的机械原因,其按键具有弹性,断开与闭合时均会因为弹性作用,不会马上稳定的接通,最大抖动时常为(5-10ms)+(5-10ms)。
此外,单片机的输入高电平为5v,输出为0v,但输出的高低电平均为一个范围。
用示波器检测,我们即可发现其抖动的状态。
如果我们要消除抖动,在判断为按键按下时候加一个10ms的延时函数即可。
程序设计定义端口;
1234sbit S7 = P3^0;sbit S6 = P3^1;sbit S5 = P ...
三.共阳数码管
共阳数码管数码管就是由LED组成的。
每个数码管的代号如图所示,按abcd顺时针走一圈即可。我们让P0=0x00就能点亮所有数码管(per)。
如果我们要让数码管成为一个2,那么就是
dp
g
f
e
d
c
b
a
1
0
1
0
0
1
0
0
换算为十六进制就是(从右向左!!!!)
1P0=0xa4;
同理,0的话就是
dp
g
f
e
d
c
b
a
1
1
0
0
0
0
0
0
即:
1P0=0xc0;
不过听说比赛的时候赛点资源包里面是有数码管数字的十六进制的…..
接下来我们看原理图。
控制数码管,我们是由com公共端控制的,
abcd口由U7控制。端口连接情况如图所示,依然存在锁存器,依然存在或非门。
com连接情况也是显而易见。由U8控制。
不过需要注意的是,我们一共有8个数码管,每个阴极a和a,b和b都是接在一起的,如果我们需要显示0,那所有数码管都会只显示0。
因此,需要的线不是72个,而是16根线。具体如何操作我们后面再说。
静态数码管下面我们开始写代码:
1234567#include <reg52.h ...
二.继电器和蜂鸣器
蜂鸣器和继电器继电器原理图:
原理:通电导线产生磁场,把K1吸下来。
可以理解为单刀双掷开关。K1控制m1和m2。
只要让N RELAY低电平即可。
这个二极管的作用大概是当断电的时候,保护电路?
蜂鸣器
让蜂鸣器工作的话只要在N BUZZ接入低电平即可。
然后我们在原理图上找这两个口。
ULN2003是双极型线性集成电路。
内部原理就是一个非门。
输入高输出低,输入低输出高。如果用它来控制电机,那么只能实现单方向的控制。
左边还是一个锁存器。
于是通路就是:
N RELAY—-P04—-Y5C
Y5C和一个或非门连在一起,由Y5控制
Y5的尽头是一个译码器,我们之前说过了。
所以,最终我们让这三个口从下到上依次取值101,Y5最终就会输出一个低电平,Y5C就是高电平。
最后,我们让P00-P07取值为00001000,换算为十六进制为10
即:
1P0 = 0x10;
同理,我们让继电器打开的话,P0-P7取值为01000000,即:
1P0 = 0x40;
都打开的话就是
1P0=0x50;
都关闭的话就是
1P0=0x00;
最后注意LED和继电器的初始化。