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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2582|回復(fù): 9
收起左側(cè)

8*32點陣STC89c51測溫代碼 改用stc12c5a60s2代態(tài)測溫顯示亂碼

[復(fù)制鏈接]
回帖獎勵 10 黑幣 回復(fù)本帖可獲得 10 黑幣獎勵! 每人限 1 次
ID:17109 發(fā)表于 2019-6-1 11:04 | 顯示全部樓層 |閱讀模式
這個是用89c51的測溫代碼 想改用    stc12c5a60s2代態(tài),不知什么原因  就出現(xiàn),測溫顯示亂碼   有這放面的師博嗎幫忙看看程序有什么問題,修改上傳看看謝謝
//單片機(jī)晶振12M
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint  unsigned int

#define count 5           //級聯(lián)個數(shù)
//定義Max7219端口
sbit Max7219_pinCLK = P2^2;
sbit Max7219_pinCS  = P2^1;
sbit Max7219_pinDIN = P2^0;
sbit DQ=P3^7;                            // 接DS18B20的數(shù)據(jù)端
unsigned char AD_CHANNEL;
uchar code disp1[12][8]=
{
//{0x00,0x03,0x03,0x3C,0x7E,0x42,0x42,0x42},/*"未命名文件",度行*/
{0x1E,0x33,0x33,0x33,0x33,0x33,0xB3,0x9E},/*"未命名文件",.0*/
{0x06,0x0E,0x06,0x06,0x06,0x06,0x86,0x8F},/*"未命名文件",.1*/
{0x1E,0x33,0x33,0x06,0x0C,0x18,0xB0,0xBF},/*"未命名文件",.2*/
{0x1E,0x33,0x03,0x0E,0x03,0x03,0xB3,0x9E},/*"未命名文件",.3*/
{0x06,0x0E,0x0E,0x16,0x26,0x3F,0x86,0x8F},/*"未命名文件",.4*/
{0x3F,0x30,0x30,0x3E,0x03,0x03,0xB3,0x9E},/*"未命名文件",.5*/
{0x1E,0x36,0x30,0x3E,0x33,0x33,0xB3,0x9E},/*"未命名文件",.6*/
{0x1F,0x1B,0x03,0x06,0x06,0x06,0x86,0x86},/*"未命名文件",.7*/

{0x1E,0x33,0x33,0x1E,0x33,0x33,0xB3,0x9E},/*"未命名文件",.8*/
{0x1E,0x33,0x33,0x33,0x1F,0x03,0x9B,0x9E},/*"未命名文件",.9*/
{0x00,0x60,0x6F,0x18,0x18,0x18,0x18,0x0F},/*"未命名文件",度列*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"未命名文件", */
};
uchar code disp2[10][8]=
{
{0x78,0xCC,0xCC,0xCC,0xCC,0xCC,0xCD,0x79},/*"未命名文件",0.*/
{0x60,0xE0,0x60,0x60,0x60,0x60,0x61,0xF1},/*"未命名文件",1.*/
{0x78,0xCC,0xCC,0x18,0x30,0x60,0xC1,0xFD},/*"未命名文件",2.*/
{0x78,0xCC,0x0C,0x38,0x0C,0x0C,0xCD,0x79},/*"未命名文件",3.*/
{0x18,0x38,0x38,0x58,0x98,0xFC,0x19,0x3D},/*"未命名文件",4.*/
{0xFC,0xC0,0xC0,0xF8,0x0C,0x0C,0xCD,0x79},/*"未命名文件",5.*/

{0x78,0xD8,0xC0,0xF8,0xCC,0xCC,0xCD,0x79},/*"未命名文件",6.*/

{0xF8,0xD8,0x18,0x30,0x30,0x30,0x31,0x31},/*"未命名文件",7.*/

{0x78,0xCC,0xCC,0x78,0xCC,0xCC,0xCD,0x79},/*"未命名文件",8.*/

{0x78,0xCC,0xCC,0xCC,0x7C,0x0C,0x6D,0x79},/*"未命名文件",9.*/
};
uchar code disp3[10][8]=
{

{0x78,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78},/*"未命名文件",0*/

{0x60,0xE0,0x60,0x60,0x60,0x60,0x60,0xF0},/*"未命名文件",1*/
{0x78,0xCC,0xCC,0x18,0x30,0x60,0xC0,0xFC},/*"未命名文件",2*/
{0x78,0xCC,0x0C,0x38,0x0C,0x0C,0xCC,0x78},/*"未命名文件",3*/

{0x18,0x38,0x38,0x58,0x98,0xFC,0x18,0x3C},/*"未命名文件",4*/

{0xFC,0xC0,0xC0,0xF8,0x0C,0x0C,0xCC,0x78},/*"未命名文件",5*/
{0x78,0xD8,0xC0,0xF8,0xCC,0xCC,0xCC,0x78},/*"未命名文件",6*/

{0xF8,0xD8,0x18,0x30,0x30,0x30,0x30,0x30},/*"未命名文件",7*/
{0x78,0xCC,0xCC,0x78,0xCC,0xCC,0xCC,0x78},/*"未命名文件",8*/


{0x78,0xCC,0xCC,0xCC,0x7C,0x0C,0x6C,0x78},/*"未命名文件",9*/

};
void Delay_xms(uint x);
void Write_Max7219_byte(uchar DATA);//寫入一字節(jié)
void Write_Max7219(uchar address1,uchar dat1,uchar address2,uchar dat2);
void Init_MAX7219(void);
                      // 鎖存進(jìn)相應(yīng)寄存器

