最近总是检测不出耳机的插入,很郁闷。但是在其他设备上测试发现耳机并无异常。我仔细想了想,最近更改了哪些设置。好像是在 华硕 的 Smart Gesture 里面设定了 “插入鼠标时自动关闭触控板”,因为打字的时候总是容易误触,很难受。会不会与此有关?恢复默认设置后,再插入耳机。果然,这次一下就检测到了。垃圾华硕,再也不买你们的产品了。(认真脸)
1. 可校准的实时时钟
将程序下载至芯片,数码管会出现实时的时钟,通过按键key1以及导航键可以实现时间的精确校准。
具体来说:按 K1 进入校准模式,导航上键增加,导航下键减少,导航左右键在 时分秒 之间切换。
和之前的时钟一个毛病,秒走得太快。
2. 步进电机
用ISP下载hex文件之后,将步进电机对应口连接到电路板的SM接口处(5V对应红线,其余按照顺序接入即可),观察发现步进电机按照一定速度逆时针旋转,同时发现SM接口处左侧的led灯以一定频率闪烁(PS:在没有步进电机的情况下,可以通过查看led的闪烁来判断步进电机是否处于工作状态下)
今天刚发下来步进电机。
刚插上我是一脸懵,只感觉这家伙不停震动,没觉着转啊?
仔细一看,哦,真的在逆时针方向转,只不过幅度很小。我本来以为会转得很快,像小风扇里面的小电机一样,它转这么慢,我一下没反应过来,以为没转呢。(吃瓜)
3. 可控步进电机
用ISP下载hex文件之后,将步进电机对应口连接到电路板的SM接口处(5V对应红线,其余按照顺序接入即可),观察发现步进电机按照一定速度逆时针旋转,同时发现SM接口处左侧的led灯以一定频率闪烁(PS:在没有步进电机的情况下,可以通过查看led的闪烁来判断步进电机是否处于工作状态下),K2键可控制步进电机的旋转方向,K3键控制步进电机的旋转与停止。
K1 控制档位,档位通过数码管最右一位显示,数字越大转速越慢,同时 LED 闪烁速度越慢。
这家伙抖得好厉害,不知道正常不正常。
SM = stepping motor ?
4. 多功能电子时钟
用STC ISP打开并下载HEX文档。
默认下载后显示时分秒信息,
按下key3,进行年月日设置,默认对月进行设置,显示01-02.-03,02右下角的小数点表示当前设置的是月(小数点亮对应位置可以通过功能键的上下键进行值调节)。按功能键的上或下键调节值大小。
按功能键的左(年)、右(日)、确认键(月),结合上、下键进行值调节。
按下key3,完成年月日的设置,右下角的小数点全都不亮,表示退出了设置的模式)。
按下key2,进行时分秒设置,默认对分进行设置。按功能键的上或下键调节值大小。
按功能键的左(时)、右(秒)、确认键(分),结合上、下键进行值调节。
按下key2,完成时分秒的设置。
按下key1,时钟依靠自身的晶振跑起来。
长按key1,显示年月日-星期。松开key1,显示当前时钟的时、分、秒。
按下功能键中的确认键结束校时功能测试,显示时钟的时分秒。
按下key3,进行年月日设置,默认对月进行设置。同时分秒设置一样,不再赘述。
按下key2,进行时分秒设置,默认对分进行设置,按下功能键中的确认键(导航键中心)结束闹钟功能测试。
这是目前最差的一个视频,根本听不明白他在讲什么,取消标志位是什么意思?过后再看看原理说明吧。
测试了一下万年历,没毛病,把日期设到今天以后,自动推算出农历和星期:
(注:这儿要补一张照片,现在没网,传不上去)
时钟通病,走秒太快。
5. 可与PC通信的实时时钟
这个玩意儿怎么这么大?一百多兆!
(1)按照“工程建立及下载到开发板整个流程指导.doc”文件将当前目录的Hex文件下载到开发版;
(2)默认最右边数码管显示当前的时间;
(3)打开实时时钟工程文件中的“SerialRTC(PC上位机无需安装QT)”,即是上位机的程序,会出现如下图所示的,当然图中的时间会不同。上位机程序选择COM3(实验的时候不同电脑会不一样),波特率设置为9600,打开串口就可以观察时间并完成时间的校准。
今天感觉心烦意乱的,一点儿也不想看这些烦人的东西。
关键是看不明白。
讲真,我觉得他这个课程安排得很不合理,直接给你一个做好的案例,有什么用啊?根本看不懂他里面的原理说明,我觉得要先去补充一下相关知识,今天先到这里吧。单片机是什么,51单片机又是什么?我决定先弄明白这些东西。
单片机是啥?
根据百度的结果,我觉得可以这样总结:
单片机首先是一块芯片,它内部集成了 CPU,RAM,ROM,IO口,等等,从而一块芯片就相当于一个小型计算机。
而51单片机是对所有兼容 Intel 8031 指令系统的单片机的统称。
COM 是啥?
COM接口是指 cluster communication port 接口
CH340
USB 转 串口芯片。
之前让安装了 CH340 的驱动,但是却完全不说明为什么,有什么用。
学习板上是 CH340G,G是封装类型的标志。
待续。还是先把实例做完,有些器件是限时供应的。
6. 电子秤
用STC ISP打开并下载HEX文件;
按下按键1,则进行清零功能;
往托盘上放物体,则可重数码管上读出该物体的重量;
视频中有个1000g 的砝码用来验证,可是没给我发砝码啊?
我手头有什么质量已知的物体吗?
我想了半天,手机应该有参数的,于是我上华为官网查询了手机的相关参数:
官网参数约 152g ,称出来 233g(没有外壳,没有贴膜,没有任何配件,最多沾了点手上分泌的油脂)。
虽然也说了实际重量可能不同,虽然也说了电子秤可能有误差。
我觉得这个差得还是有点多。
又想到了,一瓶矿泉水 500ml,约500g。
可是我手头没有。(泣)
7. 超声波测距
(1)把测距模块HC-SR04插入右侧数码管下的EXT四个孔中,发射超声波的装置朝向板子的外侧,一定要插牢。
(2)用STC ISP打开工程中的HEX,并下载。
(3)把测距模块朝向需要测距的物体, 右侧四位数码管显示了测量的距离(单位:毫米)。
注意:测距范围(500px~10000px),超出范围数码管显示零。
px又是个什么单位
实际来看,好像距离很近的时候(大概 2cm 以内)测得不准,远一点的话感觉测量结果还是符合目测距离的。
8. 倒车雷达
程序运行效果说明:程序中距离显示分为七个阶段:
①distance>800mm②500mm<distance<800mm③300mm<distance<500mm
④100mm<distance<300mm⑤70mm<distance<100mm⑥40mm<distance<70mm
⑦distance<40mm。
当距离distance不断减小时,蜂鸣器响声越来越急促。
9. 基于Andriod的数据采集系统
不好搞,APP老闪退。
10. RFID 读卡器
1、 将RFID读卡器照着下面图片与STC开发板连接好(注意将STC开发板断电了之后再与读卡器连接)
2、 通过ISP软件,将RFID-test文件下的RFID.hex文件下载到开发板中
3、 点击文件,打开上位机,界面如下:
4、 首先点击检测串口,会显示检测到的串口;接着将波特率设为9600;数据位选择8位;校验位为无校验位;停止位选择一位。如下图所示:
5、 串口设置完成之后,点击打开串口,就可以执行下面的操作
6、 首先把校园卡放到读卡器上:
7、 选择基本操作,在基本操作里面,我们可以读卡号、读卡里某个地址的数据、还可以往卡里的某个地址里面写数据【每次操作涉及到的寄存器配置都会显示到右边的“寄存器变换值”的边框里面,这些对寄存器的配置其实是下面的STC开发板操作的,我们只是将STC板的操作显示到了上位机上,呈现给大家看】:
(1)、读卡号:点击“读卡号”,上位机就会显示读到的卡号,另外右边的“寄存器变化值”方框里面会显示读卡号的时间、读到的卡号等等
(2)、**读数据**:输入块地址(如20),输入密钥A:ff ff ff ff ff ff ,点击“读数据”,就会将读到的数据显示在“数据”的框框里面,同时,在右边的“寄存器变化值”方框里面可以看到执行“读数据”这个操作时,下位机需要往哪些寄存器里面写入哪些数值:
(3)、**写数据**:输入块地址(如20),输入密钥A:ffff ff ff ff ff ,输入你想往这个块地址写入的数据:如0101 01 00 00 00 00 00 00 00 00 00 00 00 00 00,点击“写数据”,就会将数据写入到这个块地址里面,同时,在右边的“寄存器变化值”方框里面可以看到执行“写数据”这个操作时,下位机需要往哪些寄存器里面写入哪些数值:
(注意:对于湖南大学校园卡来说,可以写入数据的块地址不包括****03+4i****,****i****∈****[1****,****15]****的这些块地址,如块地址****23****就不可以,因为这些块地址是被保护的区域,将它们改为其他值可能会导致卡被锁死)
为了证明真的将数据写到块地址里面了,我们可以再一次点击“读数据”,查看20这个块地址的数据,如下图:可以看到块地址20的数据由原来的0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00变成了现在的01 01 0100 00 00 00 00 00 00 00 00 00 00 00 00,这就说明数据已经被正确写入到块地址里面
8、 选择自定义脚本操作:
(1)、我们可以通过运行一个脚本来执行相关的操作,如读卡号、读数据、写数据。脚本的格式如下:
读卡号:在方框里面写入命令,然后点击“运行脚本”,可以从右边的“寄存器变换值”看到读到的卡号等:
读数据:在方框里面写入命令,然后点击“运行脚本”,可以从右边的“寄存器变换值”看到“读数据”涉及到的寄存器操作以及告知我们读取数据成功:
连续读数据:我们可以连续读好多个块地址的数据,比如我想读20、21、22这三个块地址的数据,就可以在方框里面写入一下命令,然后点击“运行脚本”
- 写数据:在方框里面写入命令,然后点击“运行脚本”,可以从右边的“寄存器变换值”看到“写数据”涉及到的寄存器操作以及告知我们写入数据成功:
(2)、我们还可以将写的脚本保存成.txt文件,然后下次再打开这个文件,就可以直接运
行这个脚本直接执行相关操作了,不需要再重新写脚本:如我写了一个“读卡号”脚本,
然后点击“保存脚本”,这样子就将这个脚本保存成test.txt文件
然后我再点击“打开脚本”,选择test.txt这个脚本,该脚本的内容就会显示在方框
里面,接着点击“运行脚本”,就可以在右边的“寄存器变换值”方框里面看到读
到的卡号:
(2)、功能展示:模拟了一个充值、扣款与显示余额的功能(注意,不是真的往卡里面充钱了,也不是真的扣了卡里面的钱,只是往某个没有用的块地址里面写数据而已,那个块地址并不是卡里面真正被使用的充值地址)
点击“查看余额”,可以看到现在余额为100:
往“操作框”里面写“100”,点击“充值”,显示“充值成功”之后,代表往卡里面充值了100
这时候再点击“查看余额”,可以看到“操作框”里面显示了200,说明刚刚真的往卡里面充了100
往“操作框”里面写入10,然后点击“扣款”,显示“扣款完成”之后,代表从卡里面扣了10
这时候再点击“查看余额”,可以看到“操作框”里面显示了190,说明刚刚真的扣了卡里面的10
如果能找到充值的地方岂不是可以无限充值了。ヾ(≧O≦)〃嗷~
11. 双通道电压表
用ISP下载hex文件后,P1_0相应的电压将显示在数码管左边三位,P1_1相应的电压数据显示在右侧三位。
测干电池,两边都是 1.49 V
顺便测了一下 USB 的 VBus 引脚,4.99V