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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2497|回復: 9
打印 上一主題 下一主題
收起左側

8*32點陣STC89c51測溫代碼 改用stc12c5a60s2代態測溫顯示亂碼

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

#define count 5           //級聯個數
//定義Max7219端口
sbit Max7219_pinCLK = P2^2;
sbit Max7219_pinCS  = P2^1;
sbit Max7219_pinDIN = P2^0;
sbit DQ=P3^7;                            // 接DS18B20的數據端
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);//寫入一字節
void Write_Max7219(uchar address1,uchar dat1,uchar address2,uchar dat2);
void Init_MAX7219(void);
                      // 鎖存進相應寄存器

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;         // 溫度值低位、高位字節
        float tt;
        uint temp;
        ReSet();                                // 產生復位脈沖,初始化DS18B20
        WriteByte(0xcc);                // skip rom 命令
        WriteByte(0x44);                // convert T 命令
        ReSet();
        WriteByte(0xcc);                // skip rom 命令
        WriteByte(0xbe);                // read 溫度命令
        TempLow=ReadByte();                // 溫度值低位字節(其中低4位為二進制的"小數"部分)
        TempHig=ReadByte();                // 高位值高位字節(其中高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個數碼管顯示  
    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;測試結束,正常顯示: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);           //寫入地址,即數碼管編號
        Write_Max7219_byte(disp3[temp%10000/1000][i-1]);              //寫入數據,即數碼管顯示數字
                                Write_Max7219_byte(i);           //寫入地址,即數碼管編號
        Write_Max7219_byte(disp3[temp%1000/100][i-1]);              //寫入數據,即數碼管顯示數字
                 Write_Max7219_byte(i);           //寫入地址,即數碼管編號
        Write_Max7219_byte(disp2[temp%100/10][i-1]);              //寫入數據,即數碼管顯示數字
                        Write_Max7219_byte(i);           //寫入地址,即數碼管編號
        Write_Max7219_byte(disp1[temp%10][i-1]);              //寫入數據,即數碼管顯示數字
                        Write_Max7219_byte(i);           //寫入地址,即數碼管編號
        Write_Max7219_byte(disp1[10][i-1]);              //寫入數據,即數碼管顯示數字


     Max7219_pinCS=1;   

   }
   Delay_xms(1000);

}
}

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

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

     Max7219_pinCS=1;                        
}
//--------------------------------------------
//功能:向MAX7219(U3)寫入字節
//入口參數:DATA
//出口參數:無
//說明:
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, 下載次數: 15

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

使用道具 舉報

沙發
ID:96682 發表于 2019-6-1 13:11 | 只看該作者
查看芯片參數修改相關程序
回復

使用道具 舉報

板凳
ID:511890 發表于 2019-6-1 16:04 | 只看該作者
應該是延時程序的問題。89系列一個機器周期等于12個時鐘周期(RD+的是6個時鐘周期)。而12系列的單片機一個機器周期等于1個時鐘周期。換一個延時函數試試。這個延時你可以在ISP燒錄工具中選擇相應的芯片生成。
回復

使用道具 舉報

地板
ID:552667 發表于 2019-6-1 20:26 | 只看該作者
芯片不一樣 定時器中斷也不一樣  12的速度好像是51的1200倍吧
回復

使用道具 舉報

5#
ID:155507 發表于 2019-6-1 20:58 | 只看該作者
換一個延時函數試試。

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

使用道具 舉報

6#
ID:17109 發表于 2019-6-2 10:35 | 只看該作者
angmall 發表于 2019-6-1 20:58
換一個延時函數試試。

void delay_ms(uint16 x)

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

使用道具 舉報

7#
ID:307020 發表于 2019-6-2 16:45 | 只看該作者
要仔細研讀生產商提供的Data Sheet,清楚二者的軟硬件差別,并將程序作對應的調整;從最簡單處著眼,應比對二者腳位PIN OUT的差別。可從STC網站獲得Data Sheet文件
回復

使用道具 舉報

