找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4160|回复: 4
收起左侧

求助帮忙分析一下这个程序 displaydate【i】=number(0)是啥意思

[复制链接]
ID:314818 发表于 2018-5-13 16:32 来自手机 | 显示全部楼层 |阅读模式
  1. #define uchar unsigned char         //快捷定义
  2. #define uint unsigned int         //快捷定义
  3. #define duan P2     //数码管段选接口
  4. #define wei P3      //数码管位选接口
  5. sbit ledH=P0^2;     //指示红灯接口
  6. sbit ledL=P0^3;     //指示绿灯接口
  7. sbit Frst=P1^4;            //按键1
  8. sbit Second=P1^5;        //按键2
  9. sbit Third=P1^6;        //按键3
  10. sbit Forth=P1^7;        //按键4
  11. sbit k1=P1^0;       //start按键
  12. sbit k2=P1^1;                //reset按键
  13. uchar i=0;                        //数码管显示计时
  14. //uchar qinflag;          //移位标志
  15. uchar code number[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x8c,0xff,0xbf,0xcf};         //0~9,a,b,c,d,e,f,p,不显示,-,
  16. iuchar code weizi[11]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x10,0x20};//位选数据//
  17. uchar code error[10]={0xff,0xaf,0xc0,0xaf,0xaf,0x86,0xff,0xff,0xff};//erroruchar displayData[11];
  18. //uchar weishu;
  19. char time;
  20. uchar qdShijian;                //时间计时
  21. uchar xuanshou;                  //选手编号
  22. bit qdQidong;                         //抢答启动
  23. //bit dtQidong; //答题启动
  24. bit select;                                 //选择
  25. uint count;                                //定时计时变量
  26. void init();                          //初始化
  27. uchar scanzhi();                //获取按键值
  28. void display();                        //数码管显示
  29. void duzhichuli();                //数据处理
  30. =================================================
  31. void keyscan(){        
  32. if(k1==0)                //检测按键K1是否按下开始        
  33. {                //Delay10ms();        //消除抖动
  34.         //        while(k1==0);        //松手检测        
  35.         qdQidong = 1; //启动抢答               
  36. qdShijian = 20;//倒计时20秒        
  37.         select = 1;        //启动选择        
  38.         ledL = 1;  //绿灯亮        }        
  39. if(k2==0)                //检测按键K2是否按下复位
  40.         {                ledL = 0;        //绿灯灭               
  41. ledH = 0;  //红灯灭               
  42. select = 1;//选择               
  43. for(i=1;i<12;i++)  //显示数据清零   
  44.          displayData[i]=number[0];                        }        
  45. if(select == 1 && qdQidong == 1)         //抢答处理
  46.         {                if(Frst==0)                //检测按键1号选手        
  47.         {                        select = 0;         //退出选择        
  48.         //        dtShijian = 30;  //倒计时30秒        
  49.         //        dtQidong = 1;  //倒计时启动               
  50.         qdQidong = 0;   //抢答停止               
  51.         xuanshou = 1;                 //选手1               
  52.         time=0;               
  53.         displayData[1] = number[10]; //显示a                        
  54.         displayData[2] = number[xuanshou]; //显示编号                }
复制代码





displaydate【i】=number(0)是啥意思
回复

使用道具 举报

ID:213173 发表于 2018-5-13 19:09 | 显示全部楼层
        for(i=1;i<12;i++)  //显示数据清零   
                displayData[i]=number[0];      
displayData[]是显示缓存,number[]是字符数组,程序是循环12次把缓存清零 。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:141497 发表于 2018-5-13 22:24 | 显示全部楼层
意思是把显示数组中每一组写入0x00.
回复

使用道具 举报

ID:329267 发表于 2018-5-14 03:12 | 显示全部楼层
displayData[i]=number[0]; 这里number[0]应该为“0”的显示代码,把所有的显示缓冲置0,在屏上显示字符0,查找对应的电路图应该会更加清楚。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:329267 发表于 2018-5-14 03:14 | 显示全部楼层
number[0]应该为字符’0“的显示代码,displaydate[i]=number(0); 应该是把所有的显示缓冲区填成字符”0“,在LED屏上显示字符”0“的意思。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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