void ReSet(void)
{
        uint i;
        DQ=0;
        i=100;
        while(i--);
        DQ=1;
        i=4;
        while(i--);
        while(DQ);
        while(~DQ);
        i=4;
        while(i--);
}
uchar ReadByte(void)
{
        uchar i,j,b,dat=0;
        for(j=0;j<8;j++)
        {                                               
                DQ=0;
                i++;
                DQ=1;       
                i=3;                // 延時15us
                while(--i);
                b=DQ;
                i=10;
                while(i--);
                dat=(b<<7)|(dat>>1);
        }
        return(dat);
}
void WriteByte(uchar b)
{
        uint i;
        uchar j;
        bit btmp;
        for(j=0;j<8;j++)
        {
                btmp=b&0x01;
                b=b>>1;                         // 取下一位(由低位向高位)
                if(btmp)
                {
                        DQ=0;
                        i++;
                        i++;
                        DQ=1;
                        i=10;
                        while(i--);                // 整個寫1時隙不低于60us
                }
                else
                {
                        DQ=0;
                        i=10;
                        while(i--);         // 保持低在60us到120us之間
                        DQ=1;
                        i++;
                        i++;
                }
        }
}
uint ReadTemp(void)
{
        uchar TempLow,TempHig;         // 溫度值低位、高位字節(jié)
        float tt;
        uint temp;
        ReSet();                                // 產(chǎn)生復(fù)位脈沖,初始化DS18B20
        WriteByte(0xcc);                // skip rom 命令
        WriteByte(0x44);                // convert T 命令
        ReSet();
        WriteByte(0xcc);                // skip rom 命令
        WriteByte(0xbe);                // read 溫度命令
        TempLow=ReadByte();                // 溫度值低位字節(jié)(其中低4位為二進(jìn)制的"小數(shù)"部分)
        TempHig=ReadByte();                // 高位值高位字節(jié)(其中高5位為符號位)
        temp=TempHig;
        temp<<=8;
        temp=temp|TempLow;
        tt=temp*0.0625;
        temp=tt*10+0.5;
        return (temp);
}
void Init_MAX7219(void)
{
uchar  i;
  Max7219_pinCS=0;
  for(i=0;i<count;i++)
  {
    Write_Max7219_byte(0x09); //譯碼方式:BCD碼      
    Write_Max7219_byte(0x00);   
  }
  Max7219_pinCS=1;
  _nop_();
  Max7219_pinCS=0;
  for(i=0;i<count;i++)
  {
    Write_Max7219_byte(0x0a); //亮度   
    Write_Max7219_byte(0x03);   
  }
  Max7219_pinCS=1;
_nop_();
   Max7219_pinCS=0;
  for(i=0;i<count;i++)
  {
    Write_Max7219_byte(0x0b); // //掃描界限;8個數(shù)碼管顯示  
    Write_Max7219_byte(0x07);   
  }
  Max7219_pinCS=1;
  _nop_();
  Max7219_pinCS=0;
  for(i=0;i<count;i++)
  {
    Write_Max7219_byte(0x0c); //   //掉電模式:0,普通模式:1
    Write_Max7219_byte(0x01);   
  }
  Max7219_pinCS=1;
  Max7219_pinCS=0;
  for(i=0;i<count;i++)
  {
    Write_Max7219_byte(0x0f); //顯示測試:1;測試結(jié)束,正常顯示:0
    Write_Max7219_byte(0x00);   
  }
  Max7219_pinCS=1;
  _nop_();
}
void main(void)
{
uchar i;
  uint temp;
Delay_xms(50);
Init_MAX7219();  
while(1)
{
temp=ReadTemp();

   for(i=1;i<9;i++)
   {
    Max7219_pinCS=0;
                                Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號
        Write_Max7219_byte(disp3[temp%10000/1000][i-1]);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
                                Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號
        Write_Max7219_byte(disp3[temp%1000/100][i-1]);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
                 Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號
        Write_Max7219_byte(disp2[temp%100/10][i-1]);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
                        Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號
        Write_Max7219_byte(disp1[temp%10][i-1]);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
                        Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號
        Write_Max7219_byte(disp1[10][i-1]);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字


     Max7219_pinCS=1;   

   }
   Delay_xms(1000);

}
}

