网学网电气工程与自动化类别编辑为广大网友搜集整理了:单片机仿真电子温度计的设计绩等信息,祝愿广大网友取得需要的信息,参考学习。
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
3.软件部分 3.1 软件分析 本程序是利用汇编语言进行编程,因为汇编语言可以直接翻译成机器语言,能很好的控制系统的每个工作状态,本设计软件编程并不是很复杂,所以没有选用C语言来编[6]。 本程序采用了查表的方法进行温度换算,保证了测温的精确性。片内主要RAM资源如下: 30H为采样数据区缓冲器首址; 40H为A/D转换后二进制数据存放单元; 43H存放BCD码的十位和个位,44H存放百位; 49H~4CH为显示缓冲区。 A/D转换采用查询方式进行编程,通道寄存器地址为7FFOH。整个程序由A/D转换程序、二到十进制转换程序、显示缓冲区地址分配程序、判断AD590所测温度是否超限子程序、查表程序、显示程序、延时程序、报警子程序等组成。 3.1.1采集 温度传感器采集的信号,转换成数字信号后,单片机接收到启动命令,开始读取数据,并保存到寄存器中。 read: movx @dptr,a ;启动A/D转换 nop nop nop call wait ;等待A/D转换 movx a,@dptr ;读转换结果 mov @r0,a ;保存转换结果 3.1.2延时 计算机工作时,是一条一条地从ROM中取指令,然后一步一步地执行,规定:计算机访问一次存储器的时间,称之为一个机器周期。一个机器周期包括12个时钟周期。设一个单片机工作于12M晶振,它的时钟周期是1/12(微秒)[2]。它的一个机器周期是12*(1/12)也就是1微秒。MCS-51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较慢,得要2个机器周期,还有两条指令要4个机器周期才行。为了衡量指令执行时间的长短,又引入一个新的概念:指令周期。所谓指令周期就是指执行一条指令的时间。INTEL对每一条指令都给出了它的指令周期数,如DJNZ指令是双周期指令。下面来计算程序中的延时。首先必须要知道晶振的频率,本设计所用的晶振为6MHz,则一个机器周期就是2微秒。而DJNZ指令是双周期指令,所以执行一次要4个微秒。 dll: mov r7,#015h ;延时子程序 dl1: mov r6,#01ah dl2: djnz r6,dl2 djnz r7,dl1 ret 3.1.3显示 显示是采用动态扫描,P1口控制数码管段选,将需要显示的数值通过这个口传出去。P3口控制数码管位选,这样通过段选和位选能很好的让它们循环流动显示。它们的交替变化时间很短,虽然是动态显示,但在我们看来还是静止的,不会看到跳动等现象。 |
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |