基于51单片机的矩阵计算器设计

      当初本科的毕业设计不是很完美,一直想把它完善一下,这学期刚开始有点时间,就以一个小项目的方式,综合自己这一年多来的代码阅读收获,重写了这个工程。

一,平台的重新搭建

Ø  在win7上重新安装了proteus7.8用于仿真阶段的测试,并从以前的资料中找到了仿真模型;

基于51单片机的矩阵计算器设计_第1张图片

Ø  为了生成单片机可执行文件,选择使用了Ubuntu系统下的sdcc编译器,安装使用都很简单(想多在Ubuntu下进行编程),参考http://blog.csdn.net/adam_embedded/article/details/45310325;

Ø  字模提取软件,用于各种字符码的提取;

基于51单片机的矩阵计算器设计_第2张图片

二,仿真代码重写

Ø  仿照之前见过的比较系统的工程目录,创建了自己的工程目录:

基于51单片机的矩阵计算器设计_第3张图片

Ø  模仿C++类的方式,按照不同的功能,将之前冗杂的单个工程文件分成了几个分开的功能文件:

基于51单片机的矩阵计算器设计_第4张图片

基于51单片机的矩阵计算器设计_第5张图片

Ø  每个.c实现不同类的功能:

keyboard_function:

lcd_function:

基于51单片机的矩阵计算器设计_第6张图片

core_function:

基于51单片机的矩阵计算器设计_第7张图片

三,实验效果

       完成了相加,相乘,求模,求转置的功能,求逆运算因为会牵扯到小数运算和显示,并未将其放入该工程,以下是主要的显示效果:

  

 基于51单片机的矩阵计算器设计_第8张图片   基于51单片机的矩阵计算器设计_第9张图片  

基于51单片机的矩阵计算器设计_第10张图片   基于51单片机的矩阵计算器设计_第11张图片  

四,项目缺陷

Ø  由于屏幕尺寸问题,局限在3*3的矩阵计算上;

Ø  没有删除错误输入的清除功能(待实现);

Ø  较小的RAM使得很容易内存不足,程序编写受到限制(待配合硬件加入外部存储器);

Ø  单循环机制,没有有效的使用中断来避免各种意外情况(待将键盘扫面、功能选择等函数写入中断函数);

                                                              

                                                               2018.3.15

你可能感兴趣的:(学习笔记)