每过2秒钟,数码管数值加减功能显示值加1,每过1分钟,数码管数值加减功能显示值清零

已解决问题
单片机怎么实现用KEY&1控制数码管上显示的数字加1&KEY2控制数码管上显示数字减1?
提问时间: 05:28:25
浏览次数:7908
该答案已经被保护
我汇编。用控制位选我138控制 /******************************** 用LS138控制两位数码管显示99~0 利用定器0延1钟 *********************************/ #include
#define uchar unsigned char #define uint unsigned int sbit LS138A=P2^2; sbit LS138B=P2^3; sbit LS138C=P2^4; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(uint); uint num,i,led[2],numt0,temp, void display(uchar numdis)//显示程序 { /* temp++; if(temp==480)//调整数值改变数码显示速度 { temp=0;//延计数 每扫描加 --//每隔10扫描周期加 } led[0]=table[numdis%100/10];//十位 led[1]=table[numdis%10];//位 for(i=0;i&2;i++)//实现2位态扫描循环 { P0=led[i];//字模送P0口显示 switch(i)//使用switch语句控制位选 { case 0:LS138A=0;LS138B=0;LS138C=0; case 1:LS138A=1;LS138B=0;LS138C=0; } delay(1);//处控制态显示太闪烁 }*/ P0=table[numdis%100/10]; LS138A=0;LS138B=0;LS138C=0; delay(1); P0=table[numdis%10]; LS138A=1;LS138B=0;LS138C=0; delay(1); } void delay(uint z) { uint x,y; for(x=z;x&0;x--) for(y=110;y&0;y--); } void init() { TMOD=0x01;//设置定器0工作式1(M1M001) TH0=()/256;//装初值11.0592M晶振定50ms数45872 TL0=()%256; EA=1;//总断 ET0=1;//定器0断 TR0=1;//启定器0 } void main() { init(); num=99;//装入初始值99数码管显示99 while(1) { display(num); } } void T0_time() interrupt 1 { TH0=()/256;//重装初值 TL0=()%256; numt0++;//numt0每加1判断否20 if(numt0==20)//20说明1秒间 { numt0=0;//numt0清0重新再计20 num--; if(num==0)//num减0重初始值 num=99; } } 望采纳 展开。
答案创立者
以企业身份回答&
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题K1键使数码管进行十六进制减1计数显示,K2键使数码管进行十六进制加1计数显示。数码管显示的同时,发光两_百度知道
K1键使数码管进行十六进制减1计数显示,K2键使数码管进行十六进制加1计数显示。数码管显示的同时,发光两
我有更好的答案
十六个键,设一个变量'I'每个键按下要存储‘I’值,分别为......1111。按下K1之后判断前面所存储的值是多少然后给显示出来显示数码应该会的吧,用动态扫描数码管,四个就可以了,K2更好办,按K2之后执行将I值清零。这个是入门,入门之后你就会喜欢编程了
采纳率:15%
用什么开发工具?硬件呢?
为您推荐:
其他类似问题
十六进制的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。虔诚的学习各种牛学
51单片机学习笔记(二) 单个数码管显示1到9
转自我的博客:
数码管,其实就是8个发光二极管按顺序排列而成的,所以让数码管显示特定的数字,只需要将该亮的二极管点亮,不该亮的灭了就好了。为了达到这个目的,就得参考电路图了,51HEI开发板的电路图在我的相册里有,但是整张贴出来就太大了,所以这里只显示部分。电路图如下:
乍一看这张图比较明显的就是最左边的单片机和两个锁存器U1和U2的引脚信息了,从D00到D07,两个锁存器是共用的,D00对应输出Y1和X1,D07对应输出Y8和X8。锁存器,从它的名字大概就可以知道它的用途了!其作用就是有的引脚输入改变的时候输出保持之前的状态,达到锁和存的效果(我目前的理解是这样的,不理解的可以上网搜官方解释)。查查74HC573是怎么用的,表格如下:
图中引脚1代表输出使能,11引脚代表锁存使能。锁存器嘛,打开锁存,让输出使能引脚处于低电平,锁存使能引脚输入高电平,传入对应的D,然后再使锁存使能引脚处于低电平,这样就能让输出保持不变。使用的过程就是打开锁,传数据,关锁保持。
说完了锁存器,回到第一张电路图,途中的锁存器1号引脚都接地,自然是低电平,11号引脚分别对应单片机的D26和D27,所以控制U1和U2就靠这2个引脚啦!
按道理说,8个数码管,应该有8*8=64根线才对啊,而第一张图中只有24个引脚,里面肯定有复用的引脚,所以不知道内部电路是没办法写滴,还好51HEI给的资料比较全。
2个LED管的内部电路如下:
DP总共8个二极管,分别由11、7、4、2、1、10、5、3引脚控制,而1这8个引脚对应第一个图中的Y1到Y8,12、9、8、6呢则有两组,一组是共阴极的数码管,一组是共阳极的数码管。12、9、8、6呢则对应X1到X8,有2个,一组是X1到X4,一组是X4到X8,X1到X4是共阴极的,X5到X8是共阳极的。本实验只让共阴极的DIG1那个数码管显示数据,把别的都关掉。那只要12(X1)引脚输入低电平,986输入高电平,其他的都不会亮了,让DIG1显示什么数字,就由Y1到Y7来决定了。
经计算,让DIG1显示0到9还有小数点的表格如下:
table[11]={ 0x3f, 0x30, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x80
最终代码如下:#include
typedef unsigned char uint8;
typedef unsigned int
D24 = P2^4;
D25 = P2^5;
U1 = P2^6;
//U1锁存器的开关
U2 = P2^7;
//U2锁存器的开关
table[11]={ 0x3f, 0x30, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x80
void main(void)
uint8 counter = 0;
uint8 offset = 0;
TH0 = 0x3C;
TL0 = 0xB0;
TMOD = 0x01;
//计时模式选01模式
//关闭8X8点阵LED
if(TF0==1)
//每次计时是50ms,达到50ms后计时器0的溢出位位1,进行软件清零和计时器初始化.
counter++;
TH0 = 0x3C;
//12MHZ的晶振算出来是从15536开始计时,十六进制就是 0x3CB0
TL0 = 0xB0;
//高位取0x3C,低位取0xB0
if(counter==20)
//20*50ms=1000ms=1s
counter=0;
P0 = table[offset++];
if(offset==11)
offset = 0;
没有更多推荐了,网站已改版,请使用新地址访问:
danpianji 单片机使用按键按一次加1,并显示在数码管上,另外一个 . SCM 开发 238万源代码下载- www.pudn.com
&文件名称: danpianji
& & & & &&]
&&所属分类:
&&开发工具: C++
&&文件大小: 28 KB
&&上传时间:
&&下载次数: 3
&&提 供 者:
&详细说明:单片机使用按键按一次加1,并显示在数码管上,另外一个按键按一次减1.-单片机使用按键按一次加1,并显示在数码管上,另外一个按键按一次减1.。。
The use of SCM key according to a 1, and in the digital tube display, another key is pressed again by 1..
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&单片机\11.DSN&&......\11.PWI&&......\Last Loaded 11.DBK&&......\new&&......\new.hex&&......\new.lnp&&......\new.M51&&......\new.plg&&......\new.uvopt&&......\new.uvproj&&......\new_uvproj.bak&&......\test.c&&......\test.LST&&......\test.OBJ&&单片机
&近期下载过的用户:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - C51单片机按键显示0-f,通过按键在八段led上显示
&[] - stc15f系列单片机,1 按键按一下,数码管显示电池电压,同时第一个led灯亮,再按一下,数码管显示电池电量,并且第二个led灯亮,经过十秒钟后数码管不显示
2 第三个led灯表示电压正常,负载可以输出,同时运用串口进行调试。
&[] - 掌握键盘消抖电路的设计方法键盘电路是单片机应用中的常用电路,但由于其机械动作常使得按键信号产生抖动,所以在单片机的应用开发中,键盘消抖电路起到了非常重要的作用.用2位数码管显示灯闪烁次数的变化值(减计数)实例
添加时间:
来源: | 阅读量:598
提示: 1.内容与要求 启动后,绿灯以1次/s的频率闪烁,闪烁15次后熄灭。要求: 1)用2位数码管实时显示绿灯闪烁的次数。 2)用按钮SB1作灯闪烁启动控制,用按钮SB2作灯熄灭控制,当灯熄灭后数码管显示为0。 2.学习重点 1)了解2位数码管及其接线与运用。 2)认识高级指令F80 (BCD)并学习其运用。 3)学习用2位数码管显示计数器的实
&&& 1.内容与要求
&&& 启动后,绿灯以1次/s的频率闪烁,闪烁15次后熄灭。要求:
&&& 1)用2位数码管实时显示绿灯闪烁的次数。
&&& 2)用按钮SB1作灯闪烁启动控制,用按钮SB2作灯熄灭控制,当灯熄灭后数码管显示为&0&。
&&& 2.学习重点
&&& 1)了解2位数码管及其接线与运用。
&&& 2)认识高级指令&F80 (BCD)&并学习其运用。
&&& 3)学习用2位数码管显示计数器的实时值。
&&& 3.实训步骤
&&& (1)认识2位数码管2位数码管是将两个七段数码管合在一起作2位数字显示的器件。之前学过的1位数码管是用PLC的7个外部输出继电器(Y0~Y6)进行控制的,因此2位数码管就需要用14个外部输出继电器对输出继电器进行控制,这样是非常浪费的。所以一般都使用BCD码译码器做成的2位数字显示的器件,只需要8个外部输出继电器就可以控制2位数码管的显示。由于其内部已接BCD码的译码器,因此它是使用BCD码的数制方式来作数字显示的,2位数码管的示意图如图7-5所示。
&&& 图7-5&&& 2位数码管的示意图
&&& 每个BCD码的数码管有4个接线端,可接到PLC的输出端,通过PLC的控制实现数字显示,但由于PLC内部运算是用二进制数(BIN码),所以需要用数制转换指令将BIN码变换成BCD码,才能使信号输出到数码管上显示。
&&& (2)认识高级指令&F80 (BCD)&并学会其运用具有将BIN码转换为BCD码功能的PLC应用指令是&F80 (BCD)&。&F80 (BCD)&指令格式与运用举例见表74。
&&& 表7-4&&& &F80 (BCD)&指令格式与运用举例
&&& 操作数:
&&& [S.]:WX、WY、WR、WL(*1)、SV、EV、DT、LD(*1)、FL(*2)、IX(*3)、IY(*4)、K、H、索引变址。
&&& [D.]:WY、WR、WL(*1)、SV、EV、DT、LD(*1)、FL(*2)、IX(*3)、IY(*4)、索引变址。
&&& 表7-5&&& PLC的I/O分配
&&& 执行&BCD交换&的16位指令连续执行型为&F80 (BCD)&,脉冲执行型为&P80( PBCD)&,指令执行步数为5步;32位指令连续执行型为&F82 (DBCD)&,脉冲执行型为&P82 (PDBCD)&,指令执行步数为9步。执行此指令时,16位数据的有效范围是&0~9,999&,32位数据的有效范围是&0~99,999,999&,数据超过有效范围就会出错。
&&& (3) PLC的I/O分配与接线本实训任务可用PLC实训装置&TVT-90HC&实训模块上的2位数码管进行。PLC的I/O分配见表7-5。
&&& 实训模块的2位数码管的接线如图7-6所示。
&&& 图7-6&&& 实训模块的2位数码管的接线
&&& a)实验模块插接孔的接线b)2位数码管与PLC的接线
&&& (4) PLC程序的编写PLC的控制程序(供参考)如图7-7所示。
&&& 图7-7&&& PLC的控制程序
&&& (5) PLC程序的执行与调试按图7-7编写程序,传送到PLC执行,并进行程序调试,直至满足以下的控制要求:
&&& 1)正常运行。送电后,数码管显示&15&,按下按钮SB1,绿灯闪烁,同时数码管开始倒显示绿灯的闪烁次数,显示到&00&后停止,绿灯熄灭;显示管显示停止在数字&00&;按下按钮SB2,数码管恢复显示&15&;按下SB1可以重新运行。
&&& 2)运行中停止。按下按钮SB1,绿灯闪烁,同时数码管开始显示绿灯的闪烁次数,在未显示到&00&前按下SB2,此时绿灯应熄灭,同时数码管变为显示&15&;按下SB1可以重新运行。
&&& 3)停止控制。无论在运行中或运行完成后,只要按下SB2,灯立刻熄灭,且数码管立刻显示&15&。
&&& 4.分析与思考
&&& 图7-7所示程序是通过&F80 (BCD)&指令,直接将计数器C1008的实时值由二进制码转变为BCD码并输送到2位数码管中,实现计数器经过值区EV的显示。要注意每次启动时都要将计数器复位,否则计数器动作后将会保持,而不能实现重启动显示。图7-7所示程序中,在按下按钮SB2时使灯熄灭,同时将&15&传送给数码管,从而实现停止后数码管的显示值从&00&变为&15&显示。
&&& 如果要实现绿灯能重复闪烁,同时数码管能重复显示闪烁次数,只需在图7-7所示程序中增加&用计数器C1008的上沿脉冲触点对计数器C1008复位&即可。
(责任编辑: 佚名 )
本文关键字:
免责声明:本文章仅代表作者个人观点,与艾特贸易网无关。本站大部分技术资料均为原创文章,文章仅作为读者参考使用,请自行核实相关内容,如若转载请注明来源:
将功率器件直接串、并联使......
USS_WPM_W(见图10-39)、US......
逻辑控制电路运行的基本条......
日22时40分,......
新闻热点排行

我要回帖

更多关于 七段数码管真值表 的文章

 

随机推荐