盒子
盒子
文章目录
  1. 5月18日
  2. 5月19日
  3. 5月20日
  4. 5月21日
  5. 5月22日
  6. 5月25日
  7. 5月26日
  8. 5月27日

单片机实习日记

I know nothing but my ignorance.

5月18日

今天是单片机实习的第一天,因为疫情原因变成了线上开展。

上午,老师把六个选题都一一讲解了一遍,并告诉我们一些在实习过程中可能会出现的一些问题和注意事项。老师讲完后,我们就开始组队和选题了。

在经过一番并不激烈的讨论后,我们组选择了第二个项目:数字频率计设计

一、基本要求:

测量待测 TTL 电平信号的频率

  1. 频率范围:10 Hz ~ 50kHz,全测量范围误差不大于 1%;
  2. 用液晶屏 LCD1602 显示数值和单位,可显示频率及周期;
  3. 数据刷新率每秒三次以上;
  4. 在同一台单片机上自行设计测试用信号源;
  5. 通过串口通信在远程单片机(仿真环境)显示测量结果。

二、扩展要求

  1. 占空比测量
  2. 在保证数据刷新率和精度的基础上拓展测量频率范围

下午,我们组四个人开始查文献讨论总体方案和分工。又是一番并不激烈的讨论后,我们确定好了分工。我选择了串口通信功能的实现。

5月19日

上午确定分工合作的一些细节部分的设计,资源的分配,引脚的功能等等。然后,听老师讲一些知识点。

下午,我开始查找串口通信的资料文献。最终确定采用异步通信的方式实现串口通信。接着开始着重异步通信方面的资料查询。经过一番并不困难的翻阅后,大致了解了异步通信的 4 种方式以及定时器的知识。

52单片机有三个定时器/计数器,与串口通信有关的就是 T1定时器了。定时器/计数器的实质是加 1 计数器(高 8 位 和低 8 位 两个寄存器组成)。TMOD 是确定工作方式和功能的寄存器;TCON 是控制 T0、T1 的启动和停止及设置溢出标志的寄存器。

TMOD:

位序号 D7 D6 D5 D4 D3 D2 D1 D0
位符号 $GATE$ $C/\overline{\text{T}}$ $M1$ $M0$ $GATE$ $C/\overline{\text{T}}$ $M1$ $M0$

D7~D4T1 定时器,D3~D0T0 定时器。$C/\overline{\text{T}}$ 为 0 时为定时器模式,为 1 时为计数器模式,M1M0 是工作方式选择位。

M1 M0 工作方式
0 0 方式0,为13位定时器/计数器
0 1 方式1,为16位定时器/计数器
1 0 方式2,8位初值自动重装的8位定时器/计数器
1 1 方式3,仅适用于 T0,分成两个8位计数器,T1停止计数

TCON

位序号 D7 D6 D5 D4 D3 D2 D1 D0
位符号 $TF1$ $TR1$ $TF0$ $TR0$ $IE1$ $IT1$ $IE0$ $IT0$

5月20日

经过昨天一天的查阅学习,已经对串口通信有了比较全面的了解。所以,今天就是先把串口通信的一些必要环境准备好。下载串口助手和虚拟串口工具,然后测试串口助手。在一番并不花里胡哨的操作后,基本操作都会了。接着就是准备仿真下的串口测试了。在 protues 上,点来点去,又是一番行云流水且不花里胡哨的操作后,仿真环境也搭建好了。然后开始敲代码,在 keil 这个外表朴实无华但功能强大的软件上,敲下第一个简单串口通信的代码。然后结合串口助手观察效果。这样一个发送单个字符的例子就测试成功了。

5月21日

今天是周四,上午老师照常开了小小的线上例会。交我们一些小小的调试技巧之类的。在昨天的基础上,今天继续修改代码,实现发送和接收功能。上午把整个代码框架写了出来,本以为会是顺顺利利的一天。但是下午的调试,着实不太顺利。先是,接收的数据并不是期望的数据,在一顿微操后,发现是接收数据的数组出现了溢出现象。调好后,又发现接收的数据有些错位了。又是一顿 Debug 后,自己定义一个简单通信协议,在数据头尾加上标志位,以确保接收方正确接收到期望数据。来来回回这样折腾后,仿真串口通信是没有问题了。

5月22日

一觉醒来还是周五,是的,昨晚熬到了十二点。精力显然有些不充沛的我,还是打开了电脑,接着干了。队友那边的频率测量 和LCD 显示功能已经就绪了。今天可以整一块测试一下了。拿到他们的代码后,便开始调试。红红火火恍恍惚惚,就这样一顿朴实无华而实用的 CV大法过后,加以小小微操作为辅助,就调好了。

5月25日

短暂的周末一晃就过去了。新的一周,继续干。现在只剩下信号源了。查资料,敲代码,仿真。陷入循环状态。进度十分缓慢。浑浑噩噩,一天就这样结束了。

5月26日

距离实习结束,迫在眉睫。但是,实在有些精神疲惫了。打开和昨天一样的软件一样的文件,开始改代码。一番操作,以为成了。结果,一到高频信号,就不受调制了,无法准确控制信号频率的改变。

5月27日

今天开始在开发板上进行真机测试,果然不出所料,仿真和真机不一样。一天的疯狂调试,勉强调好,差强人意的样子。

支持一下
  • 微信扫一扫
  • 支付宝扫一扫