用一位数码管和按键,手动数码管循环显示数字1523010101

C51编程:如何让一位数码管循环显示数字0~9,时间间隔为1秒?_百度知道
C51编程:如何让一位数码管循环显示数字0~9,时间间隔为1秒?
我有更好的答案
for(j=0;unsigned&nbsp.jpg" esrc="http,有仿真图,0x82,0xf8; for(i=100;&unsigned&char&code1[10]&nbsp,j,P0加上拉电阻,74HC373做驱动,不过没加保护电阻;j&100;j++).hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=cf0f736d8ab/fc1fe4d38dbb8d1c8a786c9175c5d;{ &while(1) &{
for(a=0;a&lt,仿真通过;i;delay()&nbsp:这是源码://a,0x99,0x92.com/zhidao/pic/item/fc1fe4d38dbb8d1c8a786c9175c5d.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="&}&main()&int&a;&nbsp:&#include&reg52.h&gt.=&{0xc0,0xf9.hiphotos.baidu.com/zhidao/wh%3D450%2C600/sign=ebc4c02d7e9db716e3ca/fc1fe4d38dbb8d1c8a786c9175c5d;=9;a++)
P0=code1[a];
delay(); unsigned&int&
} }&}<a href="http://a.void&nbsp://a,0xa4,0xb0非精确的,用定时器就足够了,0x80,0x90};&{&nbsp
采纳率:38%
为您推荐:
其他类似问题
数码管的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。按一下按键,数码管从0~9循环显示,再按一下,数码管锁定,汇编怎么实现?_百度知道
按一下按键,数码管从0~9循环显示,再按一下,数码管锁定,汇编怎么实现?
您的回答被采纳后将获得:
系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏5(财富值+成长值)
我有更好的答案
#TAB&DB&&&+&DPTR&&&&MOV&&&&nbsp,&&nbsp.0;&A;&&&MOV&&&DPTR;&&&$&-&MAIN;--------------------------KEY:&&&&CPL&MOV&&&R2;&0000HMAIN,&&&&&nbsp,&2&&&&DJNZ&&R5,&&&$&-&CJNE&nbsp,0F8H&&&&&99H;&0C0H,0F9H,&JNB&&&P1;DELAY&&&&JNB&&&&nbsp:&&&&NEXT;--------------------------DELAY:&&&&MOV&$&&&&JMP&$&&&&DJNZ&&R6,&82H;&92H;&R2&&CALL&4&&&&RET;--------------------------TAB:&&&&&&;&&R2&nbsp,&080H,&90H,&88H,&83H,0C6H,0A4H,0B0H;&A;&P2,&A&nbsp,&@A&&P1.0,&KEYNEXT:&&&&JNB&共阳段码&nbsp,&&&&nbsp需要编程。&&&&ORG&F0&&F0,&LOOP&&&&INC&DB&R5,&#2&&&&DJNZ&&R7,&#0LOOP:&&&&MOV&nbsp,&&&&MOVC&R2,&#10,&LOOP&&&&JMP&&&&nbsp
为您推荐:
其他类似问题
数码管的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。用一个按钮控制一个数码管,实现按一下键数码管加一,从0到9依次循环_百度知道
用一个按钮控制一个数码管,实现按一下键数码管加一,从0到9依次循环
用一个按钮控制一个数码管,实现按一下键数码管加一,从0到9依次循环,用80c51单片机!?
我有更好的答案
0x6f,0x77};void Delay1ms(uint i) /#define uchar unsigned char#define uint unsigned intsbit
key=P1^0#include&reg52.h&gt,0x7d, 0x07,0x7f,0x5b,0x4f;164;uchar code table[]={0x3f,0x06;uchar num=0,0x66,0x6d;/1ms延时程序{ for(;i&
}P0=table[num];0;i--) { for(j=0;j&/主程序{while(1){
if(key==0)
Delay1ms(10);
if(key==0)
while(key==0);
if(num==10)num=0;j++) {;} }}void main(void )&#47
采纳率:88%
来自团队:
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。按键控制1位LED数码管显示0-9_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
按键控制1位LED数码管显示0-9
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩13页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢单片机检测和处理按键时怎样不干扰数码管的显示?_百度知道
单片机检测和处理按键时怎样不干扰数码管的显示?
用C语言编写一个定时器,基于STC89C52和四位动态显示数码管。现在的问题是当按下按键时数码管显示会变暗,分析原因应该是按键去抖时数码管无法显示所致。并且由于按键和显示是循环处理,所以只要按住按键不放就会不停动作。应该怎么处理?请大家提供一个相对简...
这种动态扫描的程序有个缺点,就是要想正常显示CPU就不能执行其他工作。听说用定时器可以取代完成,要怎么做呢?
我有更好的答案
重新调整一下结构吧,不过你要把几个按键的扫描时间安排在4个数码管的显示时间内,即是显示第一位数码管后就扫描第一个按键状态,判断按键的不同状态(开或合)给予不同的标志(这个标志用来后面程序统一处理按键的动作的);当显示第二位数码管后就扫描第二个按键的状态,判断按键的不同状态(开或合)给予不同的标志...以此类推,4个以内的按键也还是用扫描,你可以试一下这样:你的4位数码管还是用动态扫描程序乱了一点
采纳率:27%
/sbit LED=P1^2,没有释放则一直等待
KEY_ADD=1,精确延时请使用汇编;函数声明 void DelayMs(unsigned char t);void Display(unsigned char FirstBit,unsigned char Num),1);
// //如果检测到低电平,如需要显示99两位数值则该值输入2------------------------------------------------*/void Display(unsigned char FirstBit,unsigned char Num){
for(i=0;i&Ni++)
DataPort=0;
//清空数据,防止有交替重影
DataPort=dofly_WeiMa[i+FirstBit]; //取位码
DataPort=TempData[i]; //取显示数据,段码
DelayMs(2); // 扫描间隙延时,时间太长会闪烁,太短会造成重影
}},说明按键按下
DelayMs(10); //定义led输出端口#define DataPort P0 /
DelayUs2x(245); }}/*------------------------------------------------ 显示函数,0xef,0/再次确认按键是否按下;void DelayMs(unsigned char t){
while(t--) {
/如果确认按下按键等待按键释放,没有释放则一直等待
&#47,大致延时 长度如下 T=tx2+5 uS ------------------------------------------------*/void DelayUs2x(unsigned char t){
while(--t)。 Num表示需要显示的位数,0x5b,0x4f,即位码unsigned char TempData[8]; /&#47,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编------------------------------------------------*//*------------------------------------------------
主函数------------------------------------------------*/void main (void){unsigned char num=0;/包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sbit KEY_ADD=P3^3;}/*------------------------------------------------ mS延时函数,含有输入参数
//主循环中添加其他需要一直工作的程序
}}/*------------------------------------------------ uS延时函数;/
位锁存unsigned char code dofly_DuanMa[10]={0x3f,0x06,我缺分,一般10-20ms
if(,用于动态扫描数码管 输入参数 FirstBit 表示需要显示的第一位,如赋值2表示从第三个数码管开始显示 如输入0表示从第一个显示,你一直按着的时候 就一直死在那里,肯定会造成黑屏,你也没有处理防止一次按键多次响应的标志位,希望你能看懂,这用了个锁存芯片573,但那个按键 是个蛮好的按键,可以参考下,觉得好的话给点分;/如果确认按下按键等待按键释放;/ 显示段码值0~9unsigned char code dofly_WeiMa[]={0xfe,0xfd,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M;/减操作
TempData[0]=dofly_DuanMa[num%10];定义锁存使能端口 段锁存sbit LATCH2=P2^3;//大致延时1mS
DelayUs2x(245),0xbf,0x7f};////分别对应相应的数码管点亮;/按键输入端口电平置高KEY_DEC=1;while (1)
&#47,无返回值 unsigned char 是定义无符号字符变量; /
Display(0;/加操作
} } if(,0x66,0x6d;// &#47,好像你写的好乱;//如果检测到低电平,说明按键按下
DelayMs(10),0xfb,0xf7!KEY_ADD);&#47!KEY_DEC)
/&#47,没有按下则退出
while(!KEY_DEC);/延时去抖;存储显示值的全局变量void DelayUs2x(unsigned char t),没点思路一样,给你个程序让你参考下,0x7f,0x6f};/再次确认按键是否按下,没有按下则退出
while(,0x7d,0x07;延时去抖,一般10-20ms
if(!KEY_ADD)
/&#47,程序如下:#include&reg52.h&/主循环
if(!KEY_ADD)
//定义数据端口 程序中遇到DataPort 则用P0 替换sbit LATCH1=P2^0;定义按键输入端口sbit KEY_DEC=P3^4是按键的问题
本回答被网友采纳
按键消抖不要采用延时来实现,懂事电子设计 Vgz
1条折叠回答
为您推荐:
其他类似问题
您可能关注的内容
单片机的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 按键控制数码管加减 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信