| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3442 人关注过本帖
标题:怎么让数码管上的四个数 1234 流动起来(循环)
只看楼主 加入收藏
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
两个程序,运行先输入n,1~n滚动循环。
·
第一个简单点的,没退出功能。
程序代码:
#include <stdio.h> 
int main(void) 
{ 
 int a[30],i,n; 
 scanf("%d",&n); 
 for(i=0;i<n;i++) 
   a[i]=i+1; 
 while(1) 
   { 
    for(i=0;i<n;i++) 
      { 
       printf("%d",a[i]); 
       if(a[i]==1)a[i]=n; 
       else a[i]--; 
      } 
    for(i=0;i<n;i++) 
      printf("\b"); 
   } 
 return; 
}
·
·
复杂点的,可以调速,按小键盘'+'加号是加速,'-'减号是减速,按ESC退出。
程序代码:
#include <stdio.h> 
#include <dos.h> 
#include <time.h> 
#define KEY_ESC 0x011b 
#define KEY_JIA 0x4e2b 
#define KEY_JIAN 0x4a2d 
#define INTR 0x1c 
 
void interrupt(*oldhandler)(void); 
 
int count=1; 
 
void interrupt handler(void) 
{ 
 disable(); 
 count++; 
 enable(); 
 oldhandler(); 
} 
 
int main(void) 
{ 
 int a[30],n,i,key,m=10; 
 time_t t; 
 clrscr(); 
 scanf("%d",&n); 
 for(i=0;i<n;i++) 
   a[i]=i+1; 
 
 oldhandler=getvect(INTR); 
 setvect(INTR,handler); 
 srand((unsigned)time(&t)); 
 while(1) 
   { 
    if(bioskey(1)) 
      if((key=bioskey(0))==KEY_ESC)break; 
      else if(key==KEY_JIA)m>0?m--:m; 
       else if(key==KEY_JIAN)m++; 
 
    if(count>m) 
      { 
       count=0; 
       gotoxy(10,5); 
       for(i=0;i<n;i++) 
     { 
      printf("%d",a[i]); 
      if(a[i]==1)a[i]=n; 
      else a[i]--; 
     } 
      } 
   } 
 
 return 0; 
}

努力—前进—变老—退休—入土
2009-10-24 21:11
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
回复 11楼 UserYuH
那个……你应该在声明count的时候加上volatile……

另外,写TIME_INTR嘛,我都没注意到是啥中断…………

另:Win32下编程,请习惯Sleep

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-10-25 11:05
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:0 
单片机上的C跟这些是不一样的. 选中一个管,输出, 关掉, 选中下一个,输出,关掉,... 4次为一循环. 维持适当的时间.  然后根据你的需要,改变各管输出的数字,再循环4次显示.   虽然同一时间只是由你的P3口控制显示一个管,但是数码管就是利用人的视觉暂留来显示的.4次一循环,轮流扫描4个管,看起来就是4个管同时显示不同的数字.

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2009-10-25 13:17
快速回复:怎么让数码管上的四个数 1234 流动起来(循环)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033234 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved