请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
搜索
查看: 267|回复: 4

用数码管显示1314520

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2020-2-27 21:09:19 | 显示全部楼层 |阅读模式
1金钱
求开

发攻略里数码管课后作业代码
我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 金钱 , 目前已有4人回答

回复

使用道具 举报

19

主题

1290

帖子

5473

积分

论坛元老

Rank: 8Rank: 8

积分
5473
发表于 2020-2-28 10:40:40 | 显示全部楼层
本来也想帮你做做作业的,但我不知道是不是你的同学,或者是不是你的老师,或者是不是和你有相同的开发板,或者我们是不是有相同的“开发板攻略”,你的作业要求我不知道哇,所以做不了。
回复

使用道具 举报

0

主题

6

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2020-3-2 16:30:27 | 显示全部楼层
我算半个新手吧,毕竟有点硬件基础,昨天刚开始学,今天刚好看到着,就顺便做了,还望采纳。  我的是A2开发板的,下面是我的代码:  #include "reg52.h"   typedef unsigned char u8; typedef unsigned int u16;  sbit LSA = P2^2; sbit LSB = P2^3; sbit LSC = P2^4; u8 i;  u8 code smgduan[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,         // 数码管显示0~f *16位进制          0011 1111                                         0x7d,0x07,0x7f,0x6f,0x77,                                         0x7c,0x39,0x5e,0x79,0x71};  void delay(u16 i) {         while(i--);  }  void DigDisplay()        //第几位数码管亮    {         switch(i)                  {                 case(0):                                           LSA= 0;LSB= 0; LSC= 0; break;                 case(1):                                           LSA= 1;LSB= 0; LSC= 0; break;                 case(2):                                           LSA= 0;LSB= 1; LSC= 0; break;                 case(3):                                           LSA= 1;LSB= 1; LSC= 0; break;                 case(4):                                           LSA= 0;LSB= 0; LSC= 1; break;                 case(5):                                           LSA= 1;LSB= 0; LSC= 1; break;                 case(6):                                           LSA= 0;LSB= 1; LSC= 1; break;                 case(7):                                           LSA= 1;LSB= 1; LSC= 1; break;          } }  void Love()                        //数码管显示数字 {                                    switch(i)                  {                 case(0):                                 P0 = smgduan[0]; break;                 case(1):                                 P0 = smgduan[2]; break;                 case(2):                                 P0 = smgduan[5]; break;                 case(3):                                 P0 = 0x40           ; break;                //   0100 0000                 case(4):                                 P0 = smgduan[4]; break;                 case(5):                                 P0 = smgduan[1]; break;                 case(6):                                 P0 = smgduan[3]; break;                 case(7):                                 P0 = smgduan[1]; break;                                  }                 delay(100);                 P0= 0x00; }  void main() {                          while(1)         {                 for(i=0;i<8;i++)                 {                   DigDisplay();                   Love();                 }         }  }
回复

使用道具 举报

0

主题

6

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2020-3-2 16:32:09 | 显示全部楼层
唐朝世家 发表于 2020-3-2 16:30
我算半个新手吧,毕竟有点硬件基础,昨天刚开始学,今天刚好看到着,就顺便做了,还望采纳。  我的是A2开发 ...

下面的回复不知道为什么,一直显示错误,所以只能选择快速回复了
回复

使用道具 举报

0

主题

3

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2020-3-21 15:42:53 | 显示全部楼层
在定义一个位数据u8 data dis_buf[7]={1,3,1,4,5,2,0};在修改 P0 = smgdua[dis_buf[i]]
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2020-4-10 03:35 , Processed in 0.062500 second(s), 25 queries .

Powered by 论坛制作 X3.4

© 2001-2017 Comsenz Inc.

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