void Write_Max7219(uchar address1,uchar dat1,uchar address2,uchar dat2)
{

     Max7219_pinCS=0;
     Write_Max7219_byte(address1);           //寫入地址,即數(shù)碼管編號
     Write_Max7219_byte(dat1);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
     Write_Max7219_byte(address2);           //寫入地址,即數(shù)碼管編號
     Write_Max7219_byte(dat2);      //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
              _nop_();

     Max7219_pinCS=1;                        
}
//--------------------------------------------
//功能:向MAX7219(U3)寫入字節(jié)
//入口參數(shù):DATA
//出口參數(shù):無
//說明:
void Write_Max7219_byte(uchar DATA)         
{
            uchar i;   
            for(i=8;i>=1;i--)
          {                  
            Max7219_pinCLK=0;
            Max7219_pinDIN=DATA&0x80;
            DATA=DATA<<1;
            Max7219_pinCLK=1;
           }                                 
}
void Delay_xms(uint x)
{
uint i,j;
for(i=0;i<x;i++)
  for(j=0;j<112;j++);
}


8x32點陣STC89c51溫代碼.rar

34.44 KB, 下載次數(shù): 15

回復(fù)

使用道具 舉報

ID:96682 發(fā)表于 2019-6-1 13:11 | 顯示全部樓層
查看芯片參數(shù)修改相關(guān)程序
回復(fù)

使用道具 舉報

ID:511890 發(fā)表于 2019-6-1 16:04 | 顯示全部樓層
應(yīng)該是延時程序的問題。89系列一個機(jī)器周期等于12個時鐘周期(RD+的是6個時鐘周期)。而12系列的單片機(jī)一個機(jī)器周期等于1個時鐘周期。換一個延時函數(shù)試試。這個延時你可以在ISP燒錄工具中選擇相應(yīng)的芯片生成。
回復(fù)

使用道具 舉報

ID:552667 發(fā)表于 2019-6-1 20:26 | 顯示全部樓層
芯片不一樣 定時器中斷也不一樣  12的速度好像是51的1200倍吧
回復(fù)

使用道具 舉報

ID:155507 發(fā)表于 2019-6-1 20:58 | 顯示全部樓層
換一個延時函數(shù)試試。

void delay_ms(uint16 x)
{  
        uint16 j,i;   
        for(j=0;j<x;j++)   
        {   
                for(i=0;i<1100;i++);   
        }  
}       
回復(fù)

