基于8086的电子万年历打印稿 下载本文

yuexiao(); yueda(); zhengdian(); if(t2>9) { t2=0; t1++; } } } } } } } } }

void main() {

outp(IOCON,0x89); outp(IOCON1,0x80); outp(A_CON,0x17); outp(A_0,0x02); btn=inp(IOC); nian(2017); yue(11); tian(30); xingqi(); shi(23); fen(59); miao(59); yue(11);

while(1) {

xiexingqi();

16

xienian(); xieyue(); xietian(); xieshi(); xiefen(); xiemiao(); xiexingqi(); shijianchuli();

} }

第四章 系统实现

4.1 proteus仿真实验

17

图4 Proteus仿真图

2.硬件部分遇到的困难及解决方法

(1)在初次连接好后我们进行了调试,但不能正常工作,经检查有连线错误,改正后可以显示。(对于数码管的动态显示理解不够深刻,传输数据的数据的时候有时候显示不完全)

(2)可以运行工作后,显示乱码,原因是只用了一片8255,用B口输出年月日时分秒和星期,导致数据混乱,所以,之后改为了两片8255。

18

第五章 小结

5.1 设计总结

通过对基于8086的电子万年历的设计,从电路到程序设计,再到对程序的调试,在整个的设计过程中学到了很多。用到了8255A的并行接口,将二进制的控制信息传入8086CPU中处理。在使用8255A接口的时候,都要对其进行初始化,这初始化程序的编写,有助于对这些接口芯片的工作原理的理解。总之,在实验中自己动手,把理论知识用于实践,从中能够学到很多。

5.2 设计存在的问题

初次进行这个课题的设计,由于过程中考虑不全或知识面的狭窄,导致出现一些不足和错误,主要有以下几点:

1.知识积累不足。对实验中的数码管的使用方法存在疑问,不能准确的使用数码管显示数据;写程序代码时,由于知识面的狭窄,会对一些步骤的编写出现错误,需要不断查资料请教教员之后才能够改正过来。

2.设计中最大的难处就是各模块之间的协同关系,有时会出现有的模块工作正常某一模块工作不正常,在不断地查资料与请教教员,调试修改之后,我们终于解决了这些问题。

3、因为军校的特殊环境,组员很少有大片时间来进行实验,只能利用一切能够利用的零碎时间实验,也是进度慢的一大原因。

5.3 心得体会

这次课程设计用了好几个星期,期间我们还要兼顾文化课学习和连队正常工作的运行,但每天在作实验时还是静下心来认认真真的编写汇编代码,学习连接线路芯片以及相关软件程序。在整个实验中,参与成员都有丰富的收获:

1.增强理解,加强实践。在之前的学习中,我们对书本理论知识的学习中对相应的芯片知识不是很了解,在课程设计的过程中,加深了对其的理解,学会了很多有用的电脑软件。在把理论知识用在了实际问题的解答之中,即进一步学会了怎么将理论与实践结合起来解决问题。

19