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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1735|回復: 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單片機

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

地板
ID:824490 發表于 2022-9-1 16:47 | 只看該作者
把仿真工程和代碼一起發上來,將會有更多來幫你。
回復

使用道具 舉報

板凳
ID:301191 發表于 2022-9-1 13:42 | 只看該作者
頂一下
回復

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品一区欧美 | 成人av免费在线观看 | 欧美xxxx黑人又粗又长 | 特级特黄特色的免费大片 | 91欧美精品成人综合在线观看 | 成人福利网站 | 成人在线国产 | 国产精品99999999 | 国产一区二区三区久久久久久久久 | 欧美天堂 | 自拍视频一区二区三区 | 精品国产区 | 国产精品久久一区二区三区 | 粉嫩av久久一区二区三区 | 欧美精品一区二区三区在线播放 | 91精品国产综合久久久久久 | 国产一区欧美一区 | 毛片黄片 | 91精品国产91久久综合桃花 | 成人午夜精品一区二区三区 | 国产一区二区电影 | 日韩欧美在线播放 | 日本不卡免费新一二三区 | 黑人巨大精品 | 成人免费视频网站在线观看 | 国产传媒毛片精品视频第一次 | 成人午夜免费网站 | 久久一二区 | 欧美成视频 | 亚洲精品大片 | 九九热免费在线观看 | 亚洲国产精品99久久久久久久久 | 亚洲激情第一页 | 激情网站 | 99福利在线观看 | 免费观看a级毛片在线播放 黄网站免费入口 | 色婷婷国产精品综合在线观看 | 久久精品久久久久久 | 久久久久久国产精品 | 91久久精品视频 | 亚洲中午字幕 |