8#
ID:155507 發表于 2019-6-3 00:41 | 只看該作者
給你改了一下試試。

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

  6. #define count 5           //級聯個數
  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的數據端
  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);//寫入一字節
  57. void Write_Max7219(uchar address1,uchar dat1,uchar address2,uchar dat2);
  58. void Init_MAX7219(void);
  59. // 鎖存進相應寄存器

  60. /**************************************
  61. 延時X微秒(STC12C5A60S2@12M)
  62. 不同的工作環境,需要調整此函數
  63. 此延時函數是使用1T的指令周期進行計算,與傳統的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;                     //送出低電平復位信號
  79.         DelayXus(240);              //延時至少480us
  80.         DelayXus(240);
  81.         DQ = 1;                     //釋放數據線
  82.         DelayXus(60);               //等待60us
  83.         CY = DQ;                    //檢測存在脈沖
  84.         DelayXus(240);              //等待設備釋放數據線
  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位計數器
  93.     {
  94.         dat >>= 1;
  95.         DQ = 0;                     //開始時間片
  96.         DelayXus(1);                //延時等待
  97.         DQ = 1;                     //準備接收
  98.         DelayXus(1);                //接收延時
  99.         if (DQ) dat |= 0x80;        //讀取數據
  100.         DelayXus(60);               //等待時間片結束
  101.     }

  102.     return dat;
  103. }

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

  107.     for (i=0; i<8; i++)             //8位計數器
  108.     {
  109.         DQ = 0;                     //開始時間片
  110.         DelayXus(1);                //延時等待
  111.         dat >>= 1;                  //送出數據
  112.         DQ = CY;
  113.         DelayXus(60);               //等待時間片結束
  114.         DQ = 1;                     //恢復數據線
  115.         DelayXus(1);                //恢復延時
  116.     }
  117. }
  118. uint ReadTemp(void)
  119. {
  120.   uchar TempLow,TempHig;         // 溫度值低位、高位字節
  121.   float tt;
  122.   uint temp;
  123.   ReSet();                                // 產生復位脈沖,初始化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();                // 溫度值低位字節(其中低4位為二進制的"小數"部分)
  131.   TempHig=ReadByte();                // 高位值高位字節(其中高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個數碼管顯示  
  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;測試結束,正常顯示: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);           //寫入地址,即數碼管編號
  197.       Write_Max7219_byte(disp3[temp/1000%10][i-1]);              //寫入數據,即數碼管顯示數字
  198.                           _nop_();
  199.                           _nop_();
  200.       Write_Max7219_byte(i);           //寫入地址,即數碼管編號
  201.       Write_Max7219_byte(disp3[temp/100%10][i-1]);              //寫入數據,即數碼管顯示數字
  202.                           _nop_();
  203.                           _nop_();
  204.       Write_Max7219_byte(i);           //寫入地址,即數碼管編號
  205.       Write_Max7219_byte(disp2[temp/10%10][i-1]);              //寫入數據,即數碼管顯示數字
  206.                           _nop_();
  207.                           _nop_();
  208.       Write_Max7219_byte(i);           //寫入地址,即數碼管編號
  209.       Write_Max7219_byte(disp1[temp%10][i-1]);              //寫入數據,即數碼管顯示數字
  210.                           _nop_();
  211.                           _nop_();
  212.       Write_Max7219_byte(i);           //寫入地址,即數碼管編號
  213.       Write_Max7219_byte(disp1[10][i-1]);              //寫入數據,即數碼管顯示數字
  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);           //寫入地址,即數碼管編號
  229.   Write_Max7219_byte(dat1);              //寫入數據,即數碼管顯示數字
  230.   Write_Max7219_byte(address2);           //寫入地址,即數碼管編號
  231.   Write_Max7219_byte(dat2);      //寫入數據,即數碼管顯示數字
  232.   _nop_();

  233.   
  234.   Max7219_pinCS=1;                        
  235. }
  236. */
  237. //--------------------------------------------
  238. //功能:向MAX7219(U3)寫入字節
  239. //入口參數:DATA
  240. //出口參數:無
  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. }
復制代碼



LED8x32點陣STC89c51溫代碼.zip

49.67 KB, 下載次數: 13

回復

使用道具 舉報

9#
ID:93224 發表于 2019-6-3 13:17 | 只看該作者
二者的運行速度不一樣延時時間需要轉換
回復

使用道具 舉報

10#
ID:517060 發表于 2019-8-5 11:46 | 只看該作者
牛叉 支持了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品地址 | 亚洲一二三区在线观看 | 在线国产视频 | 国产福利视频导航 | 久久久久久高潮国产精品视 | 91精品国产乱码久久蜜臀 | 国产福利91精品一区二区三区 | 男人天堂手机在线视频 | 色综合久久88色综合天天 | 91在线免费观看网站 | 国产精品一区二区三区四区五区 | 秋霞电影一区二区三区 | 玖玖国产 | a毛片视频网站 | 中文字幕视频一区二区 | 国产精品成人品 | 免费大黄视频 | 精品国产免费人成在线观看 | 欧美 日韩 视频 | 黑人粗黑大躁护士 | 国产在线一区观看 | 视频二区国产 | 精品国产免费人成在线观看 | 中文字幕免费在线 | 一区二区三区欧美 | 亚洲每日更新 | 亚洲精品久久久一区二区三区 | 亚洲欧美在线一区 | 国产欧美一区二区久久性色99 | 久久久久久久久久一区 | a级毛片国产 | 男女羞羞免费网站 | 91久久久久| 午夜免费电影院 | 美女国产一区 | 日日拍夜夜 | 少妇特黄a一区二区三区88av | 欧美日韩在线观看一区 | 九九久久国产精品 | 特级黄色毛片 | 女人夜夜春 |