单片微型机实时控制的简单动画制作

单片机实验

28人已加入

描述

单片微型机实时控制的简单动画制作
一、 实验目的
1. 掌握Intel MCS-51 系列单片机的内部构造,接口技术,扩展技术及其汇编语言特点;
2. 初步掌握应用仿真器来调试开发单片机用户程序的技术;
3. 通过实验提高综合调试各种仪器的能力,培养发现、分析、解决问题的能力。
二、具体要求
1. 设计一个以单片机( 8031)为核心、应用动态扫描原理、实现一幅静态画面的显示;
2. 以上面显示为基础实现简单的画面移动(左移,右移,上移,下移);
3. *设计一个画面旋转的显示,如一条直线绕一固定点做旋转的动画;
4. *综合运用查询及中断功能实现即时控制的动画显示。
三、实验器材
1. PC 机一台;
2. 仿真器(DSICEII)开发系统装置一套;
3. 稳压电源一台;
4. 示波器一台;
5. 万用表一只
四、实验原理
1、单片微型计算机
单片微型计算机(简称单片机: Single-chip Microcomputer ),就是把中央处理器
CPU(Central Processing Unit),随机存取存取器RAM(Random Access Memory),只读存储
器ROM (Read Only Memory ) ,定时器/计数器以及IO(Input /Output)接口电路等主要计算机
部件集成在一块集成芯片上的微型计算机。从其组成和功能上看,已是具备了计算机系统的
含义,其典型结构如图6-1 所示:
2、 动态扫描显示
实验电路中是由一个16´32 的LED 点阵构成,以这些LED 作为显示画面的象素显示一
幅分辨率为16´32 的图象。如果显示的是汉字,则可显示二个16´16 的汉字。由于8031 的
DataBus 只有8bits,因此无法一次显示一幅16´32 的图象或16´16 的汉字;但是单片机的工
作频率较高(实验中采用6MHz 晶振),利用人眼的视觉暂留效应,只要不断地向点阵送数
据,就可实现整幅画面的显示。

微型机

微型机

3、 *Bresenham 算法
Bresenham 算法解决了显示一条直线的问题。实验中要求有直线的旋转画面,因此要用
到显示屏上的画线技术。设直线从(x, y)画至(x+Dx, y+Dy), 定义误差项d,置其初值为零,
且直线的斜率的绝对值小于1,即|Dy/Dx|<1,Bresenham 算法可以由下列公式描述:
第一象限:
当di³0 x=x+1
y=y+1
di+1=di+2Dy-2Dx
当 di<0 x=x+1
y=y
di+1=di+2Dy
第二象限:
当di³0 x=x-1
y=y+1
di+1=di+2Dy-2Dx
当 di<0 x=x-1
y=y
di+1=di+2Dy
第三象限:
当di³0 x=x-1
y=y-1
di+1=di+2Dy-2Dx
当 di<0 x=x-1
y=y
di+1=di+2Dy
第四象限:
当di³0 x=x+1
y=y-1
di+1=di+2Dy-2Dx
当 di<0 x=x+1
y=y
di+1=di+2Dy
当直线斜率的绝对值大于1时,需将公式中的x 和y 相互调换,具体资料可参考“计算机图形学”相关书目。
由于实现一条直线的旋转需大量的象素的重复计算,因此子程序的调用和数据寄存器6264 的使用是必需的。

4、硬件框图及说明
图6-2 为8031 单片机、数据存储器6264 及其他外围器件组成的小系统框图,图6-3 为
电原理图。
(1) 6264 为单片机8031 扩展的数据存储器,其数据口8 位,直接挂在8031 的
P0 口上,地址线13 根,低8 位由P0 口控制,高5 位由P2.0—P2.4 控制。由
于8031P0 口数据线(DB)和地址线(AB)采用分时复用技术,故采用三态
门245 和锁存器573 将其锁存。

微型机

微型机

(2) LED 点阵的列驱动数据由8031 的P0.0— P0.7 输出,送至锁存器573,作为
列驱动器。由于数据线仅有8 位,但系统有32 列,因此选用4 片锁存器573,
分时传送数据,其片选由138 和04 共同组成。
(3) LED 点阵的行驱动数据由8031 的P1.0— P1.3 输出,经4-16 线译码器4514
译码送至2 片2003 ,作为行驱动器。改变P1.0—P1.3 的值即可实现逐行扫
描。由于考虑到4514 的驱动能力限制及负载的电感效应,故系统采用了2003
(2003 每一路都是一个达林顿驱动电路,当输入高电平时输出电阻很小,能
吸收较大电流;当输入低电平时输出管截止,流过电流很小)。
(4) P2.5— P2.7 送至3-8 译码器138 译码,并与写信号WR进行与非操作,对6264
及列驱动器573 进行片选,从而形成它们的访问地址:
地址范围 访问器件
0000H~1FFFH 6264
2000H~3FFFH 第一片74LS573
4000H~5FFFH 第二片74LS573
6000H~7FFFH 第三片74LS573
8000H~9FFFH 第四片74LS573
(5) 为显示整个画面,必须对象素进行有序、逐行、不停地扫描,并加入适当的
延时,列选与行选均以“1”为有效位,即要使某一象素点亮,必须使该象素
的行数据和列数据均为“1”。
2. 软件说明
本实验以单片机原理为基础,要求较熟练掌握单片机软硬件有关知识,详细说明请参
见“单片机”专业资料,这里只对本实验中用到的典型程序进行说明。
(1)LED 驱动显示
MOV P1,#00H ;选中第一行
MOV DPTR,#2000H ;第一片573 的地址
MOV A,#07H ;(00000111)选中3 列
MOVX @DPTR,A ;输出列选
(2)6264 使用举例
MOV A,#24H
MOV DPTR,#0000H
MOVX @DPTR,A ;将A 中的内容(24H)写入6264 的0000H 单元

MOV DPTR,#0000H
MOVX @DPTR,A ;将6264 的0000H 单元中的内容读入A
(3)静态画面的程序框图(如图6-4 所示)
3、 实验步骤
1. 熟悉电路原理,分析电路图,弄清地址、分配。
2. 根据MCS-51 指令系统编制系统软件。
3. 连接硬件线路,确保无误后接通电源。
4. 利用开发装置进行软硬件的调试。
5. 总结,写出体会与心得,提出改进建议。
注:带“*”部分为选做要求。

微型机

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分