一、功用介绍
当呈现静态笑脸图画时,能够操作键盘,键盘按下时,会听到蜂鸣提示音。此刻按下第一个或第二个键,别离显现向左和向上的“小”“石”“山”“庄”和一个笑脸的翻滚字幕的显现,当再次呈现静态的现笑脸时,按下第三个或第四个键,别离下降和进步字幕翻滚的速度。然后,能够再次按下第一个或第二个键,来检测改动速度后字幕翻滚的作用。
二、硬件原理即完成
有关部分的电路图如下:
有关部分电路阐明:
点阵显现部分:CPU的P0.0~P0.7口接8*8LED点阵的COM1~COM8端,操控点阵行的显现;P2.0~P2.7口经过74HC573接8*8LED点阵的RED1~RED8,寄存点阵每行显现的数据。从程序中获取数据后操控点阵的显现。COM端为0,表明该行或许亮起;RED端为1,表明某行该列亮。
按键完成部分:CPU的P3.2~P3.5口别离接KEY1~KEY4,用于接纳从键盘输入的操控信息。KEY等于0,表明该按键按下;不然,没有按下。
蜂鸣器部分:CPU的P3.7接蜂鸣器的BEE口,用于操控蜂鸣器。低电平蜂鸣器蜂鸣,高电平安静。
一、软件原理及完成
1.全体思路
主程序用while循环履行显现和几个分支句子,完成用键盘对翻滚方向和翻滚速度的操控。
翻滚作用原理相似动画片的原理,逐屏显现错位一行或一列的字幕,然后到达横向或纵向翻滚的作用。横向翻滚的完成只需将RED端的数据向右和向左移位,并将每次移位后的数据存储于中心变量中,用于显现输出。纵向翻滚的完成需求循环操控输出数据的开始方位,每次循环输出的开始方位向后移一个元素,然后完成逐行向上翻滚的作用。
用一个全局变量来操控翻滚速度,该全局变量能够经过键盘的操作添加或减小,然后完成键盘操控速度。
程序特色:主程序别离调用子程序,子程序再调用子程序,最多到达了调用三层子程序。这样的子程序嵌套调用能够进步程序代码的重用率,一起使主程序看起来简练、明晰。例如,程序中完成向左翻滚的部分调用了函数disp_moveleft函数,该函数又别离调用了adjust_moveright和adjust_moveleft函数,用于别离完成逐列显现出完好的字符和字符显现彻底后,逐列左移直到悉数移出。
详细的程序部分功用拜见程序源代码中的注释。
2.程序大体流程图如下:
3.程序原代码如下:
#include
#include
uchar code sz[][8]={
uchar code smile[][8]={
uchar temp[8]={0};
uchar time=5;
void delayms(uchar x)
{
}
void delay()
{
}
void disp_dat(uchar x)
{
}