OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5461|回复: 5

原子大哥,各位大神,新手小弟求助:8位动态数码管实验,

[复制链接]

4

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2013-9-14
在线时间
0 小时
发表于 2013-9-19 23:44:26 | 显示全部楼层 |阅读模式
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "delay.h"
 /********************************硬件接口定义*********************************/
#define    LS138A  GPIO_Pin_7 //=P2^0;       //138译码器管脚定义
#define    LS138B  GPIO_Pin_6 //=P2^1;
#define    LS138C  GPIO_Pin_5 //=P2^2; 

/********************************宏定义*********************************/
#define    LS138a(x)  x ? GPIO_SetBits(GPIOB, LS138A): GPIO_ResetBits(GPIOB, LS138A)
#define    LS138b(x)  x ? GPIO_SetBits(GPIOB, LS138B): GPIO_ResetBits(GPIOB, LS138B)
#define    LS138c(x)  x ? GPIO_SetBits(GPIOB, LS138C): GPIO_ResetBits(GPIOB, LS138C)
/*
x ? a:b   是一个三目运算符,表达的意思就是判断x的值,如果为真,执行a(这里可以代表一串代码),
如果为假,则执行b,然后#define  LS138a(x)属于带参数的宏定义,这里宏定义的意思就是在程序中,
如果执行LS138a(1); 那么就会执行GPIO_SetBits(GPIOB, LS138A);
如果执行LS138a(0); 则执行GPIO_ResetBits(GPIOB, LS138A);
*/


u16 Count0;
u8  Count;
unsigned long D[16], LedOut[8];

// 此表为 LED 的字模          
//此表为 LED 的字模, 共“阴”极数码管的码表  0~9   段选
unsigned char  Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; 
 
int main()
{
 unsigned char i;
 //初始化,输入输出模式设定
 GPIO_InitTypeDef GPIO_InitStruct;//初始化 IO 参数
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能IO口时钟 GPIOB

 //端口配置 38译码器:GPIOB.5~7       8位动态数码管:GPIOB.8~15  
 GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7| //译码器
                          GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|
                          GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15                         
 ;
   
 GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;//速度 50MHz      
 GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//通用推挽输出

 GPIO_Init(GPIOB,&GPIO_InitStruct);//根据设定参数配置 GPIO
 delay_init();
 
 while (1)
  {   
   Count++;
 if(Count==20)
 {
  Count0++;
  Count=0;
 }
 D[0] =Count0;
   D[1] =Count0; 

  /********以下将数据的值送到LED数码管显示*************/
    
 LedOut[0]=Disp_Tab[D[1]%100000000/10000000]; //千位
      LedOut[1]=Disp_Tab[D[1]%10000000/1000000];   //百位
      LedOut[2]=Disp_Tab[D[1]%1000000/100000]; //十位
      LedOut[3]=Disp_Tab[D[1]%100000/10000]; //个位
 
 LedOut[4]=Disp_Tab[D[0]%10000/1000]; //;//千位
      LedOut[5]=Disp_Tab[D[0]%1000/100];// ;//百位
      LedOut[6]=Disp_Tab[D[0]%100/10];//十位
      LedOut[7]=Disp_Tab[D[0]%10];      //个位
   
      for(i=0; i<8; i++) 
   {
   //LedOut=0x4f;
   //GPIOB->BSRR = LedOut & 0x00FF;    //屏蔽高位操作
          //GPIOB->BRR = (~LedOut) & 0x00FF;  //屏蔽高位操作
     GPIO_Write(GPIOB , LedOut);      
switch(i)//138译码位选  
         {      //138译码  A  B  C
case 0:  //0 0 0 
LS138a(0); LS138b(0);  LS138c(0);//显示第0位
break;
        
            case 1: //1 0 0 
LS138a(1); LS138b(0);  LS138c(0);//显示第1位
break; 
           
            case 2: //0 1 0
LS138a(0); LS138b(1);  LS138c(0);//显示第2位
break; 

            case 3: //1 1 0
LS138a(1); LS138b(1);  LS138c(0);//显示第3位
break;
case 4: //0 0 1
LS138a(0); LS138b(0);  LS138c(1);//显示第4位
break; 
case 5: //1 0 1
LS138a(1); LS138b(0);  LS138c(1);//显示第5位
break; 

case 6: //0 1 1
LS138a(0); LS138b(1);  LS138c(1);//显示第6位
break;

case 7: //1 1 1
LS138a(1); LS138b(1);  LS138c(1);//显示第7位
break;
 
         }

 delay_ms(300); //延时函数
 }
  }
}
这个是主程序,谱中的板子stm32f103c8,迷你版,程序下载进去之后,只有第一位亮,乱码
自恐多情损梵行, 入山又怕误倾城。 世间安得双全法, 不负如来不负卿。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2013-9-14
在线时间
0 小时
 楼主| 发表于 2013-9-19 23:45:19 | 显示全部楼层
这个问题空绕我很久了,希望各位大神,给点帮助
自恐多情损梵行, 入山又怕误倾城。 世间安得双全法, 不负如来不负卿。
回复 支持 反对

使用道具 举报

4

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2013-9-14
在线时间
0 小时
 楼主| 发表于 2013-9-20 00:28:18 | 显示全部楼层
为什么下进去,不能八位显示呢?
自恐多情损梵行, 入山又怕误倾城。 世间安得双全法, 不负如来不负卿。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-20 09:59:14 | 显示全部楼层
用JTAG仿真下吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2013-9-14
在线时间
0 小时
 楼主| 发表于 2013-9-20 21:45:28 | 显示全部楼层
有人吗?求助,调试不出来?
自恐多情损梵行, 入山又怕误倾城。 世间安得双全法, 不负如来不负卿。
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-9-21 12:37:49 | 显示全部楼层
回复【5楼】天涯浪子浪天涯:

有人吗?求助,调试不出来?

---------------------------------

有人。
再调。
业余程序玩家。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-12 18:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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