一个基于STC89C52单片机的7行5列的共阳极点阵屏,7行分别接51单片机的P2.6-P2.0口,5列分别接74HC138译码器的Y4-Y0口,74HC138的CBA口分别接单片机的P1.2,P1.1,P1.0口,点阵屏采用列扫描的方法,使用C语言编写程序使点阵屏能够循环显示HQUWZH六个字母,具体程序如下#include <reg52.h> #define uchar unsigned char #define uint unsigned int uint code tab[6][5]= { {0x7F,0x08,0x08,0x08,0x7F}, //"H" {0x3D,0x42,0x45,0x41,0x3E}, //"Q" {0x7E,0x01,0x01,0x01,0x7E}, //"U" {0x7F,0x04,0x38,0x04,0x7F}, //"W" {0x61,0x51,0x49,0x45,0x43}, //"Z" {0x7F,0x08,0x08,0x08,0x7F}, //"H" }; void Delay(unsigned int xms) { unsigned char i, j; while(xms--) { i = 2; j = 239; do { while (--j); } while (--i); } } void main(void) { uint n; uchar i,j; while(1) { for(j=0;j<6;j++) { for(n=0;n<150;n++) { for(i=0;i<5;i++) { P1=i; P2=tab[j][i]; Delay(1); P2=0; Delay(1); } } } } } 请修改此代码,增加功能,实现不同字母之间切换显示时,前一字母亮度慢慢降低,直至完全熄灭;然后,后一字母慢慢亮起,直至完全显现。

时间: 2024-01-24 19:02:57 浏览: 25
好的,根据您的需求,我已经修改完毕,具体代码如下: ``` #include <reg52.h> #define uchar unsigned char #define uint unsigned int uint code tab[6][5] = { {0x7F,0x08,0x08,0x08,0x7F}, //"H" {0x3D,0x42,0x45,0x41,0x3E}, //"Q" {0x7E,0x01,0x01,0x01,0x7E}, //"U" {0x7F,0x04,0x38,0x04,0x7F}, //"W" {0x61,0x51,0x49,0x45,0x43}, //"Z" {0x7F,0x08,0x08,0x08,0x7F} //"H" }; void Delay(unsigned int xms) { unsigned char i, j; while(xms--) { i = 2; j = 239; do { while (--j); } while (--i); } } void main(void) { uint n; uchar i,j,k; while(1) { for(j=0;j<6;j++) { for(k=0;k<15;k++) { // 降低亮度 for(i=0;i<5;i++) { P1=i; P2=tab[j][i] >> k; Delay(1); P2=0; Delay(1); } } for(k=0;k<15;k++) { // 增加亮度 for(i=0;i<5;i++) { P1=i; P2=tab[(j+1)%6][i] >> (15-k); Delay(1); P2=0; Delay(1); } } } } } ``` 修改后的程序实现了不同字母之间的渐变切换,具体实现方式为:在每次切换字母之前,先将前一个字母的亮度慢慢降低,然后将后一个字母慢慢亮起,直至完全显现。其中,使用了一个循环变量k来控制亮度的变化,k的范围为0-15,表示亮度从高到低的变化过程。另外,为了实现循环显示,当显示完最后一个字母后,又从第一个字母开始循环显示。

相关推荐

最新推荐

recommend-type

基于STC89C51单片机的出租车计费器设计

本文以单片机STC89C51 为核心设计一款出租车计费器, 使能够实现里程及对应价格的显示,由于采用芯片的自动定时计数,所以能够准确的计算出总的行车里程并能转换成对应的价格来,这样能够避免出租车司机作弊的可能性...
recommend-type

如何用AltiumDesigner绘制STC89C51单片机原理图

在学习AltiumDesigner或者51单片机的过程中,当我们要绘制一个带有STC单片机的电路图或者要制作带有STC单片机的PCB(印制电路板)时,我们会发现在AltiumDesigner自带的所有库中都没有找到STC的单片机原理图。...
recommend-type

基于stc89c52单片机的温控风扇.docx

实现4位数码管上显示温度,ds18b20温度传感器实时采集温度,由单片机最小系统开发板控制L289n驱动5v顺源风扇实现转动。挡为3档,一档:25℃下风扇停止转动,25~30℃之间风扇轻微转动,30℃以上风扇快速转动。
recommend-type

基于AT89C52单片机最小系统接口电路设计

AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含8KB的可反复擦写的程序存储器和256B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,...
recommend-type

51单片机(AT89C52)一键多功能(短按、长按)

短按(按下持续时间小于3s)一次数码管显示加1,同时流水灯计数加1。长按(按下持续时间大于3s)时,数码管显示每500ms加1,同时流水灯每500ms计数加1。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解答下列问题:S—>S;T|T;T—>a 构造任意项目集规范族,构造LR(0)分析表,并分析a;a

对于这个文法,我们可以构造以下项目集规范族: I0: S -> .S S -> .T T -> .a I1: S -> S. [$ T -> T. [$ I2: S -> T. I3: S -> S.;S S -> S.;T T -> T.;a 其中,点(.)表示已经被扫描过的符号,;$表示输入串的结束符号。 根据项目集规范族,我们可以构造出LR(0)分析表: 状态 | a | $ ---- | - | - I0 | s3| I1 | |acc I2 | | 其中s3表示移进到状态3,acc表示接受。在分析字符串a;a时,我们可以按照以下步骤进行
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。