使用道具 舉報

ID:17109 發(fā)表于 2019-6-2 10:35 | 顯示全部樓層
angmall 發(fā)表于 2019-6-1 20:58
換一個延時函數(shù)試試。

void delay_ms(uint16 x)

師傅能上傳上面這條代碼的,打包好的源程序嗎謝謝!
回復(fù)

使用道具 舉報

ID:307020 發(fā)表于 2019-6-2 16:45 | 顯示全部樓層
要仔細(xì)研讀生產(chǎn)商提供的Data Sheet,清楚二者的軟硬件差別,并將程序作對應(yīng)的調(diào)整;從最簡單處著眼,應(yīng)比對二者腳位PIN OUT的差別。可從STC網(wǎng)站獲得Data Sheet文件
回復(fù)

使用道具 舉報

ID:155507 發(fā)表于 2019-6-3 00:41 | 顯示全部樓層
給你改了一下試試。

  1. //單片機(jī)晶振12M
  2. #include <reg52.h>
  3. #include <intrins.h>
  4. #define uchar unsigned char
  5. #define uint  unsigned int

  6. #define count 5           //級聯(lián)個數(shù)
  7. //定義Max7219端口
  8. sbit Max7219_pinCLK = P2^2;
  9. sbit Max7219_pinCS  = P2^1;
  10. sbit Max7219_pinDIN = P2^0;

  11. sbit DQ=P3^7;                            // 接DS18B20的數(shù)據(jù)端
  12. unsigned char AD_CHANNEL;
  13. uchar code disp1[12][8]=
  14. {
  15.   //{0x00,0x03,0x03,0x3C,0x7E,0x42,0x42,0x42},/*"未命名文件",度行*/
  16.   {0x1E,0x33,0x33,0x33,0x33,0x33,0xB3,0x9E},/*"未命名文件",.0*/
  17.   {0x06,0x0E,0x06,0x06,0x06,0x06,0x86,0x8F},/*"未命名文件",.1*/
  18.   {0x1E,0x33,0x33,0x06,0x0C,0x18,0xB0,0xBF},/*"未命名文件",.2*/
  19.   {0x1E,0x33,0x03,0x0E,0x03,0x03,0xB3,0x9E},/*"未命名文件",.3*/
  20.   {0x06,0x0E,0x0E,0x16,0x26,0x3F,0x86,0x8F},/*"未命名文件",.4*/
  21.   {0x3F,0x30,0x30,0x3E,0x03,0x03,0xB3,0x9E},/*"未命名文件",.5*/
  22.   {0x1E,0x36,0x30,0x3E,0x33,0x33,0xB3,0x9E},/*"未命名文件",.6*/
  23.   {0x1F,0x1B,0x03,0x06,0x06,0x06,0x86,0x86},/*"未命名文件",.7*/
  24.   {0x1E,0x33,0x33,0x1E,0x33,0x33,0xB3,0x9E},/*"未命名文件",.8*/
  25.   {0x1E,0x33,0x33,0x33,0x1F,0x03,0x9B,0x9E},/*"未命名文件",.9*/
  26.   {0x00,0x60,0x6F,0x18,0x18,0x18,0x18,0x0F},/*"未命名文件",度列*/
  27.   {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"未命名文件", */
  28. };
  29. uchar code disp2[10][8]=
  30. {
  31.   {0x78,0xCC,0xCC,0xCC,0xCC,0xCC,0xCD,0x79},/*"未命名文件",0.*/
  32.   {0x60,0xE0,0x60,0x60,0x60,0x60,0x61,0xF1},/*"未命名文件",1.*/
  33.   {0x78,0xCC,0xCC,0x18,0x30,0x60,0xC1,0xFD},/*"未命名文件",2.*/
  34.   {0x78,0xCC,0x0C,0x38,0x0C,0x0C,0xCD,0x79},/*"未命名文件",3.*/
  35.   {0x18,0x38,0x38,0x58,0x98,0xFC,0x19,0x3D},/*"未命名文件",4.*/
  36.   {0xFC,0xC0,0xC0,0xF8,0x0C,0x0C,0xCD,0x79},/*"未命名文件",5.*/
  37.   {0x78,0xD8,0xC0,0xF8,0xCC,0xCC,0xCD,0x79},/*"未命名文件",6.*/
  38.   {0xF8,0xD8,0x18,0x30,0x30,0x30,0x31,0x31},/*"未命名文件",7.*/
  39.   {0x78,0xCC,0xCC,0x78,0xCC,0xCC,0xCD,0x79},/*"未命名文件",8.*/
  40.   {0x78,0xCC,0xCC,0xCC,0x7C,0x0C,0x6D,0x79},/*"未命名文件",9.*/
  41. };
  42. uchar code disp3[10][8]=
  43. {
  44.   {0x78,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78},/*"未命名文件",0*/
  45.   {0x60,0xE0,0x60,0x60,0x60,0x60,0x60,0xF0},/*"未命名文件",1*/
  46.   {0x78,0xCC,0xCC,0x18,0x30,0x60,0xC0,0xFC},/*"未命名文件",2*/
  47.   {0x78,0xCC,0x0C,0x38,0x0C,0x0C,0xCC,0x78},/*"未命名文件",3*/
  48.   {0x18,0x38,0x38,0x58,0x98,0xFC,0x18,0x3C},/*"未命名文件",4*/
  49.   {0xFC,0xC0,0xC0,0xF8,0x0C,0x0C,0xCC,0x78},/*"未命名文件",5*/
  50.   {0x78,0xD8,0xC0,0xF8,0xCC,0xCC,0xCC,0x78},/*"未命名文件",6*/
  51.   {0xF8,0xD8,0x18,0x30,0x30,0x30,0x30,0x30},/*"未命名文件",7*/
  52.   {0x78,0xCC,0xCC,0x78,0xCC,0xCC,0xCC,0x78},/*"未命名文件",8*/
  53.   {0x78,0xCC,0xCC,0xCC,0x7C,0x0C,0x6C,0x78},/*"未命名文件",9*/
  54. };
  55. void Delay_xms(uint x);
  56. void Write_Max7219_byte(uchar DATA);//寫入一字節(jié)
  57. void Write_Max7219(uchar address1,uchar dat1,uchar address2,uchar dat2);
  58. void Init_MAX7219(void);
  59. // 鎖存進(jìn)相應(yīng)寄存器

  60. /**************************************
  61. 延時X微秒(STC12C5A60S2@12M)
  62. 不同的工作環(huán)境,需要調(diào)整此函數(shù)
  63. 此延時函數(shù)是使用1T的指令周期進(jìn)行計算,與傳統(tǒng)的12T的MCU不同
  64. **************************************/
  65. void DelayXus(uchar n)
  66. {
  67.     while (n--)
  68.     {
  69.         _nop_();
  70.         _nop_();
  71.     }
  72. }

  73. void ReSet(void)
  74. {
  75.     CY = 1;
  76.     while (CY)
  77.     {
  78.         DQ = 0;                     //送出低電平復(fù)位信號
  79.         DelayXus(240);              //延時至少480us
  80.         DelayXus(240);
  81.         DQ = 1;                     //釋放數(shù)據(jù)線
  82.         DelayXus(60);               //等待60us
  83.         CY = DQ;                    //檢測存在脈沖
  84.         DelayXus(240);              //等待設(shè)備釋放數(shù)據(jù)線
  85.         DelayXus(180);
  86.     }

  87. }
  88. uchar ReadByte(void)
  89. {
  90.     uchar i;
  91.     uchar dat = 0;

  92.     for (i=0; i<8; i++)             //8位計數(shù)器
  93.     {
  94.         dat >>= 1;
  95.         DQ = 0;                     //開始時間片
  96.         DelayXus(1);                //延時等待
  97.         DQ = 1;                     //準(zhǔn)備接收
  98.         DelayXus(1);                //接收延時
  99.         if (DQ) dat |= 0x80;        //讀取數(shù)據(jù)
  100.         DelayXus(60);               //等待時間片結(jié)束
  101.     }

  102.     return dat;
  103. }

  104. void WriteByte(uchar dat)
  105. {
  106.     char i;

  107.     for (i=0; i<8; i++)             //8位計數(shù)器
  108.     {
  109.         DQ = 0;                     //開始時間片
  110.         DelayXus(1);                //延時等待
  111.         dat >>= 1;                  //送出數(shù)據(jù)
  112.         DQ = CY;
  113.         DelayXus(60);               //等待時間片結(jié)束
  114.         DQ = 1;                     //恢復(fù)數(shù)據(jù)線
  115.         DelayXus(1);                //恢復(fù)延時
  116.     }
  117. }
  118. uint ReadTemp(void)
  119. {
  120.   uchar TempLow,TempHig;         // 溫度值低位、高位字節(jié)
  121.   float tt;
  122.   uint temp;
  123.   ReSet();                                // 產(chǎn)生復(fù)位脈沖,初始化DS18B20
  124.   WriteByte(0xcc);                // skip rom 命令
  125.   WriteByte(0x44);                // convert T 命令
  126.   while (!DQ);  
  127.   ReSet();
  128.   WriteByte(0xcc);                // skip rom 命令
  129.   WriteByte(0xbe);                // read 溫度命令
  130.   TempLow=ReadByte();                // 溫度值低位字節(jié)(其中低4位為二進(jìn)制的"小數(shù)"部分)
  131.   TempHig=ReadByte();                // 高位值高位字節(jié)(其中高5位為符號位)
  132.   temp=TempHig;
  133.   temp<<=8;
  134.   temp=temp|TempLow;
  135.   tt=temp*0.0625;
  136.   temp=tt*10+0.5;
  137.   return (temp);
  138. }
  139. void Init_MAX7219(void)
  140. {
  141.   uchar  i;
  142.   Max7219_pinCS=0;
  143.   for(i=0;i<count;i++)
  144.   {
  145.     Write_Max7219_byte(0x09); //譯碼方式:BCD碼      
  146.     Write_Max7219_byte(0x00);   
  147.   }
  148.   Max7219_pinCS=1;
  149.   _nop_();

  150.   Max7219_pinCS=0;
  151.   for(i=0;i<count;i++)
  152.   {
  153.     Write_Max7219_byte(0x0a); //亮度   
  154.     Write_Max7219_byte(0x03);   
  155.   }
  156.   Max7219_pinCS=1;
  157.   _nop_();

  158.   Max7219_pinCS=0;
  159.   for(i=0;i<count;i++)
  160.   {
  161.     Write_Max7219_byte(0x0b); // //掃描界限;8個數(shù)碼管顯示  
  162.     Write_Max7219_byte(0x07);   
  163.   }
  164.   Max7219_pinCS=1;
  165.   _nop_();

  166.   Max7219_pinCS=0;
  167.   for(i=0;i<count;i++)
  168.   {
  169.     Write_Max7219_byte(0x0c); //   //掉電模式:0,普通模式:1
  170.     Write_Max7219_byte(0x01);   
  171.   }
  172.   Max7219_pinCS=1;
  173.   _nop_();
  174.   Max7219_pinCS=0;
  175.   for(i=0;i<count;i++)
  176.   {
  177.     Write_Max7219_byte(0x0f); //顯示測試:1;測試結(jié)束,正常顯示:0
  178.     Write_Max7219_byte(0x00);   
  179.   }
  180.   Max7219_pinCS=1;
  181.   _nop_();

  182. }
  183. void main(void)
  184. {
  185.   uchar i;
  186.   uint temp=0;
  187.   Delay_xms(50);
  188.   Init_MAX7219();
  189.   Delay_xms(2000);       
  190.   while(1)
  191.   {
  192.     temp = ReadTemp();

  193.     for(i=1;i<9;i++)
  194.     {
  195.       Max7219_pinCS=0;
  196.       Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號
  197.       Write_Max7219_byte(disp3[temp/1000%10][i-1]);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
  198.                           _nop_();
  199.                           _nop_();
  200.       Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號
  201.       Write_Max7219_byte(disp3[temp/100%10][i-1]);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
  202.                           _nop_();
  203.                           _nop_();
  204.       Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號
  205.       Write_Max7219_byte(disp2[temp/10%10][i-1]);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
  206.                           _nop_();
  207.                           _nop_();
  208.       Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號
  209.       Write_Max7219_byte(disp1[temp%10][i-1]);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
  210.                           _nop_();
  211.                           _nop_();
  212.       Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號
  213.       Write_Max7219_byte(disp1[10][i-1]);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
  214.                           _nop_();
  215.                           _nop_();

  216.       
  217.       Max7219_pinCS=1;   

  218.     }
  219.     Delay_xms(1000);
  220.    
  221.   }
  222. }
  223. /*
  224. void Write_Max7219(uchar address1,uchar dat1,uchar address2,uchar dat2)
  225. {
  226.   
  227.   Max7219_pinCS=0;
  228.   Write_Max7219_byte(address1);           //寫入地址,即數(shù)碼管編號
  229.   Write_Max7219_byte(dat1);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
  230.   Write_Max7219_byte(address2);           //寫入地址,即數(shù)碼管編號
  231.   Write_Max7219_byte(dat2);      //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
  232.   _nop_();

  233.   
  234.   Max7219_pinCS=1;                        
  235. }
  236. */
  237. //--------------------------------------------
  238. //功能:向MAX7219(U3)寫入字節(jié)
  239. //入口參數(shù):DATA
  240. //出口參數(shù):無
  241. //說明:
  242. void Write_Max7219_byte(uchar DATA)         
  243. {
  244.   uchar i;   
  245.   for(i=8;i>=1;i--)
  246.   {                  
  247.     Max7219_pinCLK=0;
  248.     Max7219_pinDIN=DATA&0x80;
  249.     DATA=DATA<<1;
  250.     Max7219_pinCLK=1;
  251.   }                                 
  252. }

  253. void Delay_xms(uint x)
  254. {
  255.   uint i,j;
  256.   for(i=0;i<x;i++)
  257.      for(j=0;j<1100;j++);
  258. }
復(fù)制代碼



LED8x32點陣STC89c51溫代碼.zip

49.67 KB, 下載次數(shù): 13

回復(fù)

使用道具 舉報

ID:93224 發(fā)表于 2019-6-3 13:17 | 顯示全部樓層
二者的運行速度不一樣延時時間需要轉(zhuǎn)換
回復(fù)

使用道具 舉報

ID:517060 發(fā)表于 2019-8-5 11:46 | 顯示全部樓層
牛叉 支持了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕日韩欧美一区二区三区 | 99综合| 日日操夜夜操视频 | 欧美精品一区二区三区在线 | 亚洲成人一区二区三区 | 国内成人免费视频 | 九九久久免费视频 | 欧美精品一区二区三区蜜臀 | 久久久精品国产 | 成人国产精品久久 | 久久久www | 中文字幕一区二区三区四区五区 | 一级无毛片 | 日韩第一区 | xnxx 日本免费 | 四虎成人免费电影 | 一道本不卡 | 日韩欧美在线观看 | 国产a视频 | 久久久久久久久国产成人免费 | 精品国产乱码久久久久久蜜柚 | 亚洲不卡在线观看 | .国产精品成人自产拍在线观看6 | 成人免费区一区二区三区 | 北条麻妃99精品青青久久主播 | 日韩电影一区二区三区 | 亚洲一区久久 | 国产精品久久久久久久午夜片 | 91亚洲欧美 | 欧美夜夜 | 综合网视频| 欧美日韩亚洲国产 | 色吊丝2| 亚洲精品久久久久久一区二区 | 国产一区二区欧美 | 精品国产一区二区国模嫣然 | 日本午夜精品一区二区三区 | 99伊人网| 国产精品国产精品国产专区不卡 | 三级视频在线观看电影 | 欧美日韩精品一区二区三区视频 |