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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

1602數字顯示

[復制鏈接]
跳轉到指定樓層
樓主
1黑幣
用1602顯示一個可變的數字,初始為0,K1按下時數字加1,K2按下時數字減1

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

使用道具 舉報

沙發
ID:219388 發表于 2017-7-15 15:34 | 只看該作者
這可以通過改變1602的寫入數據來實現,按鍵按下時,數據加一,再將新的數據放入1602寫入數據里就可以了
回復

使用道具 舉報

板凳
ID:164602 發表于 2017-7-16 10:32 | 只看該作者
按照你的要求,我寫了一個程序:
#include<reg51.h>       

#define uchar unsigned char
#define uint unsigned int
#define LCD1602_DATAPINS P0
sbit LCD1602_E=P2^7;
sbit LCD1602_RW=P2^5;
sbit LCD1602_RS=P2^6;

sbit k1=P3^1;
sbit k2=P3^0;


unsigned char sz[12]="computation:",BUF[12]="0123456789+-";

void Lcd1602_Delay1ms(uint c)
{
    uchar a,b;
        for (; c>0; c--)
        {
                 for (b=50;b>0;b--)
                 {
                          for(a=1;a>0;a--);
                 }      
        }

}

void Delay15ms()
{
        unsigned char i, j;

        i = 30;
        j = 43;
        do
        {
                while (--j);
        } while (--i);
}

void LcdWriteCom(uchar com)
{
        LCD1602_E = 0;
        LCD1602_RS = 0;
        LCD1602_RW = 0;
       
        LCD1602_DATAPINS = com;
        Lcd1602_Delay1ms(1);

        LCD1602_E = 1;       
        Lcd1602_Delay1ms(5);
        LCD1602_E = 0;
}

void LcdWriteData(uchar dat)
{
        LCD1602_E = 0;
        LCD1602_RS = 1;
        LCD1602_RW = 0;

        LCD1602_DATAPINS = dat;
        Lcd1602_Delay1ms(1);

        LCD1602_E = 1;
        Lcd1602_Delay1ms(5);
        LCD1602_E = 0;
}

void LcdInit()
{
        LcdWriteCom(0x38);
        LcdWriteCom(0x0c);
        LcdWriteCom(0x06);
        LcdWriteCom(0x01);
        LcdWriteCom(0x02);
        LcdWriteCom(0x80);
}

void LCDreturn()
{
        Delay15ms();
        LcdWriteCom(0x38);
        Delay15ms();
        LcdWriteCom(0x38);
        Delay15ms();
        LcdWriteCom(0x38);
        LcdWriteCom(0x08);
        LcdWriteCom(0x01);
        LcdWriteCom(0x02);
        LcdWriteCom(0x38);
        LcdWriteCom(0x0c);
        LcdWriteCom(0x06);
        LcdWriteCom(0x80);
}

void main(void)
{
        unsigned char i;
        char j=0,k;
        LCDreturn();
        LcdInit();
        for (i=0;i<12;i++)
        {
                LcdWriteData(sz[i]);
        }
        while(1)
        {
                if (k1==0)
                {
                        Delay15ms();
                        if (k1==0)
                        {
                                j++;
                                if (j>125)
                                {
                                        j=-125;
                                }
                        }
                        for (i=0;((i<20)&&(k1==0));i++)
                        {
                                Delay15ms();
                        }
                }
                if (k2==0)
                {
                        Delay15ms();
                        if (k2==0)
                        {
                                j--;
                                if (j<-125)
                                {
                                        j=125;
                                }
                        }
                        for (i=0;((i<20)&&(k2==0));i++)
                        {
                                Delay15ms();
                        }
                }
                LcdWriteCom(0x8c);
                if (j<0)
                {
                        LcdWriteData(BUF[11]);
                        k=-j;
                }
                else
                {
                        LcdWriteData(BUF[10]);
                        k=j;
                }
                LcdWriteData(BUF[k/100]);//多位結果只能一次一次地找位
                LcdWriteData(BUF[(k%100)/10]);
                LcdWriteData(BUF[(k%10)/1]);
        }                               
}

單片機:STC89C52RC,其它電路如圖所示。

1.jpg (33.94 KB, 下載次數: 91)

1.jpg

2.jpg (19.3 KB, 下載次數: 100)

2.jpg
回復

使用道具 舉報

地板
ID:137499 發表于 2017-7-17 09:12 | 只看該作者
HC6800-ES-V2.0 發表于 2017-7-16 10:32
按照你的要求,我寫了一個程序:
#include       

拜謝大神,那要是按完k1按k2數字加一,然后按完k2按k1數字減一要怎么改
回復

使用道具 舉報

5#
ID:918467 發表于 2021-9-28 20:21 | 只看該作者
HC6800-ES-V2.0 發表于 2017-7-16 10:32
按照你的要求,我寫了一個程序:
#include       

請問  LcdWriteCom(0x02);  這條指令是什么作用
回復

使用道具 舉報

6#
ID:918467 發表于 2021-9-28 20:23 | 只看該作者
HC6800-ES-V2.0 發表于 2017-7-16 10:32
按照你的要求,我寫了一個程序:
#include       

不好意思,我還想請問一下  void LCDreturn()  這一段的作用是什么,謝謝啦
回復

使用道具 舉報

7#
ID:415064 發表于 2021-9-30 17:54 | 只看該作者
lqh_fairy 發表于 2021-9-28 20:23
不好意思,我還想請問一下  void LCDreturn()  這一段的作用是什么,謝謝啦

感覺是多次初始化 預防初始化失敗
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品美女 | 久久精品一级 | 国产成人亚洲精品自产在线 | 一级免费视频 | 天堂av影院 | 国产999精品久久久 日本视频一区二区三区 | 天天躁日日躁xxxxaaaa | 精品国产一区二区在线 | 99久久精品免费视频 | 亚洲一区二区在线视频 | 欧美一级片久久 | 最新中文字幕 | 国产精品久久久久久婷婷天堂 | 久草视频在线播放 | 黄色一级电影在线观看 | 91国产精品 | 日韩毛片 | 欧美黄色免费网站 | 亚洲日本欧美日韩高观看 | 日本午夜精品 | 亚洲视频一区二区三区 | 中文字幕精品一区二区三区精品 | 精品国产乱码一区二区三区a | 黄色在线观看网站 | 国产精品久久久久久久久久东京 | 一级片在线视频 | 精品一区二区三区在线观看 | 国产精品国产三级国产aⅴ中文 | 羞羞网站在线观看 | 成人亚洲一区 | 久久国产精品-久久精品 | 日韩在线视频网址 | 亚洲第一福利网 | 国产高清视频在线 | 国产三区在线观看视频 | 久久国产三级 | 亚洲高清在线免费观看 | 99在线免费观看 | 亚洲日本激情 | 久久久久久久久久久久久九 | 欧美三级视频在线观看 |