欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STC15F2K60S2單片機的例程如何獲取呢? [打印本頁]

作者: 閆新凈    時間: 2020-8-11 18:03
標題: STC15F2K60S2單片機的例程如何獲取呢?
求助!!!誰有LCD1602在STC15F2K60S2單片機上運行的程序 ?我調試兩天了沒調試出來 ,不知道 什么原因,希望學習一下成功的樣例程序。 一定要在STC15F2K60S2單片機上能運行的; 一定要在STC15F2K60S2單片機上能運行的;

作者: wulin    時間: 2020-8-11 20:21
你的程序只要能在51單片機運行就能在STC15F2K60S2單片機運行,只要把延時函數修改一下滿足LCD1602時序要求即可。
作者: bbxyliyang    時間: 2020-8-11 20:38
13. 1602顯示屏測試 (12MHz).rar (69.36 KB, 下載次數: 31)

作者: man1234567    時間: 2020-8-12 07:03
1602對單片機沒要求的,只要程序對就可以,最多調一下延時或刪除延時語句。
作者: 梁廷明    時間: 2020-8-12 08:36
調整一下延時函數,增加數值
作者: 閆新凈    時間: 2020-8-12 09:23
bbxyliyang 發表于 2020-8-11 20:38

把程序改了下端口,下載進去 還是不顯示,是為什么
作者: 閆新凈    時間: 2020-8-12 09:25
wulin 發表于 2020-8-11 20:21
你的程序只要能在51單片機運行就能在STC15F2K60S2單片機運行,只要把延時函數修改一下滿足LCD1602時序要求 ...

就是直接把51上 的程序拿過來改了一下,增加了延時,怎么改就是不行;快沒脾氣了
作者: 閆新凈    時間: 2020-8-12 09:26
man1234567 發表于 2020-8-12 07:03
1602對單片機沒要求的,只要程序對就可以,最多調一下延時或刪除延時語句。

在哪個地方加延時?延時多少?我調了無數遍 了,快沒脾氣了
作者: csmyldl    時間: 2020-8-12 11:59
/********************************************************************************
*  描述:                LCD1602 滾動顯示                                       *
* 顯示方式:                                                                   *
* 1、從左到右逐字顯示,閃動二次,清屏。                                        *
* 2、再從右到左逐字顯示,閃動二次,清屏。                                      *
* 3、周期性地重復上述顯示方式。                                                *                           
********************************************************************************/
#include "common.h"
//選擇單片機
#if MCU_F
  #include <stc15f2k60s2.h>       //STC15單片機
#else
  #include <STC89C5xRC.H>         //STC89C52單片機
#endif

#include "delay.h"

#define LCDdata P0   //數據輸出端口

sbit LCD_RS = P2^5;  //寄存器選擇(RS=0,命令寄存器;RS=1,數據寄存器)            
sbit LCD_RW = P2^6;         //讀寫端(RW=1,讀;RW=0,寫)
sbit LCD_EP = P2^7;         //使能端

#if LCD1602_F
u8 idata dis1[] ="   WELCOME  TO  ";         //顯示內容
u8 idata dis2[] ="CHANGSHAMINZHENG";
#endif

/****************查忙函數************************/               
bit lcd_bz()
        {                        
bit result;
        LCD_RS = 0;
        LCD_RW = 1;
        LCD_EP = 1;
        result = (bit)(LCDdata & 0x80);         //檢測數據端口最高位是否為1
        LCD_EP = 0;
        return result;//返回查忙結果
        }

/****************寫命令函數************************/       
        void lcd_wcmd(u8 cmd)
        {                          // 寫入指令數據到LCD
        while(lcd_bz());
        LCD_RS = 0;
        LCD_RW = 0;
        LCD_EP = 0;
        LCDdata = cmd;             //將8位指令通過P0口傳給1602
        LCD_EP = 1;                //用于產生一個脈沖寬度
        LCD_EP = 0;  
        }
       
        void lcd_pos(u8 pos)
        {                          //設定顯示位置
        lcd_wcmd(pos | 0x80);
        }

/****************寫數據函數************************/       
        void lcd_wdat(u8 dat)
        {                   //寫入字符顯示數據到LCD
        while(lcd_bz());
        LCD_RS = 1;
        LCD_RW = 0;
        LCD_EP = 0;
        LCDdata = dat;  //將8位數據通過P0口傳給1602
        LCD_EP = 1;     //用于產生一個脈沖寬度
        LCD_EP = 0;
        }
       
        void lcd_init()
        {                   //LCD初始化設定
        lcd_wcmd(0x38);     //16*2顯示,5*7點陣,8位數據
        delay_ms(10);
        lcd_wcmd(0x0c);     //顯示開,關光標
        delay_ms(10);
        lcd_wcmd(0x06);     //移動光標
        delay_ms(10);
        lcd_wcmd(0x01);     //清除LCD的顯示內容
        delay_ms(10);
        }

