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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1441|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

新人求大佬幫幫(C語(yǔ)言程序問(wèn)題) 液晶屏幕無(wú)法正確顯示想要的數(shù)字

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1041179 發(fā)表于 2022-8-2 08:55 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<STC8xxxx.h>
#include <stdio.h>
#include "intrins.h"
/*************  外部函數(shù)和變量聲明 *****************/
#define  uint   unsigned int
#define  uchar  unsigned char
uchar  ScanCoun,ZZ;
#define MAIN_Fosc 22118400L //定義主時(shí)鐘

//COM  SEG 的管腳定義
sbit  LED=P1^6;  //LED
sbit COM0=P1^0;  //COM0
sbit COM1=P1^1;  //COM1
sbit COM2=P1^2;  //COM2
sbit COM3=P1^3;  //COM3
sbit SEG0=P1^4;  //SEG0
sbit SEG1=P1^5;  //SEG1
sbit SEG2=P2^6;  //SEG2
sbit SEG3=P2^5;  //SEG3
sbit SEG4=P2^4;  //SEG4
sbit SEG5=P2^3;  //SEG5
sbit SEG6=P2^2;  //SEG6
sbit SEG7=P2^1;  //SEG7
sbit SEG8=P2^0;  //SEG8
uchar ScanCoun=0;                  //動(dòng)態(tài)掃描顯示位數(shù)計(jì)數(shù)器
uchar *Tdat1,*Tdat2;
uchar LCD_load,W0,bai,shi,ge,W4;
//0~9的段碼查詢表
uchar code seg_code[12]={0xFA,0x60,0xD2,0xF4,0x6C,0xBC,0xBE,0x0E,0xEF,0xFC,0x01};
                           //0   1    2   3    4    5    6    7    8   9    Dot
