找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1464|回复: 4
打印 上一主题 下一主题
收起左侧

单片机怎么在已显示的静态初值上进行动态显示

[复制链接]
跳转到指定楼层
楼主
ID:837970 发表于 2020-11-2 20:58 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设计一个数码管动态显示,显示202.0,每过0.1秒,显示内容加1
求如何开始显示202.0
#include <reg51.h>
#define seg_bit P2                                       
#define seg_dat P3       
#define uint unsigned int                                        #define uchar unsigned char               
unsigned char code numtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char code bittab[]={0xfe,0xfd,0xfb,0xf7};
unsigned char t;
void delayms(uint);
uint num=0;
void main()
{ TMOD=0X01;                        TH0=(65536-50000)/256;                TL0=(65536-50000)%256;        EA=1;                                ET0=1;                                       
TR0=1;               
while(1)        {                                                   
P2=0Xfe;              
P3=numtab[num%10];                  delayms(5);                               
P3=0;                 
P2=0Xfd;                P3=numtab[(num/10)%10]|0x80;                          delayms(5);                               
P3=0;                                                                              P2=0Xfb;               
P3=numtab[(num/100)%10];                          delayms(5);                               
P3=0;                P2=0Xf7;                P3=numtab[(num/1000)%10];                          delayms(5);                                P3=0;                                                                   }                }       
void jishu() interrupt 1{                        TH0=(65536-50000)/256;                        TL0=(65536-50000)%256;                t++;                if(t==2)               
{t=0;num++;}                                                                                }
void delayms(uint xms)                 //延时程序{                        uint i,j;        for(i=xms;i>0;i--)                for(j=110;j>0;j--);}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:235200 发表于 2020-11-3 00:30 | 只看该作者
把要显示的内容存放在内存缓冲区,更改缓冲区的数据实现实时显示更新的内容
回复

使用道具 举报

板凳
ID:213173 发表于 2020-11-3 06:29 | 只看该作者
设num初值=2020即可。
  1. #include <reg51.h>
  2. #define seg_bit P2                                       
  3. #define seg_dat P3        
  4. #define uint unsigned int
  5. #define uchar unsigned char               

  6. uchar code numtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  7. uchar code bittab[]={0xfe,0xfd,0xfb,0xf7};
  8. uchar data disbuf[4];
  9. uchar t,i;
  10. uint num=2020;

  11. void delayms(uint xms)//延时程序
  12. {
  13.         uint i,j;
  14.         for(i=xms;i>0;i--)
  15.                 for(j=110;j>0;j--);
  16. }

  17. void main()
  18. {
  19.         TMOD=0X01;
  20.         TH0=(65536-50000)/256;
  21.         TL0=(65536-50000)%256;
  22.         EA=1;
  23.         ET0=1;
  24.         TR0=1;
  25.         while(1)
  26.         {
  27.                 disbuf[0]=numtab[num%10];
  28.                 disbuf[1]=numtab[num/10%10]|0x80;
  29.                 disbuf[2]=numtab[num/100%10];
  30.                 disbuf[3]=numtab[num/1000%10];
  31.                 seg_dat=0x00;
  32.                 seg_bit=bittab[i];
  33.                 seg_dat=disbuf[i];
  34.                 i++;
  35.                 i%=4;
  36.                 delayms(1);
  37.         }
  38. }

  39. void jishu() interrupt 1
  40. {
  41.         TH0=(65536-50000)/256;
  42.         TL0=(65536-50000)%256;
  43.         t++;
  44.         if(t==2)
  45.         {
  46.                 t=0;
  47.                 num++;
  48.                 if(num>9999)
  49.                         num=2020;
  50.         }
  51. }
复制代码
回复

使用道具 举报

地板
ID:837970 发表于 2020-11-4 15:40 来自手机 | 只看该作者
wulin 发表于 2020-11-3 06:29
设num初值=2020即可。

谢谢,已经实现并运行
回复

使用道具 举报

5#
ID:837970 发表于 2020-11-4 15:40 来自手机 | 只看该作者
csmyldl 发表于 2020-11-3 00:30
把要显示的内容存放在内存缓冲区,更改缓冲区的数据实现实时显示更新的内容

谢谢,加深了对单片机的理解
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表