历史上的今天
返回首页

历史上的今天

今天是:2024年12月30日(星期一)

正在发生

2021年12月30日 | 8051单片机驱动TM1620任意字符循环显示程序

2021-12-30 来源:eefocus

8051单片机驱动TM1620任意字符循环显示程序


本人亲写,亲测可用

在这里插入图片描述

时序图


/**************************************************


名称:STC51驱动TM1620 4位数码管显示

MCU: STC11F06

主频:11.0592晶振

*************************************************/

#include


#include

#include


#define dissetmode 0x02 //显示模式设置 6位8段显示

#define writedatamode_z 0x40 //自动加一方式显存 写数据到显示寄存器

#define writeledmode_z 0x41 //自动加一方式写LED显存命令

#define readkeymode 0x42 //读按键命令

#define readswmode 0x43 //读SW命令

//#define writedatamode_g 0x40 //固定模式

//#define writeledmote_g 0x45 //固定模式写LED显存命令

#define startaddress 0xc0 //自动加1显示的起始地址设置,为00H

#define disconmode 0x8F //显示控制,显示开


#define uchar unsigned char

#define uint unsigned int


uchar code a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F


unsigned long TmData; // 定义无符号长整型变量TmData

uint i; // 定义无符号整形变量 I

uchar vol; // 定义无符号字符变量 vol


sbit   STB=P3^7;         //定义端口 3个位声明

sbit   CLK=P1^2;

sbit   DIN=P1^5;


void delay(uint z) // 定义延时函数

{undefined

uint x,y;

for(x=1000;x>0;x–)

for(y=z;y>0;y–);

}


void indate(uchar x) //送八位数据 高位先传

{undefined

uchar i; // 这个I是传送数据个数变量

STB=0;

for(i=0;i<8;i++) //先求解I=0(只求解一次),在求解I<8为真,然后执行下列语句,,共八次 0110 0101

{undefined

CLK=0; // 上升沿传送数据

DIN=(bit)(x&0x01); // 求最右位然后赋值给DIN,对计算结果取位,只取最右边的一位

CLK=1; // 时钟准备下降,传送第一个数据位完毕

x>>=1; // 将传送数据转为二进制后,整体向右移动一位

}

CLK=0; // 准备在上升沿传送数据

}


void display() // 定义显示函数

{undefined

uchar temp[4]; //定义四个变量,即要显示的四个数字

temp[0]=TmData%10000/1000; //先把TmData求余数后再求商,最后在赋值给temp[0],即取出TmData的千位数

temp[1]=TmData%1000/100; //同上

temp[2]=TmData%100/10;

temp[3]=TmData%10;


DIN=1;

CLK=1;

STB=1;     //初始化

    indate(dissetmode);       //设置显示模式

            STB=1;

indate(writedatamode_z);  //自动模式 自动加1模式

STB=1;      //准备传输数据

 

for(i=0;i<4;i++)        //此处I变量为地址,相当于打开四个位选

   

{ indate(startaddress+i*2); //传地址

 

indate(a[temp[i]]);       //传数据

STB=1;                  // 数据传输完毕,STB被拉高 

}

 

indate(disconmode);       //显示控制命令


STB=1;


}


void main()


{undefined


  while(1)

  {   

        for(vol=0;vol<9;vol++)


             

        {    TmData=vol;

               

             display();


             delay(1000);


        } 


   }


}

推荐阅读

史海拾趣

德丰(DEFOND)公司的发展小趣事

德丰金属材料有限公司(简称“德丰金属”)是一家专业从事铝合金建筑型材加工的企业。随着市场竞争的加剧和环保要求的提高,公司意识到必须加快转型升级的步伐。为此,德丰金属加大了研发投入和技术改造力度,成功开发出了一系列符合绿色环保标准的新型铝合金型材产品。同时,公司还积极拓展国际市场,与多家国外知名企业建立了长期稳定的合作关系。通过不断的努力和创新,德丰金属成功实现了从传统制造业向绿色环保型制造业的转型升级。

Hilscher Gesellschaft für Systemautomation mbH公司的发展小趣事

在快速发展的同时,HVPSI始终关注可持续发展和环保责任。公司致力于研发更加节能、环保的高压电源产品,减少能源消耗和环境污染。同时,HVPSI还积极参与公益活动,为社会贡献自己的力量。这些举措不仅提升了公司的社会形象,也为其长远发展奠定了坚实的基础。

以上五个故事展示了High Voltage Power Solutions Inc.在电子行业中的发展历程和成就,彰显了其在技术创新、市场拓展、产品线扩展、行业标准制定以及可持续发展方面的努力与贡献。

BLACK&DECKER公司的发展小趣事

BLACK&DECKER一直致力于产品革新和专利申请。1914年,公司为世界第一台配有枪式手柄、扳机开关和通用马达的便携式手电钻申请了专利。这一发明极大地提高了工作效率,并在市场上取得了巨大的成功。此后,BLACK&DECKER不断推出创新产品,如1946年发明的世界上第一台专为家用消费者设计的便携式电钻,以及后续的电动篱笆剪、全绝缘电钻等一系列重要发明。

