首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于单片机简单实现图形显示的方法
来源:本站整理  作者:佚名  2011-08-25 07:15:00



3软件设计

当单片机上点复位后,Po__P3口均输出高电平,所以在上电复位之后,我们首先用程序把所有端口置零,使输出电压为零,从而使镜面处于原始静止位置,并把中断开启,并置一些初始值。

QQ截图未命名1.jpg

当程序开始运行之后就会进入图形显示的选择程序,我们设置一个延时程序,当这段时问内没有按键按下时,单片机按照我们设置的初始值显示一个固定的图形;当这段时间内有按键按下时,程序会根据我们按下的按键赋值,从而显示不同的图形或改变图形的大小或者是改变图形闪烁的频率。本段程序的按键判断可用比较法来完成,当有按键按下时,程序会进入中断,我们判断Pl寄存器中的数据是否为FEH,若是则说明此时P1.0连接的按键按下,此时我们让程序返回执行某一图形的显示程序。图形显示程序是最重要的部分,我们根据对应的按键按下时,从中断程序返回的数值判断出,主程序中应该要执行某个图形的显示程序。图形显示程序中我们首先从直线开始说明,直线显示比较简单,我们想显示一条横线的时候,就从单片机的P2口输出一组从H开始逐渐增大,然后又逐渐减小的值,从而是动力装置得到一个从0逐渐变大再逐渐变小的信号,使其中一个镜面沿中心轴逐渐的向一侧偏转,然后在弹簧的恢复力的作用下渐渐复原,在显示屏上投下一条横线。同样想显示竖线的时候,我们只需要使程序从P2口输出一段&H逐渐变大,然后由大逐渐变小的值即可。

显示一条斜线时,根据函数Y:KX+B可知,当X轴上变化的值已知时,就能算出对应的Y轴的值,我们x轴上的数值从00H开始变大,然后变小时,就能得到对应的Y的值的变化趋势,把这两个值分别从P0口和P2口输出,就会使两个镜子共同转动,使显示的图形呈Y=KX+B趋势。

同样,我们想显示三角形时,任何三角形都是有三条两两相交的有限的直线够成,分别记作Y=KX,+B.,Y,=K,X,+BY= KX+B,我们把X轴的变量从H逐渐变大,再逐渐变小,而Y轴上的值分别按照各自的值在各自的区间内变化一次,从而在P0口和P2口分别输出一组对应的变化信号,使输出的图形显示出三角形。

最后,矩形是由四条有限直线的构成,并且是有两组平行线,我们按照这个规律让X轴和Y轴的数值各自变化一次,即可得到结果。型图形,是由四条相交于一点的直线构成,显示的时候,我们必须首先计算出,相交点的坐标,然后分别按各自的变化规律,从P0口和P2口输出一次就行。圆形显示时,我们首先计算出圆点的坐标然后,按照公式 Xz+Yz:Rz计算出各个点的坐标,进而输出显示即可。

图形的大小的确定,图形的大小是由两个镜面每次变化的最大范围决定,当我们改变每次变化时X的最大值时,就会改变各个图形对应的大小。我们在程序的起始时,给一个中间值,当我们按下变大按键式,在中断程序中改变这个值,主程序中,当X或者Y的值增大到这个值时,开始变小。注意,因为镜面的转动是有限的,超过这个值时,光线就不会被反射,所以当增大按键一直按下,中间值就会一直增大,当达到极限值后,就不在增大。图像变小按键的程序算法也一样,只是变化时,是让中间值变小而已。

图形闪烁的原理,就是利用当我们让入射光线和镜面的夹角小于0。或者是大于90。时,光线就不会被反射到外界了,所以,系统显示时,镜面和 ^射光线的夹角应在0。到90。之间。我们在图形完成一次整体显示时,改变P0和P2口的输出值,使镜面和光线的夹角小于0。或者是大于90。,使外界没有显示,在运行延时程序,程序开始时给一个延时值,通过按键按下时,在中断程序中改变这个延时值的大小,这样当我们不断的按这个按键时,图形的闪烁频率从快到慢,或者是从慢到快。系统程序总体流程图如图2所示。

本设计为单片机应用实例一种可行的方案,但是由于经验和水平有限,在设计中难免存在一些缺陷,还望批评指正。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:24,515.63000 毫秒