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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機一位數碼管秒表顯示程序有問題

查看數: 3271 | 評論數: 4 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2020-7-16 11:27

正文摘要:

程序要求按 A 鍵再按 B 鍵后,顯示兩鍵按下之間的時間 t(t <60s),單位為 ms。由于程序框圖的規定要求,我在一位大佬的程序基礎上修改了display()顯示函數,可是修改后能正常顯示,但再一次按下A鍵后沒有反應, ...

回復

ID:739545 發表于 2020-7-16 13:57
把t=0放到cnt[1]=table[count%10];
                        m=0;
后面,并使EA=0,在if(A1==0 && flag==0) //按鍵掃描里面添加EA=1;
ID:804115 發表于 2020-7-16 12:29
剛寫錯了是
    if(init==1&&flag==0)
ID:804115 發表于 2020-7-16 12:25
本帖最后由 1692483014 于 2020-7-16 12:31 編輯

    display函數一行改為
if(init==1&&flag==0)
就好了
ID:451718 發表于 2020-7-16 11:27
//----------------試試以下代碼
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit A1=P3^4;
sbit A2=P3^5;
uint m=0;
//uint t,d,e,f;
uchar code table[]={0x14,0xde,0x38,0x1a,0xd2,0x13,0x11,0x9e,0x10,0x12};
uchar cnt[6]={0};//小數緩存
bit flag=0;
bit init=0;

unsigned long SysTick,count,t;     //new add

void delay(void)   //誤差 0us
{
    unsigned char a,b,c;
    for(c=67;c>0;c--)
        for(b=124;b>0;b--)
            for(a=167;a>0;a--);
}

void start()
{
        TMOD=0x01; //T0 使用工作方式 1
        TH0=(65536-1000)/256; //1ms 定時
        TL0=(65536-1000)%256;
        EA=1;
        ET0=1;
            TR0=1;
}

void display()  //顯示子程序,從第一位開始逐位顯示't 00秒 000毫秒'
{
        static uint j;
        if(flag)
                P0=0xbf;//等待計數時顯示'-'
        else
        {        
                                if(init==1)
                                for(j=6;j>0;j--)
                                {P0=cnt[j];
                                delay();
                                }
        }
}

void main(void)
{
        start();
        P0=0xb7;//上電提示符
        while(1)
        {
                if(A1==0) //按鍵掃描
                {
                        flag=1;
                        //count=0;                                
                        //t=0;
                        //init=1;                                                
                }
                if(A2==0 && flag==1)
                {
                     while(!A2);
                        flag=0;
                        cnt[6]=0xbf;
                        cnt[5]=table[t/10000];
                        cnt[4]=table[t/1000%10];//加秒點
                        cnt[3]=table[t/100%10];
                        cnt[2]=table[t/10%10];
                        cnt[1]=table[t%10];
                        //m=0;
                }
                 display();
        }
}

void time0(void) interrupt 1 //T0 中斷服務子程序
{
        TH0=(65536-1000)/256;
        TL0=(65536-1000)%256;
                SysTick++;
        if(A1==0)
        {
            count = SysTick;               
        }
                if(A2==0 && flag==1)
        {
                    t = SysTick - count;
                        flag = 0;
            }
}

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产综合久久久久蜜臀 | 欧美日韩综合精品 | 国产区在线观看 | 人人九九精 | 久久久国产精品视频 | 国产欧美精品区一区二区三区 | 在线黄 | 99riav国产一区二区三区 | 国产精品成人在线 | 中文字幕视频一区二区 | 日韩欧美综合在线视频 | 一级高清视频 | 日韩国产欧美在线观看 | 久久久久国产一区二区三区四区 | 九色一区| 中文字幕视频在线 | 成人精品一区二区三区中文字幕 | 国产精品一区在线观看 | 日本三级电影免费 | 人人干在线 | 欧美在线a | 欧美一区视频 | 在线播放中文字幕 | 久久久观看| 国产一二区视频 | 五月天婷婷综合 | 九色综合网 | 超碰精品在线 | 天天弄天天操 | 久久久女女女女999久久 | 亚洲自拍一区在线观看 | 日本a∨精品中文字幕在线 亚洲91视频 | 成人综合视频在线观看 | 国产精品久久午夜夜伦鲁鲁 | 成人欧美一区二区三区黑人孕妇 | 欧美日韩大片 | 久久精品 | 成人精品鲁一区一区二区 | 久久成人一区 | 久久国产福利 | 国产一区二区三区日韩 |