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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求教 單片機程序應該在哪個地方把這些按鈕加上去啊?

[復制鏈接]
跳轉到指定樓層
樓主
50黑幣
本帖最后由 1269210768 于 2020-6-23 08:43 編輯

按下A鍵啟動,數碼管的時、分、秒顯示00.00.00CL,從零開始,按照鐘表走時,再次按下A鍵停止,數碼管保持顯示當前時間,其中,CL代表時鐘狀態clock。
按“B” 鍵一次,秒鐘加一,按多次則加多次,秒鐘到59再按則為0;
按“C” 鍵一次,分鐘加一,按多次則加多次,分鐘到59再按則為0;
按“D” 鍵一次,時鐘加一,按多次則加多次,時鐘到23再按則為0;


這個是我源程序,A按鍵應該怎么改,我要怎么改A才能控制啟停,求教!!
#include<regx51.h>
#define uchar unsigned char
#define uint unsigned int
#define TIME=1200
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
sbit K5=P1^4;
unsigned int cnt=0;
unsigned char i=0;
unsigned long sec=0;
unsigned char second = 0;
unsigned char minute = 0;
unsigned char hour = 0;
unsigned char code segment_code[10] = {0x3f, 0x06, 0x5b, 0x4f,0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f};
unsigned char digital_tube[8]={0x3f,0x3f,0x3f,0x3f,0x3f,0x39,0x38};
void ScanLed()
{
        static unsigned char display_bit = 0;
        switch (display_bit)
        {
        case 0:
                P2=0xfe;
                break;
        case 1:
                P2=0xfd;
                break;
        case 2:
                P2=0xfb;
                break;
        case 3:
                P2=0xf7;
                break;
        case 4:
                P2=0xef;
                break;
        case 5:
                P2=0xdf;
                break;
        case 6:
                P2=0xbf;
                break;
        case 7:
                P2=0x7f;
                break;
        default:
                break;
}
        P0=digital_tube[display_bit];
                display_bit++;
        if (display_bit == 8)
                display_bit = 0;
}
void main()
{
        TMOD = 0x01;
    TH0 = 64536 / 256;
    TL0 = 64536 % 256;
    EA = 1;
    ET0 = 1;
    TR0 = 1;
        while (1)
                ;
}
void delay(unsigned int xms)
{
        unsigned int i,j;
        for(i=xms;i>0;i--)
                for(j=100;j>0;j--);
}
void Timer0() interrupt 1
{
        static int index = 0;
        TH0 = 64536 / 256;
   TL0 = 64536 % 256;
        index++;
        ScanLed();
        if (index == 1000)
        {
                index = 0;
                second++;
        }
        if (second == 60)
        {
                second = 0;
                minute++;
        }
        if (minute == 60)
        {
                minute = 0;
                hour++;
        }
        if (hour == 24)
        {
                hour = 0;
        }
        if(K4==0)
    {
  delay(10);
   if(K4==0)
{
hour++;
if(hour==24)        hour=0;
}
  while(!K4);
}
if(K3==0)
   {
  delay(10);
  if(K3==0)
{
  minute++;
  if(minute==60)        minute=0;
   }
while(!K3);
  }
if(K2==0)
{
delay(10);
if(K2==0)
   {
second++;
if(second==24)       second=0;
}
while(!K2);
}
if(K1==0)
     {
delay(10);
if(K1==0)
      {
hour=0;
minute=0;
second=0;
}
while(!K1);
}
digital_tube[0] = segment_code[hour / 10];
digital_tube[1] = segment_code[hour % 10]+0x80;
digital_tube[2] = segment_code[minute / 10];
digital_tube[3] = segment_code[minute % 10]+0x80;
digital_tube[4] = segment_code[second / 10];
digital_tube[5] = segment_code[second % 10]+0x80;
digital_tube[6] = 0x39;
digital_tube[7] = 0x38;       
}

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

使用道具 舉報

沙發
ID:332444 發表于 2020-6-22 17:04 | 只看該作者
回復

使用道具 舉報

板凳
ID:739545 發表于 2020-6-22 17:28 | 只看該作者
ScanLed()函數不就是按鍵么,在你的中斷函數里面,也可以放到mian函數的while(1)里面去
回復

使用道具 舉報

地板
ID:786916 發表于 2020-6-22 17:39 | 只看該作者
右鍵單擊橫線  選擇 PLACE WIRE LABLE
回復

使用道具 舉報

5#
ID:672631 發表于 2020-6-22 19:40 | 只看該作者
試一試加到main()里面,
if(K1==0)second++;
if(K1==0)minute++;
if(K1==0)hour++;(沒加按鍵去抖,要給一點延時)
或者可以試一試加在定時器中斷函數里面
回復

使用道具 舉報

6#
ID:786338 發表于 2020-6-23 08:37 | 只看該作者
123ty 發表于 2020-6-22 19:40
試一試加到main()里面,
if(K1==0)second++;
if(K1==0)minute++;

好的我試試,謝謝
回復

使用道具 舉報

7#
ID:786338 發表于 2020-6-23 08:41 | 只看該作者
123ty 發表于 2020-6-22 19:40
試一試加到main()里面,
if(K1==0)second++;
if(K1==0)minute++;

這樣就變成了A按下就都加一啊,我只是想讓A鍵控制啟停
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: a在线观看 | 国产成人福利视频在线观看 | 在线免费黄色小视频 | 免费观看一级特黄欧美大片 | 国产精彩视频在线观看 | 亚洲午夜av久久乱码 | 国产不卡在线 | 精产国产伦理一二三区 | 精品美女久久久久久免费 | 精品av| 久久综合狠狠综合久久 | 亚洲最大福利网 | 香蕉91| 日本啊v在线 | 毛片一区二区三区 | 久久亚洲精品国产精品紫薇 | 精品日本中文字幕 | www性色| 久久精品视频在线免费观看 | 谁有毛片 | 中文字幕日韩一区 | 国产清纯白嫩初高生在线播放视频 | 精品国产色 | av天空| 日韩在线播放av | 久久久久国产一区二区 | 国产精品揄拍一区二区 | 在线观看中文字幕 | 中文字幕精品视频在线观看 | 欧美久久久久久 | 一区二区在线看 | www操操| 国产成人精品亚洲日本在线观看 | 精精国产xxxx视频在线 | 国产精品高潮呻吟久久av黑人 | 国产电影一区二区 | 欧美一区二区小视频 | 国产99免费 | 91麻豆蜜桃一区二区三区 | 国产精品久久久久久久免费观看 | 99精品99|