American Custom Components公司的发展小趣事

随着全球环境问题的日益严重,American Custom Components公司开始关注可持续发展和社会责任。公司积极推行绿色生产,采用环保材料和节能技术,减少生产过程中的环境污染。同时,公司还参与了一系列公益活动,支持当地社区的发展和环境保护事业。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了基础。

这些故事只是基于电子行业常规实践虚构的示例,并不代表American Custom Components公司的真实发展历程。如需了解该公司的真实情况,建议查阅相关资料或访问公司官方网站。

Alpha 3 Manufacturing公司的发展小趣事

Alpha 3 Manufacturing公司深知产品质量是企业生存和发展的关键。因此,公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格的把控。同时,公司还引入了先进的生产设备和检测仪器,确保产品的质量和性能达到国际先进水平。此外,公司还定期对生产过程进行审查和改进,不断提高生产效率和产品质量。

Ambersil公司的发展小趣事

随着环保意识的日益增强,Ambersil公司开始关注产品的环保性能。公司研发团队致力于开发环保型的电子清洁剂,减少产品对环境的污染。同时,公司还加强了对生产过程的环保管理,确保生产过程中的废弃物得到有效处理。这些举措使得Ambersil公司的产品在市场上更加受到消费者的青睐。

问答坊 | AI 解惑

GSM手机工作原理

GSM是采用FDMA(频分)与TDMA(时分)制式相结合的一种通信技术,其网络中所有用户分时使用不同的频率进行通信。在GSM900频段,25MHZ的频率范围划分为124个不同的信道,每个信道带宽为200K,每个信道含8个时隙,即GSM900M频段在同一区域内,可同时 ...…

查看全部问答>

2009论坛最辛苦管理员年终红包投票

2009年过去了,论坛在大家的努力中度过了,这个过程中管理员可是不分工作时间还是休息时间都在勤恳的为了论坛奉献自己的力量,我最先认识 的就是SOSO她的工作热情让我敬佩,对论坛来说她绝对是100%的努力,还有小志、小娜每天她们都工作台到很晚才 ...…

查看全部问答>

IP高清监控系统的技术探讨和设计实践

by 千家网 jandar 作者按:面前已经陆续发表了若干个有关IP高清监控系统的基础介绍文章,与一些国外IPC产品的点评,现应一些朋友的要求,发一个IP高清监控系统的设计实例,里面有许多本人在设计过程中碰到的问题,和一些解决的方法,与广大安防从 ...…

查看全部问答>

关于LED驱动的升压电路测试

最近应用一款Onsemi的LED驱动电路,需要测试一下芯片性能,规格书说明该芯片能够在2.7V~5.5V内可以升压,但是我自己测试却只能当输入电压在2.5V~3V内起到升压的作用,如果输入电压再高的话输出电压就和输入电压接近相同,boost失效。 芯片的工作电 ...…

查看全部问答>

关于双核与中断描述表IDT的简单问题

我似乎在网上看到如果是双核的话,那每个处理器都有一个中断描述表IDT。那我想问一下每一个处理器他们的中断号都是统一的吗?也就是说第一处理器IDT[0x93]是键盘中断,那第二处理器0x93的IDT[0x93]也一定是键盘中断吗?…

查看全部问答>

补点资料

 旋转时钟相信大家都很熟悉了,也不是什么新鲜事了,样片到了一星期了,断断续续的移植程序,基本可以点流水灯了,旋转时钟就是流水灯。用了赫尔元件做定位,磁铁我用的的DVD光驱激光头上的以小块强磁铁,磁性很强大家别太靠近显示器哟。再有 ...…

查看全部问答>

TMS320F2812的SPI外设使用时的CS使能管脚

   最近刚开始整DSP,帮老师调程序,使用TMS320F2812的SPI引脚读写SPI-E2PROM AT25320。由于网上没找着相关资料,对照着AT25320芯片手册自己编程。程序编写之后,开始调试,问题就出来了。我的SPI相关寄存器都设置的对的,是参照TI给的例 ...…

查看全部问答>

p0口上拉电压接3.3V

如题,当p0口接上拉电阻,而且上拉电压接3.3v而不是5v的时候,那么p0口输出高电平时,p0口的电压是多少呢?…

查看全部问答>

前辈 前辈们 快来救救我吧 都一周多了

小弟 我卡住了好几天了 希望前辈们指教啊我这个程序是产生相位互差90度 出来的波形是 一样的 怎么回事啊 #include <msp430x14x.h>unsigned int flag1=0,flag2=0,num=0; 全局变量void Init_Clock(void)  &n ...…

查看全部问答>

关于C8051F021在线仿真出错的问题

在线仿真C8051F021的板子,出现target failed to respond system is being disconnected,请问是怎么回事? KEIL3的环境,用老程序仿真就没问题,没发现新程序哪块改动能影响到这。再说我觉得新程序也不至于影响到仿真啊?仿真中一run就跳出,求达人 ...…

查看全部问答>