//液晶顯示
#if LCD1602_F
void LCD1602disp()
{
  u8 i;

         lcd_wcmd(0x06);             //向右移動光標
         lcd_pos(0);                 //設置顯示位置為第一行的第1個字符
         i = 0;
         while(dis1[ i ] != '\0')    //顯示字符"WLCOME  TO"
          {  
            lcd_wdat(dis1[ i ]);
            i++;
            delay_ms(500);            //控制兩字之間顯示速度
          }
          lcd_pos(0x40);             //設置顯示位置為第二行第1個字符
          i = 0;
          while(dis2[ i ] != '\0')   //顯示字符"CHANGSHAMINZHENG"
           {
            lcd_wdat(dis2[ i ]);
            i++;
            delay_ms(500);            //控制兩字之間顯示速度
           }
          delay_ms(5000);             //控制停留時間
       
          lcd_wcmd(0x01);            //清除LCD的顯示內容
          delay_ms(1);
          lcd_wcmd(0x04);            //向左移動光標
             
          lcd_pos(15);               //設置顯示位置為第一行的第16個字符
          i = 0;
          while(dis1[ i ] != '\0')
          {                          //顯示字符"WLCOME  TO"
           lcd_wdat(dis1[ i ]);
           i++;
           delay_ms(500);             //控制兩字之間顯示速度
          }
         lcd_pos(0x4F);              //設置顯示位置為第二行的第16個字符
         i = 0;
         while(dis2[ i ] != '\0')
          {
           lcd_wdat(dis2[ i ]);      //顯示字符" HUANGHUAI  "
           i++;
           delay_ms(500);             //控制兩字之間顯示速度
          }
         delay_ms(5000);              //控制停留時間
       
         lcd_wcmd(0x01);             //清除LCD的顯示內容
         delay_ms(5000);              //控制兩屏轉換時間
                  
        }       
       
#endif

延時程序用下面提供的
void delay500ms(void)
{
  u8 i,j,k;
  for(i=254;i>0;i--)
    for(j=32;j>0;j--)
    for(k=183;k>0;k--);
}

void delay200ms(void)
{
u8 i,j,k;
for(i=10;i>0;i--)
  for(j=239;j>0;j--)
   for(k=250;k>0;k--);
}

void delay100ms(void)
{
u8 i,j,k;
for(i=246;i>0;i--)
  for(j=12;j>0;j--)
   for(k=100;k>0;k--);
}


void delay10ms(void)
{
u8 i,j,k;
  for(i=30;i>0;i--)
   for(j=80;j>0;j--)
    for(k=10;k>0;k--);
}

void delay2ms(void)       
{
u8 i,j,k;
  for(i=1;i>0;i--)
   for(j=36;j>0;j--)
    for(k=152;k>0;k--);
}

void delay_ms(u8 t)       
{
u8 i,j,k;
  for(i=t;i>0;i--)
   for(j=80;j>0;j--)
    for(k=33;k>0;k--);
}

         
void delay500us(void)
{
u8 i,j,k;
  for(i=1;i>0;i--)
   for(j=52;j>0;j--)
    for(k=25;k>0;k--);
}       
       
void delay30us(void)
{
u8 i,j,k;
  for(i=1;i>0;i--)
   for(j=1;j>0;j--)
    for(k=77;k>0;k--);
}       

void delay_us(u8 t)
{
u8 i,j;
  for(i=t;i>0;i--)
    for(j=11;j>0;j--);
}       

void delay1s(void)
{
u8 i,j,k;
for(i=198;i>0;i--)
  for(j=100;j>0;j--)
  for(k=150;k>0;k--);
}         
         


作者: bbxyliyang    時間: 2020-8-12 20:51
閆新凈 發表于 2020-8-12 09:23
把程序改了下端口,下載進去 還是不顯示,是為什么

那估計你硬件有問題吧?
作者: 天風情    時間: 2020-8-13 18:32
調背光試試看,先確認硬件沒問題再調試軟件
作者: 閆新凈    時間: 2020-8-24 16:14
bbxyliyang 發表于 2020-8-12 20:51
那估計你硬件有問題吧?

已經查出來了,確定是硬件問題,謝謝了
作者: 閆新凈    時間: 2020-8-24 16:15
天風情 發表于 2020-8-13 18:32
調背光試試看,先確認硬件沒問題再調試軟件

已經查出來了,是硬件問題,謝謝了




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1