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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC15F2K60S2單片機的例程如何獲取呢?

[復制鏈接]
跳轉到指定樓層
樓主
ID:592145 發表于 2020-8-11 18:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求助!!!誰有LCD1602在STC15F2K60S2單片機上運行的程序 ?我調試兩天了沒調試出來 ,不知道 什么原因,希望學習一下成功的樣例程序。 一定要在STC15F2K60S2單片機上能運行的; 一定要在STC15F2K60S2單片機上能運行的;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2020-8-11 20:21 | 只看該作者
你的程序只要能在51單片機運行就能在STC15F2K60S2單片機運行,只要把延時函數修改一下滿足LCD1602時序要求即可。
回復

使用道具 舉報

板凳
ID:190577 發表于 2020-8-11 20:38 | 只看該作者
13. 1602顯示屏測試 (12MHz).rar (69.36 KB, 下載次數: 31)
回復

使用道具 舉報

地板
ID:584814 發表于 2020-8-12 07:03 | 只看該作者
1602對單片機沒要求的,只要程序對就可以,最多調一下延時或刪除延時語句。
回復

使用道具 舉報

5#
ID:235954 發表于 2020-8-12 08:36 | 只看該作者
調整一下延時函數,增加數值
回復

使用道具 舉報

6#
ID:592145 發表于 2020-8-12 09:23 | 只看該作者

把程序改了下端口,下載進去 還是不顯示,是為什么
回復

使用道具 舉報

7#
ID:592145 發表于 2020-8-12 09:25 | 只看該作者
wulin 發表于 2020-8-11 20:21
你的程序只要能在51單片機運行就能在STC15F2K60S2單片機運行,只要把延時函數修改一下滿足LCD1602時序要求 ...

就是直接把51上 的程序拿過來改了一下,增加了延時,怎么改就是不行;快沒脾氣了
回復

使用道具 舉報

8#
ID:592145 發表于 2020-8-12 09:26 | 只看該作者
man1234567 發表于 2020-8-12 07:03
1602對單片機沒要求的,只要程序對就可以,最多調一下延時或刪除延時語句。

在哪個地方加延時?延時多少?我調了無數遍 了,快沒脾氣了
回復

使用道具 舉報

9#
ID:235200 發表于 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--);
}         
         

回復

使用道具 舉報

10#
ID:190577 發表于 2020-8-12 20:51 | 只看該作者
閆新凈 發表于 2020-8-12 09:23
把程序改了下端口,下載進去 還是不顯示,是為什么

那估計你硬件有問題吧?
回復

使用道具 舉報

11#
ID:426861 發表于 2020-8-13 18:32 | 只看該作者
調背光試試看,先確認硬件沒問題再調試軟件
回復

使用道具 舉報

12#
ID:592145 發表于 2020-8-24 16:14 | 只看該作者
bbxyliyang 發表于 2020-8-12 20:51
那估計你硬件有問題吧?

已經查出來了,確定是硬件問題,謝謝了
回復

使用道具 舉報

13#
ID:592145 發表于 2020-8-24 16:15 | 只看該作者
天風情 發表于 2020-8-13 18:32
調背光試試看,先確認硬件沒問題再調試軟件

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美中文字幕一区 | 国产精品色婷婷久久58 | 天天综合亚洲 | 神马久久久久久久久久 | 国产东北一级毛片 | 精品久久精品 | 99pao成人国产永久免费视频 | 国产成人精品一区二区三区四区 | 在线一区| 毛色毛片免费看 | 欧美美女爱爱 | 午夜视频免费在线观看 | 国产美女特级嫩嫩嫩bbb片 | 成人一区二区三区 | 国产亚洲成av人片在线观看桃 | 视频一区在线 | www.久| 国产日韩欧美精品 | 亚洲精品欧美 | 日韩三级电影一区二区 | 欧美日一区二区 | 色播99 | 免费一级黄 | 逼逼网| 久久久久久一区 | 视频一区在线观看 | 亚洲+变态+欧美+另类+精品 | 亚洲国产成人精品女人 | 欧美日韩国产在线 | 天天综合久久 | 免费一级欧美在线观看视频 | 国产福利视频 | 欧美国产日韩一区二区三区 | 欧美三级在线 | 日本天堂视频 | 亚洲视频中文字幕 | 7799精品视频天天看 | 综合网中文字幕 | 国产美女一区二区 | 欧美xxxx色视频在线观看免费 | 在线欧美一区 |