32X64点阵C程序

32X64点阵C程序
32X64点阵C程序

//最后完成时间:2011年2月1日14:49:32

//Made By:马涛

#include

#include"zimo.h"

#define uchar unsigned char

#define uint unsigned int

#define SPEED 2 //定义速度与速度成反比

#define LIGHT 8 //定义亮度:取值范围0--10

#define NUMBER 10 //定义要显示总32X32汉字个数,计算方法:NUMBER=汉字个数

#define RAD1 0 //0123全为红色0101橙色

#define RAD2 1 //2301全为绿色

#define GREEN1 2 //0231上红下绿

#define GREEN2 3 //2103下红上绿

uchar word=0,col=0,coll=0,disrow=0;//wor为要显字变量,col为位移变量,col1为字节偏移量,disrow为行变量

uchar BUFF__UP[17]; //上半屏显示缓冲上下缓冲字节数取值=[2*板点阵宽度/8]+1比较保险,即两倍板的点阵字节数.

uchar BUFFDOWN[17]; //下半屏显示缓冲

uchar R_G[6]; //调整颜色

sbit G1=P2^0;

sbit G2=P2^1;//红色数据

sbit R1=P2^2;

sbit R2=P2^3;//绿色数据

sbit CLK=P2^4;

sbit STB=P2^5;

sbit OE =P2^6;//74HC138使能:低有效

uchar Recive=1;

//根据列指针由双字节合并为单字节的子程序模块

uchar Combine_2byte(uchar h1,uchar h2)

{

uchar T_date,tempcol;

tempcol=coll;

T_date=(h1>>tempcol)|(h2<<(8-tempcol));

return T_date;

}

//分别装载上、下半屏点阵数据

void Load_one_line(void)

{

BUFF__UP[0]=Table[word][disrow*4+0];//装载上半屏一线点阵数据

BUFF__UP[1]=Table[word][disrow*4+1];

BUFF__UP[2]=Table[word][disrow*4+2];

BUFF__UP[3]=Table[word][disrow*4+3];

BUFF__UP[4]=Table[word+1][disrow*4+0];

BUFF__UP[5]=Table[word+1][disrow*4+1];

BUFF__UP[6]=Table[word+1][disrow*4+2];

BUFF__UP[7]=Table[word+1][disrow*4+3];

BUFF__UP[8]=Table[word+2][disrow*4+0];

BUFF__UP[9]=Table[word+2][disrow*4+1];

BUFF__UP[10]=Table[word+2][disrow*4+2];

BUFF__UP[11]=Table[word+2][disrow*4+3];

BUFF__UP[12]=Table[word+3][disrow*4+0];

BUFF__UP[13]=Table[word+3][disrow*4+1];

BUFF__UP[14]=Table[word+3][disrow*4+2];

BUFF__UP[15]=Table[word+3][disrow*4+3];

BUFF__UP[16]=Table[word+4][disrow*4+3];

BUFFDOWN[0]=Table[word][64+disrow*4+0];//装载下半屏一线点阵数据BUFFDOWN[1]=Table[word][64+disrow*4+1];

BUFFDOWN[2]=Table[word][64+disrow*4+2];

BUFFDOWN[3]=Table[word][64+disrow*4+3];

BUFFDOWN[4]=Table[word+1][64+disrow*4+0];

BUFFDOWN[5]=Table[word+1][64+disrow*4+1];

BUFFDOWN[6]=Table[word+1][64+disrow*4+2];

BUFFDOWN[7]=Table[word+1][64+disrow*4+3];

BUFFDOWN[8]=Table[word+2][64+disrow*4+0];

BUFFDOWN[9]=Table[word+2][64+disrow*4+1];

BUFFDOWN[10]=Table[word+2][64+disrow*4+2];

BUFFDOWN[11]=Table[word+2][64+disrow*4+3];

BUFFDOWN[12]=Table[word+3][64+disrow*4+0];

BUFFDOWN[13]=Table[word+3][64+disrow*4+1];

BUFFDOWN[14]=Table[word+3][64+disrow*4+2];

BUFFDOWN[15]=Table[word+3][64+disrow*4+3];

BUFFDOWN[16]=Table[word+4][64+disrow*4+3];

}

//发送屏一线点阵数据

void Send_one_line(void)

{

char s;

uchar TEMP0,TEMP1,i,inc;

if(col<8) inc=0;

if(8<=col&&col<16) inc=1;

if(16<=col&&col<24) inc=2;

if(24<=col&&col<32) inc=3;

for(s=0+inc;s<=8+inc;s++)

{

TEMP0=Combine_2byte(BUFFDOWN[s],BUFFDOWN[s+1]); TEMP1=Combine_2byte(BUFF__UP[s],BUFF__UP[s+1]);

for(i=0;i<8;i++)

{

R_G[0]=~(TEMP1>>i)&0x01; //取出最高位

R_G[1]=~(TEMP0>>i)&0x01; //取出最高位

R_G[2]=0xff;

R_G[3]=0xff;

R_G[4]=0x00;

R_G[5]=0x00;

R1=R_G[RAD1];

R2=R_G[RAD2];

G1=R_G[GREEN1];

G2=R_G[GREEN2];

CLK=0;

CLK=1; //移位时钟

}

}

}

//亮度调节延时

void delay(unsigned int i)

{

unsigned int j;

for(;i>0;i--)

{for(j=5;j>0;j--)

;

}

}

//亮度调整

void PWM_LIGHT(uchar p)

{

OE=0;

delay(p);

OE=1;

delay(10-p);

}

void UART() interrupt 4

