久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1698|回復: 2
收起左側

51單片機移植到STM32數碼管滾動顯示錯誤

[復制鏈接]
ID:979469 發表于 2022-8-23 19:10 | 顯示全部樓層 |閱讀模式
求看看哪里有問題111是51程序可以正常運行
改成32不知道哪里有問題不顯示

單片機源程序如下:
#include <STC89C5xRC.H>
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int


sbit duan=P2^6;
sbit wei=P2^7;
uchar code tab[18]={0x06,0x6f,0x7f,0x06,0x06,0x06,0x6d,0x66,0x5b,0x06,0x5b,0x6f,0x00,0x00,0x00,0x00,0x00,0x00};
//共陰極數碼管段碼表
uchar idata dis_buf[6]={17,17,17,17,17,17};
//顯示緩沖區數據(十進制)
void delayms(uint i) //延時1ms函數
{
                uint j;
        for(;i>0;i--)
for(j=120;j>0;j--)
{;}
}




void main() //主函數
{
        uchar k,m,n,bitcode,segcode;
        while(1)
                {
                        for(n=0;n<17;n++)
                        {
                                dis_buf[0]=dis_buf[1]; //數據移動
                                dis_buf[1]=dis_buf[2];
                                dis_buf[2]=dis_buf[3];
                                dis_buf[3]=dis_buf[4];
                                dis_buf[4]=dis_buf[5];
                                dis_buf[5]=n;
                                for(m=0;m<100;m++) //100次掃描,大約600ms
                                {
                                        bitcode=0xfe; //起始位碼
                                        for(k=0;k<6;k++)
                                        {
                                                P0=0xff; //消影
                                                wei=1;
                                                wei=0;
                                                segcode=dis_buf[k]; //取數據
                                                P0=tab[segcode]; //送段碼
                                                duan=1;
                                                duan=0;
                                                P0=bitcode; //送位碼
                                                wei=1;
                                                wei=0;
                                                delayms(1);
                                                bitcode=_crol_(bitcode,1); //更新位碼,準備顯示下一位
                                        }
        }
     }
  }
}


下面是所改不顯示仿真圖就換個主控端口


#include "stm32f10x.h"
#include "smg.h"
#include "Delay.h"
//uint16_t table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//uint16_t wei[]={0x0fe,0x0fd,0x0fb,0x0f7,0x0ef,0x0df};

u8 tab[18]={0x06,0x6f,0x7f,0x06,0x06,0x06,0x6d,0x66,0x5b,0x06,0x5b,0x6f,0x00,0x00,0x00,0x00,0x00,0x00};
//共陰極數碼管段碼表
u8 dis_buf[6]={17,17,17,17,17,17};
//顯示緩沖區數據(十進制)
uint8_t i;
int main(void)
{
        u8 k,m,n,bitcode,segcode;
SMG_Init();
while(1)
{
         for(n=0;n<17;n++)
                        {
                                dis_buf[0]=dis_buf[1]; //數據移動
                                dis_buf[1]=dis_buf[2];
                                dis_buf[2]=dis_buf[3];
                                dis_buf[3]=dis_buf[4];
                                dis_buf[4]=dis_buf[5];
                                dis_buf[5]=n;
        for(m=0;m<100;m++) //100次掃描,大約600ms
                {
                        bitcode=0x0fe; //起始位碼
  for(i=0;i<6;i++)
   {
                 GPIO_Write(GPIOC,0x0ff);
                 
                 GPIO_SetBits(GPIOB,GPIO_Pin_1);
                  Delay(100);
                 GPIO_ResetBits(GPIOB,GPIO_Pin_1);
                 
                 segcode=dis_buf[ i];
                  
                 GPIO_Write(GPIOC,tab[segcode]); //送段碼
                 
                 GPIO_SetBits(GPIOB,GPIO_Pin_0);
                  Delay(100);
                 GPIO_ResetBits(GPIOB,GPIO_Pin_0);
                 
                 
                 GPIO_Write(GPIOC,bitcode); //送位碼
                 GPIO_SetBits(GPIOB,GPIO_Pin_1);
                 Delay(100);
                 GPIO_ResetBits(GPIOB,GPIO_Pin_1);
//    GPIO_Write(GPIOB,wei[i-1]);
//    GPIO_Write(GPIOC,table[ i]);
      Delay(100);


                         bitcode=My_crol_(bitcode,1); //更新位碼,準備顯示下一位
                  Delay(50);
    }
         
   }
  }
}
}


#include"stm32f10x.h"
#include"smg.h"
void SMG_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);
        GPIO_InitStructure.GPIO_Pin = 0x00ff;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOC,&GPIO_InitStructure);
        GPIO_InitStructure.GPIO_Pin = 0x0003;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB,&GPIO_InitStructure);
}
u32 My_crol_(u32 data,u8 num)
{
        u8 i=0;
        u32 temp1=0;
        u32 temp2=0;
        u32 rtn_data;
        
        temp1=data;
        
        for(i=0;i<num;i++)
        {
                temp1=temp1<<1;
                temp2=temp2<<1;        
    if(temp1>0x0fffffff)
          {
          temp2+=1;
          }
        
         
        }
  rtn_data=temp1+temp2;
        return rtn_data;

}

111.zip

306.23 KB, 下載次數: 7

51單片機程序

管動態掃描.7z

299.25 KB, 下載次數: 11

32單片機

回復

使用道具 舉報

ID:301191 發表于 2022-9-1 13:42 | 顯示全部樓層
頂一下
回復

使用道具 舉報

ID:824490 發表于 2022-9-1 16:47 | 顯示全部樓層
把仿真工程和代碼一起發上來,將會有更多來幫你。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 二区不卡| 日韩在线观看一区二区三区 | 日韩精品四区 | 亚洲 欧美 日韩在线 | 中文字幕精品一区二区三区精品 | 亚洲 中文 欧美 日韩 在线观看 | 亚洲综合一区二区三区 | 91中文字幕在线 | 天堂在线中文字幕 | 亚洲一区二区三区在线 | 蜜臀av日日欢夜夜爽一区 | 日韩三级在线观看 | 在线视频亚洲 | 日韩色图在线观看 | 国产精品一区二区视频 | 在线天堂免费中文字幕视频 | 人干人操 | 欧美成人免费在线视频 | 国产欧美精品一区二区 | 欧美二区三区 | 精品综合 | 久久婷婷麻豆国产91天堂 | 美国一级片在线观看 | 国产精品国产精品国产专区不卡 | 婷婷色婷婷| 亚洲国产精品久久久久婷婷老年 | av在线免费观看网站 | 日本不卡一区二区三区在线观看 | 激情欧美一区二区三区中文字幕 | 国产精品久久久久久久久免费桃花 | 亚洲欧洲一区二区 | 在线一区二区三区 | 欧美成人h版在线观看 | 久久久久久久国产 | 亚洲一区二区在线 | 国产免费一区二区 | 蜜桃在线播放 | 欧美性久久久 | 仙人掌旅馆在线观看 | 国产乱码精品1区2区3区 | 成人网在线观看 |