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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

沒學過該怎么在1602里面加定時器

[復制鏈接]
跳轉到指定樓層
#
ID:1147078 發表于 2025-4-8 23:03 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
新作業用定時器定時,做一個電子時鐘,時間從23:59:56開始計時,并在lcd1602上顯示,顯示要求:第一行顯示:Time:第二行顯示:23:59:56
不懂就問,是不是就是加一個定時器0?
#include <reg51.h>
sbit e=P2^7;
sbit rs=P2^6;
sbit rw=P2^5;
void delayms(int ms)
{int i,j;

for (j=0;j<ms;j++)
  for(i=0;i<333;i++);
}

bit checkbusy()
{bit stat;
rs=0;
rw=1;
e=0;
delayms(1);
e=1;
delayms(1);
stat=P0&0x80;
e=0;
delayms(1);
return stat;
}
void lcdcom(char com)
{while (checkbusy());
rs=0;
rw=0;
e=0;
delayms(1);
P0=com;
e=1;delayms(1);
e=0;delayms(1);
}
void lcddat(char dat)
{while (checkbusy());
rs=1;//寫數據
rw=0;
e=0;
delayms(1);
P0=dat;
e=1;delayms(1);
e=0;delayms(1);
}

void main()
{ lcdcom(0x01);
  lcdcom(0x06);
  lcdcom(0x0e);
  lcdcom(0x38);

  lcdcom(0x80);
  lcddat('T');
  lcddat('I');
  lcddat('M');
  lcddat('E');

  lcdcom(0xC3);
  lcddat('3');
  lcddat('6');

  while(1);
}這是我現在寫的代碼,滿足了條件1

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

使用道具 舉報

6#
ID:1147078 發表于 2025-4-15 09:11 | 只看該作者
man1234567 發表于 2025-4-12 20:00
通常所指的1602是顯示用的,里面加不了定時器。
問的沒頭沒尾,解決后也不傳結果供參考,好像不是要討論而 ...

沒有吧,在里面程序里加了個定時器就好了。也沒有免費進貨啊,不然我一點代碼都不打直接問得了。#include <REGX51.H>
#include "1602.h"

struct Time {
    char hour;
    char minute;
    char second;
};

struct Time currentTime = {23, 59, 56};  // 初始時間將在 main() 里設置
int Count = 0;

void Timer0_Init() {
    TMOD &= 0xF0; // 設置定時器0模式1
    TMOD |= 0x01;
    TH0 = 0xFC;
    TL0 = 0x18;
    ET0 = 1; // 允許定時器0中斷
    EA = 1;  // 開總中斷
    TR0 = 1; // 啟動定時器0
}

void UpdateTimeDisplay() {
    char timeStr[9];
   
    // 格式化時間字符串
    timeStr[0] = currentTime.hour / 10 + '0';
    timeStr[1] = currentTime.hour % 10 + '0';
    timeStr[2] = ':';
    timeStr[3] = currentTime.minute / 10 + '0';
    timeStr[4] = currentTime.minute % 10 + '0';
    timeStr[5] = ':';
    timeStr[6] = currentTime.second / 10 + '0';
    timeStr[7] = currentTime.second % 10 + '0';
    timeStr[8] = '\0';
   
    LCD_ShowString(2, 1, timeStr);
}

void Timer0_ISR() interrupt 1 {
    TH0 = 0xFC; // 重新加載初值
    TL0 = 0x18;
   
    Count++;
    if (Count >= 1000) { // 1秒到
        Count = 0;
        currentTime.second++;
        
        // 處理秒進位
        if (currentTime.second >= 60) {
            currentTime.second = 0;
            currentTime.minute++;
            
            // 處理分鐘進位
            if (currentTime.minute >= 60) {
                currentTime.minute = 0;
                currentTime.hour++;
               
                // 處理小時進位
                if (currentTime.hour >= 24) {
                    currentTime.hour = 0;
                }
            }
        }
        
        UpdateTimeDisplay(); // 更新顯示
    }
}

void main()
{
        LCD_Init();
        LCD_ShowString(1,1,"TIME:");

        Timer0_Init();


        UpdateTimeDisplay();


        while(1)
        {

        }
}
回復

使用道具 舉報

5#
ID:584814 發表于 2025-4-12 20:00 | 只看該作者
通常所指的1602是顯示用的,里面加不了定時器。
問的沒頭沒尾,解決后也不傳結果供參考,好像不是要討論而是來免費進貨的
回復

使用道具 舉報

地板
ID:1147078 發表于 2025-4-10 18:21 | 只看該作者
已解決
謝謝大家
回復

使用道具 舉報

板凳
ID:462827 發表于 2025-4-9 22:57 | 只看該作者
是的,開個定時中斷來走時分秒,然后在主函數的while(1)循環里更新顯示時間即可
回復

使用道具 舉報

沙發
ID:1146851 發表于 2025-4-9 15:31 | 只看該作者
用的是單片機8051?可以用定時器間隔例如每 50ms 觸發一次中斷,每 20 次中斷(即 1 秒)更新一次時間來進行日,時,分,秒的轉換
回復

使用道具 舉報

樓主
ID:69038 發表于 2025-4-9 14:32 | 只看該作者
是的,你要開一個計數定時器,用于計時。
從23:59:56開始,每秒減1個秒計數。。直到時分秒均為0停止。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久国产精品三区 | 91精品国产色综合久久不卡蜜臀 | 久久久美女 | 国产精品视频久久久 | 久久精品手机视频 | 日韩午夜精品 | 亚洲在线视频 | 久久99精品久久久97夜夜嗨 | 特级特黄特色的免费大片 | 国产成人精品久久二区二区91 | 亚洲日本中文 | 国产精品欧美大片 | 婷婷久久五月 | 国产精品久久久久久久久久久久久久 | 国产激情一区二区三区 | 国产视频在线一区二区 | 免费日本视频 | 在线亚洲欧美 | 亚洲精品一区中文字幕乱码 | 免费观看一级特黄欧美大片 | 日韩一级免费电影 | 色综合99| 天天干com | 久久精品美女 | 先锋资源站| 81精品国产乱码久久久久久 | 99福利视频导航 | 日本成人区 | av一级在线观看 | 免费观看黄网站 | 91精品国产91久久综合桃花 | 黄色一级毛片 | 国产一区二区三区 | 成人二区| 欧美精品在欧美一区二区 | 国产你懂的在线观看 | 日本黄色影片在线观看 | 成人av一区| 丝袜一区二区三区 | 国产一区二区三区免费视频 | 亚洲第1页|