{

EA=1;

if (RI) //RI接受中断标志

{

RI=0; //清除RI接受中断标志

Recive=SBUF; //SUBF接受/发送缓冲器

//PWM_LIGHT(Recive);

}

EA=1;

}

//主函数入口

void main(void)

{

uchar i,move;

SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1

TMOD|= 0x20; //定时器工作方式2

PCON|= 0x80;

TH1 = 0xE6; // //baud*2 /* 波特率9600、数据位8、停止位1。效验位无(12M)

TL1 = 0xE6;

TR1 = 1;

ES = 1; //开串口中断

EA= 1; // 开总中断

TR1=1; //启动定时器1

PS=1; //串口中断优先

R1=0;//数据初始化

R2=0;

G1=0;

G2=0;

while(1)

{

for(col=0;col<32;col++)//循环32次,点亮并移动一个汉字,步进是一位,

{

coll=col%8;

move=(col-24==0)?120:SPEED;//移动几个字后停留一段时间,[有一点bug,用%不对,用—可以]

for(i=0;i

{

for(disrow=0;disrow<16;disrow++)//扫描16行

{

Load_one_line();//装载上下两屏各一线点阵数据

Send_one_line();//发送一线点阵数据

STB=0;

STB=1; // 输出锁存

P1=disrow;// 行扫描LIGHT

PWM_LIGHT(LIGHT);

}

}

}

word=word+1;// 一个汉字移动后,指向下一个汉字if(word>=NUMBER)

{

word=0;//移动完NUMBER个汉字后重新开始

}

}

}

数字钟电路pcb设计

¥ 摘要 本设计针对数字钟PCB板设计较为复杂的问题,利用国内知名度较高、应用最广泛的电路辅助设计软件protel99se进行了电路板的设计。本设计介绍了各部分电路的构成及准确完成了数字钟PCB电路板的设计。本设计数字钟原理图分析入手,说明了在平台中完成原理图设计,电气检测,网络表生成,PCB设计的基本操作程序。数字钟的主要电路是由电源电路、显示电路、校时电路、晶体振荡电路组成。PCB是电子元器件的支撑体,是电子元器件电气连接的提供者。PCB的设计是以电路原理图为根据,实现电路设计者所需要的功能。优秀的版图设计可以节约生产成本,达到良好的电路性能和散热性能。 关键词:数字钟;PCB;原理图;芯片 — 【

目录 前言 (1) 第一章@ 第二章绪论 (2) 数字钟的研究背景和意义 (2) 数字钟的发展和趋势 (2) 第二章系统电路的绘制 (3) 电路组成方框图 (3) 电路原理图制作 (3) 原理图环境设置 (4) 绘制原理图 (5) $ 电气规则检查及网络表输出 (7) 原理图分析 (10) 晶体振荡器 (10) 分频器 (11) 计数器电路 (12) 显示和译码电路 (12) 电源电路 (13) 第三章电路板PCB设计 (14) , PCB设计规范 (14) PCB设计流程 (17) 输出光绘文件 (21) PCB制件作 (23)

心得体会 (25) 参考文献 (26) 附图 (27) 附表 (28) "

前言 PCB(Printed Circuit Board),中文名称为印制线路板,简称印制板,是电子工业的重要部件之一。几乎每种电子设备,小到电子手表、计算器,大到计算机,通讯电子设备,军用武器系统,只要有集成电路等电子元器件,为了它们之间的电气互连,都要使用印制板。在较大型的电子产品研究过程中,最基本的成功因素是该产品的印制板的设计、文件编制和制造。印制板的设计和制造质量直接影响到整个产品的质量和成本,甚至导致商业竞争的成败。 Protel系列电子设计软件是在EDA行业中,特别是在PCB设计领域具有多年发展历史的设计界软件,由于其功能强大,操作简单实用,近年来成为国内发展最快。 Protel 99已不是单纯的PCB(印制电路板)设计工具,而是由多个模块组成的系统工具,分别是SCH(原理图)设计、SCH(原理图)仿真、PCB(印制电路板)设计、Auto Router(自动布线器)和FPGA设计等,覆盖了以PCB为核心的整个物理设计。该软件将项目管理方式、原理图和PCB图的双向同步技术、多通道设计、拓朴自动布线以及电路仿真等技术结合在一起,为电路设计提供了强大的支持。 随着计算机事业的发展,在信息化时代,电路设计中的很多工作都可以用计算机来完成。这样就大大减轻了设计人员的体力劳动强度,并且保证了设计的规范性准确性。而Protel99SE技术已越来越为人们所关注,人们利用protel99SE绘制各种原理图,进而制作出各种各样的科技产品已经成为当今世界的一个不可或缺的组成部分,所以说Protel99SE技术已越来越显得重要。

微机接口实验-16x16点阵显示

实验04·LED显示器 王梦硕 0930******* 实验目的: 在理解LED点阵工作原理的基础上,实践使用点阵显示字符。 实验原理: 1·点阵式显示器: 发光二级管排列成矩阵,由亮与暗来产生字符或图形。 每一样的阳极连在一起,每一列的阴极连在一起,如右图所 示。 点阵显示器每一列的阴极连在一起,对每一列而言相当 于一个共阴显示器。同时每一行的阳极连在一起,相当于七 段显示器的比划。可采用动态显示电路,以笔画锁存器控制 行信号,以位锁存器控制列信号。 2·74HC595 实验中使用两片8位输出锁存移位寄存器74HC595(三态输出、串入并出),将单片机I/O口发出的串行数据转换为并行数据LD_QA~LD_QP,作为16x16 LED点阵显示器的行线,使用另外两片8位74HC595作为16x16 LED点阵显示器的列线LD_1~LD_16。当行输出高电平、列输出低电平时,可以点亮点阵。74HC595的工作时序图和推荐的连接方法如下: 下图中: ?LD-QA~LD-QP:点阵行控制信号 ?LD-1~LD-16:点阵列控制信号 ?SER(14脚):串行数据输入端 ?-SCLR(10脚):低电平时将移位寄存器的 数据清零。通常将它接Vcc。 ?SCK(11脚):上升沿时将串行数据移入移 位寄存器。 ?RCK(12脚):上升沿时移位寄存器的数据 锁存入数据寄存器。 ?-G(13脚): 高电平时禁止输出(高阻态)。

实验内容: 在16×16LED点阵上分别用静态方式和滚屏方式显示自己的姓(行扫描)。 两个实验部分的电原理图是相同的,如下所示:

1·静态方式: 流程图: 程序代码: L_DAT_H BIT P1.0 L_DAT_L BIT P1.1 L_STR BIT P1.2 L_CLK BIT P1.3 L_OE BIT P1.4 ROWH EQU 40H ;字模信号(顺向取膜,高位在前)ROWL EQU 41H SELH EQU 42H ;行扫描信号

简易电子时钟的设计

单片机课程设计报告设计题目:简易电子时钟的设计 院别: 专业班级: 学号:

姓名: 指导教师: 摘要 通过一学期单片机的学习,对其已经有了初步的了解,但是随着社会的不断发展,单片机的应用正在不断地走向深入,它特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。我们也借此课程设计的机会,对单片机有更深一步的了解与学习。 本次课程课程设计的目的是设计一个简易的电子时钟,通过一个8位共阴极数码管进行时、分、秒的显示,另外设置7个按键,一个用来调整小时,一个用来调整分钟,一个开关控制是否调整时间。 关键词:AT89C51,数码管,按键,DS1303时钟芯片

1.概述 本设计是锻炼我们的自学能力合作能力,依靠团队的力量去完成一项具体的任务系统的训练了所学知识,设计的过程必将是难忘的,这也将是大学向社会工作过度的一个重要阶段。 本阶段过后要去能够熟练的运用单片机中的计数器、定时器、中断、数码管显示等参考教材或者相关资料,采用C语言实现数字时钟功能,在数码管上实时显示,并运用Protues软件绘制电路原理图,并进行仿真验证和误差分析。 2.系统总体方案设计 2.1系统方案的确定 用6位数码管,可以显示出时、分、秒;用P2端口控制位选,由定时器进行时间的控制(秒);当总按键按下时可以进行时间调整; 2.2方案分析 2.3系统总框图 图2.1

3.系统硬件系统设计 3.1复位电路 单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程跑飞的时候,按下复位按钮内部的程序自动从头开始执行。 复位电路的工作原理: 在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。单片机复位电路如下图 图3.1 3.2时钟电路 单片机运行需要时钟支持——就像计算机的CPU一样,如果没有时钟电路来产生时钟驱动单片机,那单片机就不能执行程序。 单片机可以看成是在时钟驱动下的时序逻辑电路。 以5l单片机为例随明:51单片机为l2个时钟周期执行一条指令。也就是说单片机运行一条指令,必须要用r2个时钟周期。没有这个时钟,单片机就跑不起来了,也没有办法定时和进行和时间有关的操作。 时钟电路是微型计算机的心脏,它控制着计算机的二个节奏。CPU就是通过复杂的时序电路完成不同的指令功能的。51的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号:另一种为外部方式,时钟信号由外部引入。

EDA 16x16点阵显示

课程设计报告 课程名称数字系统与逻辑设计 课题名称16*16点阵显示 专业通信工程 班级 学号 姓名 指导教师乔汇东胡瑛 2012年7月2日

湖南工程学院课程设计任务书 课程名称数字系统与逻辑设计课题16*16点阵显示 专业班级通信工程1001班 学生姓名 学号 指导老师乔汇东胡瑛 审批乔汇东 任务书下达日期2012 年6月23日 任务完成日期2012 年7月2日

《数字系统与逻辑设计》课程设计任务书 一、设计目的 全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。 二、设计要求 1、设计正确,方案合理。 2、程序精炼,结构清晰。 3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 4、上机演示。 5、有详细的文档。文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。 三、进度安排 第二十周星期一:课题讲解,查阅资料 星期二:总体设计,详细设计 星期三:编程,上机调试、修改程序 星期四:上机调试、完善程序 星期五:答辩 星期六-星期天:撰写课程设计报告 附: 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。

16X16点阵LED显示

毕业设计说明书 课题名称: 16乘16点阵显示电路的电路原理图及pcb绘制 学生姓名 专业 班级 时间 指导教师

姓名 设计题目16乘16点阵显示电路的原理图及pcb 绘制 指导教师 设计目的利用单片机控制显示屏,显示相应字幕掌握PROTEL99SE软件的操作和应用 理解和运用芯片 设计摘要 本设计是一16×16点阵LED电子显示屏的设计。 整机以单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。通过该芯片控制一个行驱动器 74LS168和两个列驱动器74LS164来驱动显示屏显示。采用4块8×8点阵LED显示模块来组成16×16点阵显示模式。 单片机控制系统程序采用单片机以C语言进行编辑,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。所显示字符的点阵数据可以自行编写(即直接点阵画图),也可从标准字库中提取。 论文着重介绍点阵显示的制作过程,即元器件的制作,单个封装,原理图的绘制以及PCB版布线的过程 设计规划1.建立库原件里面的没有的原件,并做出封装 2.绘制点阵点阵显示的原理图 3.对原理图里面的原件进行封装 4.创建链接表 5.导入到PCB里面,并排列连接 6.制造PCB版 7.

姓名 设计题目16乘16点阵显示电路的原理图及pcb绘制指导教师 设计目的利用单片机控制显示屏,显示相应字幕掌握PROTEL99SE软件的操作和应用 理解和运用芯片 设计摘要 本设计是一16×16点阵LED电子显示屏的设计。 整机以单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。通过该芯片控制一个行驱动器 74LS168和两个列驱动器 74LS164来驱动显示屏显示。采用4块8×8点阵LED显示模块来组成16×16点阵显示模式。 单片机控制系统程序采用单片机以C语言进行编辑,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。所显示字符的点阵数据可以自行编写(即直接点阵画图),也可从标准字库中提取。 论文着重介绍点阵显示的制作过程,即元器件的制作,单个封装,原理图的绘制以及PCB版布线的过程 设计规划1.建立库原件里面的没有的原件,并做出封装 2.绘制点阵点阵显示的原理图 3对原理图里面的原件进行封装 4创建链接表 5导入到PCB里面,并排列连接 6制造PCB版

电子时钟程序设计

1.设计目的 电子时钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。电子时钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究电子时钟及扩大其应用,有着非常现实的意义。 2.设计内容 设计思想 针对要实现的功能,拟采用AT89C51单片机进行设计,AT89C51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚

结构。这样,既能做到经济合理又能实现预期的功能。 在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、显示程序、闹钟显示程序、调时显示、定时程序。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。

设计元件 元件 规格 数量 单片机 AT89C51 1 晶振 12MHz 1 晶振电容 30pF 2 按键 4 准备器件、搭接电 路 熟悉硬件 了解各引脚功 能 分块设计各部分电 路 将分块的电路组合 认真学习单片机汇编 语言 完成整体电路图 确定变成结构和思 路 综合各程序完成整体 程序 编辑各个程序模块 用Proteus 画出电路图 调试程序,进行修改 对仿真中出现的问题 进行改正 画出仿真图进行仿 真 仿真成功 软硬件结合,完成任务 书要求 验证硬件电路 成功 进行扩展

8 16X16LED点阵显示程序

16×16按字显示程序: ;P0和P2口输出字型码,P1口输出列线扫描。 ORG 0000H SJMP LOOP ORG 0080H LOOP:MOV A,#00H ;开机初始化,清除画面MOV P0,A ;清除P0口 ANL P2,#00 ;清除P2口 MOV R2,#200 D100MS: MOV R3,#250 ;延时100毫秒 DJNZ R3,$ DJNZ R2,D100MS

MOV 20H,#00H ;字型码指针赋初值 L100: MOV R1,#10 ;每个字的停留时间 L16: MOV R6,#16 ;每个字16个16位码 MOV R4,#00H ;列线扫描指针清零,接4-16译码器,。 MOV R0,20H ;字型码指针存入R0 L3: MOV A,R4 ;列线扫描指针存入A MOV P1,A ;列线扫描输出 INC R4 ;扫描指针加1,指向下一列 MOV A,R0 ; 取码指针存入A MOV DPTR,#TABLE ;取数据表的上半部分的代码 MOVC A,@A+DPTR MOV P0,A ; 输出到P0 INC R0 ;取字型码指针加1,取下一个码。 MOV A,R0 MOV DPTR,#TABLE ;取数据表下半部份的代码 MOVC A,@A+DPTR MOV P2,A ;输出到P2口 INC R0 ;取字型码指针加1,取下一个码。 MOV R3,#02 ;扫描1毫秒 DELAY2:MOV R5,#248 DJNZ R5,$ DJNZ R3,DELAY2 MOV A,#00H ;清除屏幕 MOV P0,A ANL P2,#00H DJNZ R6,L3 ;一个字16个码是否完成? DJNZ R1,L16 ;每个字的停留时间是否到了? MOV 20H,R0 ;取码指针存入20H(静态显示) CJNE R0,#224,L100 ;7个字224个码是否完成? JMP LOOP ;反复循环 16×16滚动显示程序: ORG 0000H SJMP LOOP ORG 0080H LOOP:MOV A,#00H ;开机初始化,清除画面 MOV P0,A ;清除P0口

LED点阵显示屏实验报告

16?16点阵LED电子显示屏的设计 摘要:文章介绍了基于单片机AT89C51的16?16点阵LED电子显示屏的设计。分别阐述了显示屏显示的基本原理,硬件设计、控制方法及其程序的实现。经过调试和分析,设计的结果能够实现对汉字的静态和动态显示,动态显示的内容有多种方式,同时又可通过上位机更新显示的内容。 关键字:AT89C51;16?16点阵;LED;显示屏 一绪论 LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。LED显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。 1 LED点阵显示屏概述 LED点阵显示屏的构成型式有多种,其中典型的有两种。一种把所需展示的广告信息烧写固化到EPROM芯片内,能进行固定内容的多幅汉字显示,称为单显示型;另一种在机内设置了字库、程序库,具有程序编制能力,能进行内容可变的多幅汉字显示,称可编程序型。 目前,国内的LED点阵显示屏大部分是单显示型,其显示的内容相对较少,显示花样较单一。一般在产品出厂时,显示内容就已写入显示屏控制系统中的EPROM芯片内,当需要更换显示内容时就非常困难,这样使该类型的显示屏使用范围受到了限制。国内的另一种LED显示屏——可编程序型LED显示屏,虽然增加了显示屏系统的编程能力,显示内容和显示花样都有所增加,但也存在着更换显示内容不便的缺点。随着社会经济的迅速发展,如今的广告牌都存在着显示内容丰富、信息量大、信息更换速度快等特点。因此传统的LED显示屏控制系统已经越来越不能满足现代广告宣传业的需要。而利用PC机通信技术控制LED显示屏,则具有显示内容丰富,信息更换灵活等优点。 2 LED显示屏控制技术状况 显示屏的控制系统包括输入接口电路、信号控制、转换和数字化处理电路及输出接口电路等,涉及的具体技术很多,其关键技术包括串行传输与并行传输技术、动态扫描与静态锁存技术、自动检测及远程控制技术等。

电子钟的设计 C语言编程

课程设计说明书 课程设计名称:专业课程设计 课程设计题目:电子钟的设计 学院名称:信息工程学院 专业:电子信息工程班级: XXXXXX 学号: XXXXXXXX 姓名: XXXX 评分:教师: XXXXXX 20 XX 年 X 月 X 日

当今信息科技高速发展,使用方便、低成本电子设备已逐步成为我们日常生活中电子产品的主力军。用软件代替硬件的电子设备能大大地节省成本,且有利于资源的节约,因此,以软代硬的设计必将成为我们现代设计的主流。本设计是利用MCS-51系列单片机内部的定时器/计数器进行中数年定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,且能够使设计者在定时/计数器的使用中及程序设计方面得到锻炼和提高,因此本系统将采用软件方法实现计时。 关键词:单片机计数器软件

第一章实验要求及设计思路 (4) 1.1 设计内容及要求 (4) 1.2 设计的目与和意义 (4) 1.3 设计的基本思路与主要内容 (5) 第二章系统组成及工作原理 (6) 2.1 系统组成 (6) 2.2工作原理 (7) 第三章硬件设计与分析 (9) 3.1 硬件设计原理 (9) 3.2 AT89C51单片机介绍 (9) 3.3单片机最小应用系统 (9) 3.4显示电路 (11) 3.5 键盘及其接口 (12) 第四章软件设计 (14) 4.1 主程序设计 (14) 4.2 定时中断程序 (17) 4.3 显示子程序 (17) 第五章调试与运行 (19) 第六章结论与体会 (20) 参考文献 (21) 附录一系统原理图 (22) 附录二元件清单 (23) 附录三程序清单 (24)

16X16点阵显示综合实验eda

北华航天工业学院 《EDA技术综合设计》 课程设计报告 报告题目:16X16点阵显示综合实验作者所在系部:电子工程系 作者所在专业:自动化 作者所在班级:B08221 作者姓名:王建超 指导教师姓名:崔瑞雪 完成时间:2010-11-30

内容摘要 EDA技术是现代电子信息工程领域的一门新兴技术,它是在现代先进的计算机工作平台上开发出来的一整套电子系统设计的软硬件工具,并提供了先进的电子系统设计方法。随着EDA技术的不断发展,开发人员完全可以通过自己的电子系统设计来定制其芯片内部的的电路功能,使之成为设计者自己的专门集成电路芯片。 在本次课设中,设计一个共阴16X16点阵控制接口,要求:在时钟信号的控制下,使点阵动态点亮,点亮方式为使点阵显示器显示“沈小兰王建超袁利宏”九个字和一种花样,其中列选信号为16-4编码器编码输出。 列选信号采用与7段数码管的位选信号一样的处理方法,即列扫描信号频率大于24HZ。 字体、格式,注意本次为课设报告、不是实验报告 关键词:EDA、可编程逻辑器件、时钟信号、16*16点阵字符发生器

目录 一、设计要求 (1) 二、实验目的 (1) 三、硬件要求 (1) 四、实验原理 (1) 五、程序设计 (2) 16进制计数器 (2) 16*16点阵的行列驱动器 (2) 六、原理图 (12) 七、仿真波形 (12) 八、实验总结 (13) 参考文献 (13)

课程设计任务书

一、实验要求 设计一个共阴16X16点阵控制接口,要求:在时钟信号的控制下,使点阵动态点亮,点亮方式为使点阵显示器显示“沈小兰王建超袁利宏”九个字和一种花样,其中列选信号为16-4编码器编码输出。 二、实验目的 1、了解点阵字符的产生和显示原理。 2、了解E2PROM和16×16点阵LED的工作机理。 3、加强对于总线产生,地址定位的CPLD实现的理解。 三、硬件要求 1.主芯片EPF10K10LC84-4。 2.可变时钟源。 3.带有事先编程好字库/字符的E2PROM 2864。 4.16×16扫描LED点阵。 四、实验原理 16×16扫描LED点阵的工作原理同8位扫描数码管类似。它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。所以其扫描译码地址需4位信号线。要使16点阵上某个点亮,如第10行第4列的LED点亮,只要让列选信号为“0100”,从而选中第4列,再给第10行一个高电平,即可点亮该LED。本实验通过FPGA芯片写入字形,产生扫描信号。为了显示整个汉字,首先分布好汉字的排列,以行给汉字信息;然后以大于24HZ的频率扫描列,即每行逐一加高电平,根据人眼的视觉残留特性,使之形成整个汉字的显示。 由于要显示不同的字,需要给一个信DIN,对不同字不同花样进行选择。而该信号的产生可以通过一个16进制计数器完成。 本设计由16进制计数器,行驱动和列驱动组成。输出包括了如下图所示的列选信号SEL0—SEL3。

单片机原理课程设计基于at89c52的电子时钟设计

单片机原理课程设计 题目:基于AT89C52的电子时钟设计 姓名: 学院: 专业: 班级: 学号: 指导教师: 年月日 南京农业大学教务处制 aortiu

目录 摘要 (2) 关键词 (2) 引言 (2) 1设计要求与方案论证 (2) 设计要求 (2) 系统方案选择方案和论证 (2) 1.2.1单片机芯片的选择方案和论证 (2) 1.2.2 显示模块选择方案和论证 (3) 1.2.3 时钟芯片的选择方案和论证 (3) 2.系统的硬件设计与实现 (3) 电路设计框图 (3) 系统硬件概述 (3) 主要单元电路的设计 (4) 2.3.1 单片机主控制模块的设计 (4) 2.3.2时钟电路模块的设计 (4) 2.3.3 键盘模块设计 (5) 2.3.4蜂鸣器模块的设计 (5) 2.3.5显示模块的设计 (5) 3.系统的软件设计 (6) 程序流程框图 (6) 程序的设计 (7) 4.系统调试 (7) 软件调试 (7) 硬件调试 (8) 实验箱调试结果 (8) 5.总结心得体会 (9) 附录一:系统程序 (9) 基于AT89C52的电子时钟设计

指导教师:吕成绪胡飞 摘要:单片机在电子产品中的应用越来越广泛,特别是51系列的单片机,由于其使用方便、价格低廉等优势,在市场上占有很大的份额。AT89C52就是51系列中的一个比较成熟的型号。本设计是一个多功能的实时时钟,带秒表、整点报时、闹铃、调整时间等功能。可按键直接设置闹铃时间。由AT89C51单片机、DS1302、LCD1602等模块组成。现代社会,时间就是金钱,时钟是每个人的必备品。本设计实现了所需功能,给大家带来方便,整体性好、人性化强、可靠性高,实现了时钟的多功能应用。 关键词:电子时钟;DS1302;LCD1602; 引言: 随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子时钟采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该设计以AT89C51单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。 综上所述,此电子时钟具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 1.设计要求与方案 设计要求: (1)启动时显示制作的年、月、日、制作者的学号等信息。 (2)24小时计时功能(精确到秒) (3)整点报时功能。 (4)秒表功能 (5)省电功能模式(未设计) 系统基本方案选择 1.2.1单片机芯片的选择方案和论证 方案一: 采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。 方案二: 采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。 相比之下,我们在实验箱实际仿真时选择采用AT89S52作为主控制系统,由于proteus库中没有AT89S52,在原理图仿真时采用了AT89C51.

16x16点阵显示LED

开封大学 学生毕业设计 题目点阵式汉字电子显示屏设计 年级 11级专业电子信息工程技术 班级电子3班 学生姓名苗本朋起止时间 2013.11,4-2014,05.26指导教师肖兴达职称副教授 2014年 5 月 26 日

摘要 电子显示屏的应用范围越来越广泛,它作为一个重要的宣传平台,已经受到全社会的普遍认可。本课题以单片机为控制核心,通过8x8 LED电子显示屏及相关的外围电路,设计制作了一个16x16 点阵LED电子显示屏。 本文介绍了基于AT89C51单片机点阵显示屏的设计方案,阐述了16×16点阵LED 显示屏的设计原理与思路,详细叙述了系统硬件、软件设计的具体实现过程。论文重点阐述了显示模块及相关驱动模块等的模块化设计思路与制作方法。软件部分同样也采用模块化的设计思想,显示模块,并采用简单流通性强的汇编语言编程实现。系统能实现清晰的图文伴随左移出显示功能。在实际设计调试过程中,通过肉眼观察该显示屏显示的图文是否稳定、清晰无串扰,查找造成图文不清晰的根源,确定调整方案,尽可能的使显示图文与要求相符合。 关键词:单片机;LED显示屏

目录 1 引言 (3) 1.1 课题的背景 (3) 1.2 研究目的和意义 (4) 1.3 研究内容 (5) 2 系统方案论证 (5) 2.1 方案论证 (6) 2.2模块方案确定 (6) 2.2.1 电源模块 (6) 2.2.2 单片机控制模块 (6) 2.2.3 时钟信号电路 (6) 2.2.4 复位电路 (7) 2.2.5 显示驱动模块 (7) 3 系统硬件电路设计 (8) 3.1硬件电路设计 (8) 3.2各单元电路说明 (8) 3.2.1 单片机主控模块的设计 (8) 3.2.2 16X16点阵显示模块设计 (11) 3.2.3 驱动模块电路设计 (13) 3.2.4 电源电路设计 (15) 4 系统软件设计 (18) 4.1点阵显示原理 (18) 4.2系统程序流程图 (20) 4.3系统程序 (22) 5 单片机I/O口分配 (26) 6 结果分析及总结 (26) 6.1结果分析 (26) 6.2总结 (26) 参考文献 附录1:电路图 附录2:元件清单

电子时钟基于AT89c51单片机设计电路图及程序

电子时钟基于AT89c51单片机的设计 电子时钟原理图 开机显示仿真图: 当按下仿真键时电子时钟开机页面显示第一行显示JD12102Class--16,第二行显示动态TINE:12:00:04。 电子时钟调时间仿真图:当按下K1为1次时,光标直接跳到电子时钟的秒,可以按下K2进行调节。 当按下K1为2次时,光标直接跳到电子时钟的分,可以按下K2进行调节。 当按下K1为3次时,光标直接跳到电子时钟的时,可以按下K2进行调节。 当按下K1为4次时,光标直接跳完,电子时钟可以进行正常计时。 电子时钟闹钟调节仿真:当按下K3为1次时,直接跳到闹钟显示界面00:00:00,按下K2可以对闹钟的秒进行调节。 当按下K3为2次时,可以调到分,按下K2可以对闹钟的分进行调节。 当按下K3为3次时,可以调到时,按下K2可以对闹钟的时进行调节。 当按下K3为4次时,直接跳到计时界面,对闹钟进行到计时,时间到可以发出滴滴声。

#include<> #define uchar unsigned char //预定义一下 #define uint unsigned int uchar table[]="JD12102Class--21"; //显示内容 sbit lcden=P3^4; //寄存器EN片选引脚 sbit lcdrs=P3^5; //寄存器RS选择引脚 sbit beep=P3^6; //接蜂鸣器 extern void key1(); extern void key2(); extern void key3(); uchar num,hour=12,minite,second,ahour,aminite,asecond,a,F_k1,F_k2,F_k3; //定义变量 void delay(uint z) //延时 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void write_com(uchar com) { lcdrs=0; P0=com; //送出指令,写指令时序 delay(5); lcden=1; delay(5); lcden=0; } void write_data(uchar date) { lcdrs=1; P0=date; //送出数据,写指令程序 delay(5); lcden=1; delay(5); lcden=0; }

点阵屏显示原理及实验详解

标题:LED点阵屏学习攻略共享资料

LED点阵屏学习攻略 在经历了将近一个学期断断续续的点阵屏学习后,最后终于在AVR平台下完成了128*32点阵屏的无闪烁显示。现把整个学习过程总结如下: 无论是51单片机还是AVR单片机,点阵屏的显示原理是一样的,所以首先从51讲起。 说明:以下所有试验如无特殊说明均在Keil uVision3 + Proteus 6.9 SP5下仿真完成。 一.基于51的点阵屏显示:(1)点亮第一个8*8点阵: 1.首先在Proteus下选择我们需要的元件,AT89C52、74LS138、MATRIX-8*8-GREEN(在这里使用绿色的点阵)。在Proteus 6.9中8*8的点阵总共有四种颜色,分别为MATRIX-8*8-GREEN,MATRIX-8*8-BLUE,MATRIX-8*8-ORANGE ,MATRIX-8*8-RED。 在这里请大家牢记:红色的为上列选下行选;其它颜色的为上行选下列选!而所有的点阵都是高电平选中列,低电平选中行!也就是说如果某一个点所处的行信号为低,列信号为高,则该点被点亮!此结论是我们编程的基础。 2.在选择完以上三个元件后,我们开始布线,具体如下图: 这里P2是列选,P3连接38译码器后作为行选。 选择38译码器的原因:38译码器每次可输出相应一个I/O口的低电平,正好

与点阵屏的低电平选中行相对,并且节省了I/O口,大大方便了我们的编程和以后的扩展。 3.下面让我们把它点亮,先看一个简单的程序: (将奇数行偶数列的点点亮,效果如下图) 下面是源代码: /************8*8LED点阵屏显示*****************/ #include void delay(int z) //延时函数 { int x,y; for(x=0;x

数字时钟电路

概述:加入世贸组织以后,中国会面临激烈的竞争。这种竞争将是一场科技实力、管理水 平和人才素质的较量,风险和机遇共存。于是老师在单片机理论课程学习的基础上,为我们安排了一个涉及MCS—51单片机多种资源应用及具有综合功能的电子时钟设计。 1引言 《单片原理及应用》是一门技术性、应用性很强的学科,实践教学是它的一个极为重要的环节。不论是硬件扩展、接口应用还是编程方法、程序调试,都离不开实验教学。如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节的局面。任随书本上把单片机技术介绍得多么重要、多么实用多么好用,同学们仍然会感到那只是空中楼阁,离自己十分遥远,或者会感到对它失去兴趣,或者会感到它高深莫测无从下手,这些情况都会令课堂教学的效果大打折扣。 本次仿真设计的目的就是让同学们在理论学习的基础上,通过完成一个涉及MCS—51单片机都种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。 该电子时钟不但具有定时作用还有温度采集作用。定时部分可以显示时、分、秒,而且用按键还可以实现时间的调整和闹铃的设定。温度采集部分实现环境温度数据的采集。 在上一学期进行的EDA课程设计中,同学们完成了单片机数据采集与定时系统的硬件电路设计。本次综合实践是在此基础上,焊接制作电路板,完成该系统的软件设计与调试。待仿真成功后,再将程序烧写入单片机中。 一、设计目的: 1、熟悉集成电路的引脚安排。 2、掌握各芯片的逻辑功能及使用方法。 3、了解数字钟的组成及工作原理。 4、熟悉数字钟的设计与制作。 二、设计要求: 1、时间以24小时为一个周期。 2、显示时、分、秒。 3、有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间。 4、为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。 5、做完电路原理图的设计、印刷电路板的设计到3D图的全过程。

单片机课程设计报告——16x16LED滚动显示

16x16LED滚动显示课程设计:单片机课程设计 专业名称:电气工程及其自动化 学号: 学生姓名: 同组人员: 指导教师: 2014年12月8日

课程设计任务书 2014 ~2015 学年第1学期 学生姓名: 专业班级:电气工程及其自动化2012级(2)班 指导教师:工作部门: 一、课程设计题目:16x16LED滚动显示 二、课程设计内容 1. 根据具体设计课题的技术指标和给定条件,以单片机为核心器件,能独立而正确地进行方案论证和电路设计,完成仿真操作。要求概念清楚、方案合理、方法正确、步骤完整; 2. 熟悉、掌握各种外围接口电路芯片的工作原理和控制方法; 3. 熟练使用单片机汇编语言或C51进行软件设计; 4. 熟练使用Proteus、Keil软件进行仿真电路测试; 5. 熟练使用Protel软件设计印刷电路板; 6. 学会查阅有关参考资料和手册,并能正确选择有关元器件和参数; 7. 编写设计报告,参考毕业设计论文格式。 (1)根据课题要求确定系统设计方案; (2)绘制系统框图、系统仿真原理图(印刷电路板图),列出元器件明细表; (3)计算电路参数和选择元器件,画出软件框图,列出程序清单; (4)打印仿真结果,根据测试结果进行误差分析与修改调整; (5)对设计进行全面总结。 三、进度安排

2.执行要求 单片机应用课程设计共9个选题,学生可自选课题。每组不超过2人,为避免雷同,在设计中每个同学所采用的方案不可一样。 四、课程设计考核办法与成绩评定 六、课程设计参考资料 [1]贺哲荣.AT89S51单片机硬件设计与编程实例.北京:中国电力出版社.2012 [2]李泉溪.单片机原理与应用实例仿真.北京:北京航空航天大学出版社,2012. [3]王平.单片机应用设计与制作.北京:清华大学出版社, 2012. [4]彭为等.单片机典型系统设计实例精讲. 北京:电子工业出版社,2007 [5]王庆利等.单片机设计案例实践教程.北京:北京邮电大学出版社,2008 [6]韩志军等.单片机应用系统设计——入门向导与设计实例.北京:机械工业出版社,2005 [7]皮大能等. 单片机课程设计指导书. 北京:北京理工大学出版社,2010 指导教师: 2014年12月8日 教研室主任: 2014年12 月8 日

16×16 LED点阵显示实验

16×16 LED点阵显示实验 一、实验目的 1、了解16×16矩阵LED显示的基本原理和功能 2、掌握16×16矩阵LED和单片机的硬件接口和软件设计方法 二、实验说明 汉字显示屏广泛应用与汽车报站器,广告屏等。实验介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,采用了16×16的点阵模块;汉字显示的原理我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。所以在这个汉字屏上不仅可以显示汉字,也可以显示在256像素范围内的任何图形。 我们以显示汉字“大”为例,来说明其扫描原理:在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示。如果用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。一般我们把它拆分为上部和下部,上部由8*16点阵组成,下部也由8*16点阵组成。在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p00---p07口。方向为p00到p07 ,显示汉字“大”时,p05点亮,由上往下排列,为p0.0 灭,p0.1 灭, p0.2 灭p0.3 灭, p0.4 灭, p0.5 亮,p0.6 灭,p0.7 灭。即二进制00000100,转换为16进制为 04h.。上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从上图可以看到,这一列全部为不亮,即为00000000,16进制则为00h。然后单片机转向上半部第二列,仍为p05点亮,为00000100,即16进制04h。这一列完成后继续进行下半部分的扫描,p21点亮,为二进制00000010,即16进制02h. 依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“大”。 三、实验内容及步骤 本实验需要用到单片机最小应用系统(F1区)和16*16点阵显示模块(I6区)。 1、单片机最小应用系统的 P0口JD4F接16*16点阵单元的JD4I,P3口JD3F分别接16*16点阵单元的JD5I,最小系统的P1.0,P1.1,P1.2,P1.3分别接点阵模块的A,B,C,D;把点阵显示的电源开关打到VCC处。

16x16点阵显示实验报告

16*16点阵显示实验报告 一、实验目的 (1)学习点阵显示字符的基本原理。 (2)掌握用数控分频控制速度,实现点阵扫描的基本方式。 (3)会使用Quartus II软件中的Verilog HDL语言实现点真的行列循环显示。 二、实验设备与器件 Quartus II 软件、EP2C8Q208C8实验箱 三、实验方案设计 1.实验可实现的功能 可通过编写Verilog HDL语言,实现点阵的行列交替扫描。先是行扫描,扫描间隔为1s,16行都扫描完之后开始列扫描,扫描间隔仍然为1s,16列扫描完之后,行继续扫描,依次循环。 2.点阵基本知识 16*16扫描LED点阵只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。 LED点阵每个点都有一个红色的发光二极管。点阵内的二极管间的连接都是行共阳,列共阴。本实验采用共阴,当二极管的共阳极为高电平,共阴极为低电平时,所接点发光;反之处于截止状态,不放光。 3.系统工作原理 本系统用了两个模块,其中dianzhen.v是顶层文件,而hangsaomiao.v和liesaomiao.v是两个子模块,总体的系统功能框图如图3.3.1所示。

50MHz 时钟信号 1Hz 分频16s 计时器 开始满16s ? 当前状态为行扫描? N Y 行扫描 列扫描 N Y 点阵 结束 图3.3.1 系统功能图示 通过流程图可以看到,体统是先将试验箱的50MHz 时钟信号分频为1s ,因为要实现16*16的点阵扫描,所以用一个16s 的计时器计时,每经过16s 行扫描与列扫描的状态转换一次,通过点阵显示出来。 4.模块化程序设计 (1)点阵显示顶层程序设计 module dianzhen (clk50mhz,row,sel0,sel1,sel2,sel3,line); input clk50mhz; //实验箱提供50MHz 时钟信号 output sel0,sel1,sel2,sel3; //设置引脚选通点阵 output reg [15:0] row; //行 output reg [3:0] line; //列 wire [15:0] row1,row2; wire [3:0] line1,line2; reg [24:0] cnt=0; //1Hz 计数子 reg [4:0] cnt1=0; //16s 计数子 assign sel0=1'b0; assign sel1=1'b1; assign sel2=1'b0; assign sel3=1'b0; always@(posedge clk50mhz) begin

相关文档
最新文档