////段碼緩沖區(qū)
uchar SegBuf[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//COM1、COM2、COM3、COM4對(duì)應(yīng)的段碼緩沖
/////////////延時(shí) ms//////////////
void DelayMS(uint ms)
{
        uchar i,j;
        for(i=0; i<250; i++)
        for(j=0; j<200;j++);
}
//COM口設(shè)置高阻態(tài)
void IO_set()
{
        P1n_open_drain(1<<3);//P1^3高阻    COM3
        P1n_open_drain(1<<2);//P1^2高阻    COM2
        P1n_open_drain(1<<1);//P1^1高阻    COM1
        P1n_open_drain(1<<0);//P1^0高阻    COM0
       
        P2M1=0x00;  //P2口為輸出
        P2M0=0xFF;                  //SEG2--SEG8
        P1n_push_pull(1<<4);//P1^4輸出   SEG0
        P1n_push_pull(1<<5);//P1^5輸出   SEG1
        P1n_push_pull(1<<6);//P1^6輸出   LED
}

void xianshi()
{
        LCD_load=111;
        bai=LCD_load/100%10;
        shi=LCD_load/10%10;
        ge=LCD_load%10;
}
//seg定義
void Seg2Seg()
{
        uchar SegXX;
        SegBuf[0]=0x00;SegBuf[1]=0x00; //一定要設(shè)置為0,輸出緩存初始化
        SegBuf[2]=0x00;SegBuf[3]=0x00;
        SegBuf[4]=0x00;SegBuf[5]=0x00;
        SegBuf[6]=0x00;SegBuf[7]=0x00;
//把3位數(shù)字的SEG放到COM1、COM2、COM3、COM4對(duì)應(yīng)的SEGBUF[]里面
//LCD的管腳定義與LED不同,不是一個(gè)COM對(duì)應(yīng)一位數(shù)字,而是對(duì)應(yīng)每個(gè)數(shù)字的一部分SEG
// 1    2   3    4    5   6   7   8   9   10  11  12              | 13   
//COM0                T5  T4  1F  1A  2F  2a  3f  3a -- segBuf【0】| v -- segBuf【4】  
//---- COM1           T6  T3  1G  1B  2G  2b  3g  3b -- segBuf【1】| A -- segBuf【5】   
//-------- COM2       T7  T2  1E  1C  2E  2c  3e  3c -- segBuf【2】| H -- segBuf【6】
//-------- ---- COM3  T8  T1   /  1D  P1  2d  P2  3d -- segBuf【3】| % -- segBuf【7】

// SegXX=seg_code[W0];  //電池方格
// if (SegXX&0x80) SegBuf[0]|=0x10; //T4
// if (SegXX&0x40) SegBuf[1]|=0x10; //T3
// if (SegXX&0x20) SegBuf[2]|=0x10; //T2
// if (SegXX&0x10) SegBuf[3]|=0x10; //T1
// if (SegXX&0x08) SegBuf[0]|=0x20; //T5
// if (SegXX&0x04) SegBuf[1]|=0x20; //T6
// if (SegXX&0x02) SegBuf[2]|=0x20; //T7
// if (SegXX&0x01) SegBuf[3]|=0x20; //T8

SegXX=seg_code[bai];  //第1位數(shù)字
if (SegXX&0x80) SegBuf[0]|=0x20; //1a
if (SegXX&0x40) SegBuf[1]|=0x20; //1b
if (SegXX&0x20) SegBuf[2]|=0x20; //1c
if (SegXX&0x10) SegBuf[3]|=0x20; //1d

if (SegXX&0x08) SegBuf[0]|=0x40; //1f
if (SegXX&0x04) SegBuf[1]|=0x40; //1g
if (SegXX&0x02) SegBuf[2]|=0x40; //1e
// if (SegXX&0x01) SegBuf[3]|=0x40; //0

SegXX=(seg_code[ge]|0x01);   //第2位數(shù)字
if (SegXX&0x80) SegBuf[0]|=0x08;//2a
if (SegXX&0x40) SegBuf[1]|=0x08;//2b
if (SegXX&0x20) SegBuf[2]|=0x08;//2c
if (SegXX&0x10) SegBuf[3]|=0x08;//2d
if (SegXX&0x08) SegBuf[0]|=0x10;//2f
if (SegXX&0x04) SegBuf[1]|=0x10;//2g
if (SegXX&0x02) SegBuf[2]|=0x10;//2e
if (SegXX&0x01) SegBuf[3]|=0x10;//p1

SegXX=seg_code[shi];   //第3位數(shù)字
if (SegXX&0x80) SegBuf[0]|=0x02;//3a
if (SegXX&0x40) SegBuf[1]|=0x02;//3b
if (SegXX&0x20) SegBuf[2]|=0x02;//3c
if (SegXX&0x10) SegBuf[3]|=0x02;//3d
if (SegXX&0x08) SegBuf[0]|=0x04;//3f
if (SegXX&0x04) SegBuf[1]|=0x04;//3g
if (SegXX&0x02) SegBuf[2]|=0x04;//3e
if (SegXX&0x01) SegBuf[3]|=0x04;//p2

//SegXX=(seg_code[W4]|0x01);  //符號(hào)顯示
// if (SegXX&0x80) SegBuf[4]|=0x01; //v
// if (SegXX&0x40) SegBuf[5]|=0x01; //a
// if (SegXX&0x20) SegBuf[6]|=0x01; //h
// if (SegXX&0x10) SegBuf[7]|=0x01; //&
}
/*******************************************
/////////////定時(shí)器初始化////////////
********************************************/
void InitInterResource()
{
        IE=0;       //關(guān)全部中斷
        TCON=0;     //清全部中斷請(qǐng)求
        IP=0;       //清中斷優(yōu)先級(jí)   
        TMOD=0x01;  //T0工作方式1(16位定時(shí)器)
        TH0=0xEC;   //T0定時(shí)器輔初值
        TL0=0x78;
        TR0=1;      //允許T0定時(shí)
        ET0=1;      //允許T0中斷
        EA=0;       //關(guān)全局中斷     
}

void main()
{
         DelayMS(20);
         IO_set();
         InitInterResource();
         EA=1;         //開全局中斷
         while(1);
}

void tmr0_p(void) interrupt 1
{
   Seg2Seg();
   switch(ScanCoun)                //動(dòng)態(tài)掃描顯示
    {
      case 0:                        //COM0正向驅(qū)動(dòng)
                                *Tdat1=SegBuf[0];
                        SEG0 = (bit)(*Tdat1&0x01);  
                        SEG1 = (bit)(*Tdat1&0x02);
                        SEG2 = (bit)(*Tdat1&0x04);  
                        SEG3 = (bit)(*Tdat1&0x08);
                        SEG4 = (bit)(*Tdat1&0x10);  
                        SEG5 = (bit)(*Tdat1&0x20);  
                        SEG6 = (bit)(*Tdat1&0x40);  
                        SEG7 = (bit)(*Tdat1&0x80);
                        *Tdat2=SegBuf[4];
                        SEG8 = (bit)(*Tdat2&0x01);
                        COM0=0;  
                 P1n_push_pull(1<<1);//P1^1輸出  COM1        
                 P1n_open_drain(1<<2);//P1^2高阻 COM3        
                 P1n_open_drain(1<<3);//P1^3高阻 COM2
     P1n_open_drain(1<<0);//P1^0高阻 COM0
        break;

     case 1:                        //COM0反向驅(qū)動(dòng)
                         *Tdat1=~SegBuf[0];
     SEG0 = (bit)(*Tdat1&0x01);  
                 SEG1 = (bit)(*Tdat1&0x02);
                 SEG2 = (bit)(*Tdat1&0x04);  
                 SEG3 = (bit)(*Tdat1&0x08);
     SEG4 = (bit)(*Tdat1&0x10);  
                 SEG5 = (bit)(*Tdat1&0x20);  
                 SEG6 = (bit)(*Tdat1&0x40);
                 SEG7 = (bit)(*Tdat1&0x80);
                 *Tdat2=~SegBuf[4];
                 SEG8 = (bit)(*Tdat2&0x01);   
                 COM0=1;                        
                 P1n_push_pull(1<<1);//P1^1輸出  COM1        
                 P1n_open_drain(1<<2);//P1^2高阻 COM3        
                 P1n_open_drain(1<<3);//P1^3高阻 COM2
     P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;

     case 2:                       //COM1正向驅(qū)動(dòng)
       *Tdat1=SegBuf[1];
     SEG0 = (bit)(*Tdat1&0x01);  
                 SEG1 = (bit)(*Tdat1&0x02);
                 SEG2 = (bit)(*Tdat1&0x04);  
                 SEG3 = (bit)(*Tdat1&0x08);
     SEG4 = (bit)(*Tdat1&0x10);  
                 SEG5 = (bit)(*Tdat1&0x20);  
                 SEG6 = (bit)(*Tdat1&0x40);  
                 SEG7 = (bit)(*Tdat1&0x80);
                 *Tdat2=SegBuf[5];
     SEG8 = (bit)(*Tdat2&0x01);         
                 COM1=0;      
                 P1n_push_pull(1<<1);//P1^1輸出  COM1        
                 P1n_open_drain(1<<2);//P1^2高阻 COM3        
                 P1n_open_drain(1<<3);//P1^3高阻 COM2
     P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;

     case 3:                       //COM1反向驅(qū)動(dòng)
       *Tdat1=~SegBuf[1];
     SEG0 = (bit)(*Tdat1&0x01);  
                 SEG1 = (bit)(*Tdat1&0x02);  
                 SEG2 = (bit)(*Tdat1&0x04);  
                 SEG3 = (bit)(*Tdat1&0x08);
     SEG4 = (bit)(*Tdat1&0x10);  
                 SEG5 = (bit)(*Tdat1&0x20);  
                 SEG6 = (bit)(*Tdat1&0x40);  
                 SEG7 = (bit)(*Tdat1&0x80);
                 *Tdat2=~SegBuf[5];
                 SEG8 = (bit)(*Tdat2&0x01);
                 COM1=1;                  
                 P1n_push_pull(1<<1);//P1^1輸出  COM1        
                 P1n_open_drain(1<<2);//P1^2高阻 COM3        
                 P1n_open_drain(1<<3);//P1^3高阻 COM2
     P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;

      case 4:                       //COM2正向驅(qū)動(dòng)
       *Tdat1=SegBuf[2];
      SEG0 = (bit)(*Tdat1&0x01);  
                        SEG1 = (bit)(*Tdat1&0x02);
                        SEG2 = (bit)(*Tdat1&0x04);  
                        SEG3 = (bit)(*Tdat1&0x08);
                        SEG4 = (bit)(*Tdat1&0x10);  
                        SEG5 = (bit)(*Tdat1&0x20);  
                        SEG6 = (bit)(*Tdat1&0x40);  
                        SEG7 = (bit)(*Tdat1&0x80);
                        *Tdat2=SegBuf[6];
                        SEG8 = (bit)(*Tdat2&0x01);            
                        COM2=0;                     
                 P1n_push_pull(1<<1);//P1^1輸出  COM1        
                 P1n_open_drain(1<<2);//P1^2高阻 COM3        
                 P1n_open_drain(1<<3);//P1^3高阻 COM2
     P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;
                       
      case 5:                       //COM2反向驅(qū)動(dòng)
         *Tdat1=~SegBuf[2];
                        SEG0 = (bit)(*Tdat1&0x01);  
                        SEG1 = (bit)(*Tdat1&0x02);
                        SEG2 = (bit)(*Tdat1&0x04);  
                        SEG3 = (bit)(*Tdat1&0x08);
      SEG4 = (bit)(*Tdat1&0x10);  
                        SEG5 = (bit)(*Tdat1&0x20);  
                        SEG6 = (bit)(*Tdat1&0x40);  
                        SEG7 = (bit)(*Tdat1&0x80);
                        *Tdat2=~SegBuf[6];
                        SEG8 = (bit)(*Tdat2&0x01);   
                        COM2=1;         
                 P1n_push_pull(1<<1);//P1^1輸出  COM1        
                 P1n_open_drain(1<<2);//P1^2高阻 COM3        
                 P1n_open_drain(1<<3);//P1^3高阻 COM2
     P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;  
                       
     case 6:                       //COM3正向驅(qū)動(dòng)
       *Tdat1=SegBuf[3];
     SEG0 = (bit)(*Tdat1&0x01);  
                 SEG1 = (bit)(*Tdat1&0x02);
                 SEG2 = (bit)(*Tdat1&0x04);  
                 SEG3 = (bit)(*Tdat1&0x08);
     SEG4 = (bit)(*Tdat1&0x10);  
                 SEG5 = (bit)(*Tdat1&0x20);  
                 SEG6 = (bit)(*Tdat1&0x40);  
                 SEG7 = (bit)(*Tdat1&0x80);
                 *Tdat2=SegBuf[7];
                 SEG8 = (bit)(*Tdat2&0x01);
                 COM3=0;                     
                 P1n_push_pull(1<<1);//P1^1輸出  COM1        
                 P1n_open_drain(1<<2);//P1^2高阻 COM3        
                 P1n_open_drain(1<<3);//P1^3高阻 COM2
     P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;  
                 
     case 7:                       //COM3反向驅(qū)動(dòng)
       *Tdat1=~SegBuf[3];
     SEG0 = (bit)(*Tdat1&0x01);  
                 SEG1 = (bit)(*Tdat1&0x02);
                 SEG2 = (bit)(*Tdat1&0x04);  
                 SEG3 = (bit)(*Tdat1&0x08);
     SEG4 = (bit)(*Tdat1&0x10);  
                 SEG5 = (bit)(*Tdat1&0x20);  
                 SEG6 = (bit)(*Tdat1&0x40);  
                 SEG7 = (bit)(*Tdat1&0x80);
                 *Tdat2=~SegBuf[7];
                 SEG8 = (bit)(*Tdat2&0x01);
                 COM3=1;                  
                 P1n_push_pull(1<<1);//P1^1輸出  COM1        
                 P1n_open_drain(1<<2);//P1^2高阻 COM3        
                 P1n_open_drain(1<<3);//P1^3高阻 COM2
     P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;  
       }
               
     ScanCoun++;       //下一位
     if(ScanCoun>7)
     ScanCoun=0;

                 TL0=0x78;     //重新定時(shí)5ms
                 TH0=0xec;
                 ZZ++;
                 EA=1;      
  }

//5V供電單片機(jī)引腳直接驅(qū)動(dòng)LCD屏幕(1/4BUTY,1/3BIAS),編譯無(wú)錯(cuò),就是沒(méi)有搞懂那里出問(wèn)題了,一直沒(méi)有顯示正確的數(shù)


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

使用道具 舉報(bào)

沙發(fā)
ID:1041179 發(fā)表于 2022-8-2 10:23 | 只看該作者
////////////動(dòng)態(tài)掃描函數(shù)////////////
void tmr0_p(void) interrupt 1
{
   Seg2Seg();
   switch(ScanCoun)                //動(dòng)態(tài)掃描顯示
    {
      case 0:                        //COM0正向驅(qū)動(dòng)
             *Tdat1=SegBuf[0];
                SEG0 = (bit)(*Tdat1&0x01);  
                SEG1 = (bit)(*Tdat1&0x02);
                SEG2 = (bit)(*Tdat1&0x04);  
                SEG3 = (bit)(*Tdat1&0x08);
                SEG4 = (bit)(*Tdat1&0x10);  
                SEG5 = (bit)(*Tdat1&0x20);  
                SEG6 = (bit)(*Tdat1&0x40);  
                SEG7 = (bit)(*Tdat1&0x80);
            *Tdat2=SegBuf[4];
                SEG8 = (bit)(*Tdat2&0x01);
                COM0=0;  
        //          P1n_push_pull(1<<0);//P1^0輸出  COM0               
                 P1n_open_drain(1<<3);//P1^3高阻 COM2
                 P1n_open_drain(1<<2);//P1^2高阻 COM3  
                 P1n_open_drain(1<<1);//P1^1高阻 COM1
        break;
         
     case 1:                        //COM0反向驅(qū)動(dòng)
        *Tdat1=~SegBuf[0];
                 SEG0 = (bit)(*Tdat1&0x01);  
                 SEG1 = (bit)(*Tdat1&0x02);
                 SEG2 = (bit)(*Tdat1&0x04);  
                 SEG3 = (bit)(*Tdat1&0x08);
                SEG4 = (bit)(*Tdat1&0x10);  
                 SEG5 = (bit)(*Tdat1&0x20);  
                 SEG6 = (bit)(*Tdat1&0x40);
                 SEG7 = (bit)(*Tdat1&0x80);
       *Tdat2=~SegBuf[4];
                 SEG8 = (bit)(*Tdat2&0x01);   
                 COM0=1;                        
             // P1n_push_pull(1<<0);//P1^0輸出  COM0             
                 P1n_open_drain(1<<3);//P1^3高阻 COM3
                 P1n_open_drain(1<<2);//P1^2高阻 COM2  
                 P1n_open_drain(1<<1);//P1^1高阻 COM1
          break;
               
     case 2:                       //COM1正向驅(qū)動(dòng)
       *Tdat1=SegBuf[1];
                 SEG0 = (bit)(*Tdat1&0x01);  
                 SEG1 = (bit)(*Tdat1&0x02);
                 SEG2 = (bit)(*Tdat1&0x04);  
                 SEG3 = (bit)(*Tdat1&0x08);
                 SEG4 = (bit)(*Tdat1&0x10);  
                 SEG5 = (bit)(*Tdat1&0x20);  
                 SEG6 = (bit)(*Tdat1&0x40);  
                 SEG7 = (bit)(*Tdat1&0x80);
                 *Tdat2=SegBuf[5];
                 SEG8 = (bit)(*Tdat2&0x01);         
                 COM1=0;      
            //  P1n_push_pull(1<<1);//P1^1輸出  COM1              
                 P1n_open_drain(1<<3);//P1^3高阻 COM3
                 P1n_open_drain(1<<2);//P1^2高阻 COM2  
                P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;
         
     case 3:                       //COM1反向驅(qū)動(dòng)
       *Tdat1=~SegBuf[1];
                SEG0 = (bit)(*Tdat1&0x01);  
                 SEG1 = (bit)(*Tdat1&0x02);  
                 SEG2 = (bit)(*Tdat1&0x04);  
                 SEG3 = (bit)(*Tdat1&0x08);
                 SEG4 = (bit)(*Tdat1&0x10);  
                 SEG5 = (bit)(*Tdat1&0x20);  
                 SEG6 = (bit)(*Tdat1&0x40);  
                 SEG7 = (bit)(*Tdat1&0x80);
         *Tdat2=~SegBuf[5];
                 SEG8 = (bit)(*Tdat2&0x01);
                 COM1=1;                  
             // P1n_push_pull(1<<1);//P1^1輸出  COM1              
                 P1n_open_drain(1<<3);//P1^3高阻 COM3
                 P1n_open_drain(1<<2);//P1^2高阻 COM2
                 P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;

      case 4:                       //COM2正向驅(qū)動(dòng)
       *Tdat1=SegBuf[2];
                        SEG0 = (bit)(*Tdat1&0x01);  
                        SEG1 = (bit)(*Tdat1&0x02);
                        SEG2 = (bit)(*Tdat1&0x04);  
                        SEG3 = (bit)(*Tdat1&0x08);
                        SEG4 = (bit)(*Tdat1&0x10);  
                        SEG5 = (bit)(*Tdat1&0x20);  
                        SEG6 = (bit)(*Tdat1&0x40);  
                        SEG7 = (bit)(*Tdat1&0x80);
        *Tdat2=SegBuf[6];
                        SEG8 = (bit)(*Tdat2&0x01);            
                        COM2=0;                     
// P1n_push_pull(1<<2);//P1^2輸出  COM2              
                 P1n_open_drain(1<<3);//P1^3高阻 COM3
                 P1n_open_drain(1<<1);//P1^1高阻 COM1  
                 P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;
                       
      case 5:                       //COM2反向驅(qū)動(dòng)
         *Tdat1=~SegBuf[2];
                        SEG0 = (bit)(*Tdat1&0x01);  
                        SEG1 = (bit)(*Tdat1&0x02);
                        SEG2 = (bit)(*Tdat1&0x04);  
                        SEG3 = (bit)(*Tdat1&0x08);
                        SEG4 = (bit)(*Tdat1&0x10);  
                        SEG5 = (bit)(*Tdat1&0x20);  
                        SEG6 = (bit)(*Tdat1&0x40);  
                        SEG7 = (bit)(*Tdat1&0x80);
        *Tdat2=~SegBuf[6];
                        SEG8 = (bit)(*Tdat2&0x01);   
                        COM2=1;         
// P1n_push_pull(1<<2);//P1^2輸出  COM2        
                 P1n_open_drain(1<<3);//P1^3高阻 COM3
                 P1n_open_drain(1<<1);//P1^1高阻 COM1      
                 P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;  
                       
     case 6:                       //COM3正向驅(qū)動(dòng)
       *Tdat1=SegBuf[3];
                 SEG0 = (bit)(*Tdat1&0x01);  
                 SEG1 = (bit)(*Tdat1&0x02);
                 SEG2 = (bit)(*Tdat1&0x04);  
                 SEG3 = (bit)(*Tdat1&0x08);
                 SEG4 = (bit)(*Tdat1&0x10);  
                 SEG5 = (bit)(*Tdat1&0x20);  
                 SEG6 = (bit)(*Tdat1&0x40);  
                 SEG7 = (bit)(*Tdat1&0x80);
        *Tdat2=SegBuf[7];
                 SEG8 = (bit)(*Tdat2&0x01);
                 COM3=0;                     
// P1n_push_pull(1<<3);//P1^3輸出  COM3        
                 P1n_open_drain(1<<2);//P1^2高阻 COM2        
                 P1n_open_drain(1<<1);//P1^1高阻 COM1
                 P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;  
                 
     case 7:                       //COM3反向驅(qū)動(dòng)
       *Tdat1=~SegBuf[3];
                 SEG0 = (bit)(*Tdat1&0x01);  
                 SEG1 = (bit)(*Tdat1&0x02);
                 SEG2 = (bit)(*Tdat1&0x04);  
                 SEG3 = (bit)(*Tdat1&0x08);
                 SEG4 = (bit)(*Tdat1&0x10);  
                 SEG5 = (bit)(*Tdat1&0x20);  
                 SEG6 = (bit)(*Tdat1&0x40);  
                 SEG7 = (bit)(*Tdat1&0x80);
     *Tdat2=~SegBuf[7];
                 SEG8 = (bit)(*Tdat2&0x01);
                 COM3=1;                  
// P1n_push_pull(1<<3);//P1^3輸出  COM3        
                 P1n_open_drain(1<<2);//P1^2高阻 COM2        
                 P1n_open_drain(1<<1);//P1^1高阻 COM1
                P1n_open_drain(1<<0);//P1^0高阻 COM0
          break;  
       }
               
     ScanCoun++;       //下一位
     if(ScanCoun>7)
     ScanCoun=0;
   
                 TL0=0x78;     //重新定時(shí)5ms
                 TH0=0xec;
                 ZZ++;
                 EA=1;      
  }


什么代碼這部分復(fù)制錯(cuò)了全是P1^1輸出了,但是改完也還是顯示一樣的東西好奇怪
回復(fù)

使用道具 舉報(bào)

板凳
ID:1023753 發(fā)表于 2022-8-2 13:40 | 只看該作者
先驅(qū)動(dòng)一位顯示,成功了在擴(kuò)展
回復(fù)

使用道具 舉報(bào)

地板
ID:123289 發(fā)表于 2022-8-2 15:35 | 只看該作者
教你一個(gè)方法。
1、先顯示一個(gè)段,看看亮在何處。
2、再顯示另一個(gè)段,看兩者的位置關(guān)系。
3、逐漸增到7個(gè)段,你就可以拼成0-9了。
回復(fù)

使用道具 舉報(bào)

5#
ID:1041179 發(fā)表于 2022-8-2 15:48 | 只看該作者
haiyang201 發(fā)表于 2022-8-2 13:40
先驅(qū)動(dòng)一位顯示,成功了在擴(kuò)展

好,多謝
回復(fù)

使用道具 舉報(bào)

6#
ID:1041179 發(fā)表于 2022-8-2 15:48 | 只看該作者
yzwzfyz 發(fā)表于 2022-8-2 15:35
教你一個(gè)方法。
1、先顯示一個(gè)段,看看亮在何處。
2、再顯示另一個(gè)段,看兩者的位置關(guān)系。

好,我去試試
回復(fù)

使用道具 舉報(bào)

7#
ID:723681 發(fā)表于 2022-8-2 15:52 | 只看該作者
1.先檢測(cè)引腳是否連接正確
2.硬件正確 調(diào)用基本的驅(qū)動(dòng)函數(shù) 顯示一小段
3.成功顯示一段 再嘗試顯示數(shù)字
回復(fù)

使用道具 舉報(bào)

8#
ID:844772 發(fā)表于 2022-8-2 21:25 | 只看該作者
太長(zhǎng)了看不下去,又沒(méi)什么難度,你能不能發(fā)一下,應(yīng)該顯示什么字,實(shí)際顯示的什么。
回復(fù)

使用道具 舉報(bào)

9#
ID:401564 發(fā)表于 2022-8-2 22:13 | 只看該作者
新人不是應(yīng)該先寫個(gè)延時(shí),跑馬燈什么的嗎?
你duang  duang一堆那么長(zhǎng)的代碼上來(lái),誰(shuí)能找到問(wèn)題?別人手上都不一定有你用的單片機(jī)型號(hào),也不一定有你手頭上的顯示屏
正確的做法是先寫一個(gè)單純的函數(shù),只顯示一個(gè)數(shù)字3之類的,只要能顯示一個(gè)數(shù)字了,再改另外一個(gè)數(shù)字燒錄看一下
只要能顯示一個(gè)數(shù)字了,其它功能就慢慢的增加,每增加一個(gè)功能就燒錄驗(yàn)證一次
而不是像你現(xiàn)在這樣,要么是自己先按著自己的想法,一下子把所有的功能都寫完
又或者是直接復(fù)制別人的代碼,這改一下,那改一下
然后一燒錄,才發(fā)現(xiàn)不是你想要的效果
回復(fù)

使用道具 舉報(bào)

10#
ID:1041179 發(fā)表于 2022-8-4 09:41 | 只看該作者
Y_G_G 發(fā)表于 2022-8-2 22:13
新人不是應(yīng)該先寫個(gè)延時(shí),跑馬燈什么的嗎?
你duang  duang一堆那么長(zhǎng)的代碼上來(lái),誰(shuí)能找到問(wèn)題?別人手上都不 ...

多謝回復(fù),第一次發(fā)帖不太會(huì),謝謝指點(diǎn),以后注意 嘿嘿嘿
回復(fù)

使用道具 舉報(bào)

11#
ID:1041179 發(fā)表于 2022-8-4 09:42 | 只看該作者
Youth8023 發(fā)表于 2022-8-2 15:52
1.先檢測(cè)引腳是否連接正確
2.硬件正確 調(diào)用基本的驅(qū)動(dòng)函數(shù) 顯示一小段
3.成功顯示一段 再嘗試顯示數(shù)字

多謝多謝,問(wèn)題已經(jīng)解決 就是引腳連接問(wèn)題
回復(fù)

使用道具 舉報(bào)

12#
ID:1041179 發(fā)表于 2022-8-4 09:43 | 只看該作者
glinfei 發(fā)表于 2022-8-2 21:25
太長(zhǎng)了看不下去,又沒(méi)什么難度,你能不能發(fā)一下,應(yīng)該顯示什么字,實(shí)際顯示的什么。

多謝幫助回復(fù),問(wèn)題已經(jīng)解決啦!以后發(fā)帖會(huì)注意要問(wèn)的問(wèn)題,多謝多謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 免费午夜视频在线观看 | 99成人 | 亚洲精品1区 | 亚洲日韩中文字幕一区 | 国产乱人伦精品一区二区 | 日本不卡免费新一二三区 | 久产久精国产品 | 日本一二三区高清 | 在线国产精品一区 | 国产精品精品视频一区二区三区 | 国产精品久久久久久久久久了 | 久久精品国产久精国产 | 国产亚洲欧美在线 | 亚洲色片网站 | 精品国产免费人成在线观看 | av中文字幕在线观看 | 精品免费国产一区二区三区四区介绍 | 日韩在线视频观看 | 精品96久久久久久中文字幕无 | 欧美视频区 | 51ⅴ精品国产91久久久久久 | 国产精品久久久久久久岛一牛影视 | 99热这里都是精品 | 婷婷在线免费 | 国产成人综合在线 | 91精品国产日韩91久久久久久 | 91亚洲国产成人久久精品网站 | 99亚洲精品 | 国产欧美日韩一区 | 日本久久久久久久久 | 国产视频一区在线 | 极品国产视频 | 香蕉超碰 | 久久精品国产一区二区电影 | 色综合久久88色综合天天 | 欧美综合精品 | 亚洲精品片| 欧美精品一区免费 | 亚洲一区av| 日韩免费av | 国产婷婷 |