微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机简单实现图形显示的方法

基于单片机简单实现图形显示的方法

时间:08-23 来源:互联网 点击:

显示不同的图形或改变图形的大小或者是改变图形闪烁的频率。本段程序的按键判断可用比较法来完成,当有按键按下时,程序会进入中断,我们判断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所示。

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top