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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于PCF8591的ADDA轉換,我的lcd1602亮不起來,求助

[復制鏈接]
跳轉到指定樓層
樓主
LCD1602封裝函數用的江科大的


#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#include "LCD1602.h"
#define uchar unsigned char
#define uint unsigned int

// PCF8591相關地址及控制字定義
sbit SCL = P1^1;  // I2C時鐘線,假設連接到P2.0,根據實際電路圖修改
sbit SDA = P1^2;  // I2C數據線,假設連接到P2.1,根據實際電路圖修改



// 延時函數
void delayms(uchar ms)
{
    uchar i;
    while(ms--)
    {
        for(i = 0; i < 123; i++);
    }
}

// I2C起始信號
void I2C_Start()
{
    SDA = 1;
    SCL = 1;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SDA = 0;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SCL = 0;
}

// I2C停止信號
void I2C_Stop()
{
    SDA = 0;
    SCL = 1;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SDA = 1;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SCL = 0;
}

// I2C發送應答信號
void I2C_SendAck()
{
    SDA = 0;
    SCL = 1;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SCL = 0;
    SDA = 1;
}

// I2C發送非應答信號
void I2C_SendNotAck()
{
    SDA = 1;
    SCL = 1;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SCL = 0;
    SDA = 0;
}

// I2C發送一個字節數據
void I2C_SendByte(uchar dat)
{
    uchar i;
    for(i = 0; i < 8; i++)
    {
        SDA = (bit)(dat & 0x80);
        SCL = 1;
        _nop_();_nop_();_nop_();_nop_();_nop_();
        SCL = 0;
        dat <<= 1;
    }
    // 接收應答信號
    SDA = 1;
    SCL = 1;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    while(SDA);
    SCL = 0;
}

// I2C接收一個字節數據
uchar I2C_RecvByte()
{
    uchar i, dat = 0;
    SDA = 1;
    for(i = 0; i < 8; i++)
    {
        SCL = 1;
        dat <<= 1;
        if(SDA)
        {
            dat |= 0x01;
        }
        SCL = 0;
    }
    return dat;
}

// PCF8591進行DA轉換
void PCF8591_DA(uchar dat)
{
    I2C_Start();
    I2C_SendByte(0x90);  // PCF8591寫地址
    I2C_SendAck();
    I2C_SendByte(0x40);  // 控制字節,選擇通道0進行DA轉換
    I2C_SendAck();
    I2C_SendByte(dat);
    I2C_SendAck();
    I2C_Stop();
}

// PCF8591進行AD轉換,選擇通道2
uchar PCF8591_AD()
{
    uchar dat;
    I2C_Start();
    I2C_SendByte(0x90);  // PCF8591寫地址
    I2C_SendAck();
    I2C_SendByte(0x42);  // 控制字節,選擇通道2進行AD轉換
    I2C_SendAck();
    I2C_Start();
    I2C_SendByte(0x91);  // PCF8591讀地址
    I2C_SendAck();
    dat = I2C_RecvByte();
    I2C_SendNotAck();
    I2C_Stop();
    return dat;
}


// 主函數
void main()
{
    uchar ad_value;
    uchar da_value = 0;
    char ad_str[16];
    char da_str[16];
    LCD_Init();

    while(1)
    {
        PCF8591_DA(da_value);
        delayms(10);
        ad_value = PCF8591_AD();

        //轉換AD值為字符串
        sprintf(ad_str, "AD: %d", ad_value);
        //轉換DA值為字符串
        sprintf(da_str, "DA: %d", da_value);
        LCD_ShowString(1, 1, "sdhjkbv");
        LCD_ShowString(2, 1, da_str);

        da_value++;
        if(da_value > 255)
        {
            da_value = 0;
        }
    }
}

1FA7EE3A30F0A6E340F566AD2150B098.png (138.57 KB, 下載次數: 0)

1FA7EE3A30F0A6E340F566AD2150B098.png

A052A81176C0461397DC29FE1F9B9ACB.png (352.71 KB, 下載次數: 0)

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

使用道具 舉報

沙發
ID:161164 發表于 2024-12-19 11:41 | 只看該作者
江科大的LCD1602引腳和你的仿真圖不匹配
RS=P26
RW=P25
EN=P27
要不改仿真
要不改代碼
回復

使用道具 舉報

板凳
ID:1134495 發表于 2024-12-19 13:05 | 只看該作者
lkc8210 發表于 2024-12-19 11:41
江科大的LCD1602引腳和你的仿真圖不匹配
RS=P26
RW=P25

那里面的引腳我改過了的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕av第一页 | 久久久久久免费毛片精品 | 日本精品视频在线观看 | 欧美黄在线观看 | 日韩欧美三级 | 久久国产美女视频 | 国产精品日韩在线观看 | 免费性视频| 久草网址 | 精品电影| 在线午夜 | 韩国av一区二区 | 国产福利91精品一区二区三区 | 精品91久久 | 天天天操 | 亚洲精品久久久久中文字幕欢迎你 | 久久久久久久一区 | 99免费精品| 久久久久久九九九九九九 | 亚洲精品国产综合区久久久久久久 | 国产一区二区三区 | 亚洲色欧美另类 | 欧美电影在线观看网站 | 亚洲91 | 国产精品久久久久久久久久99 | 玩丰满女领导对白露脸hd | 丁香婷婷成人 | 黄色网址大全在线观看 | 91福利在线观看视频 | 黄色大片免费观看 | 日本精品视频一区二区三区四区 | 九九热在线观看 | 日韩一区和二区 | 成人久久久 | 美美女高清毛片视频免费观看 | 在线午夜 | 成人在线精品 | 大陆一级毛片免费视频观看 | 国产精品视频97 | 亚洲一区二区三区免费观看 | 日本不卡免费新一二三区 |