欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求大神幫忙看一下,最近做的這個秒表,兩位顯示正常,但是四位的 顯示的分鐘 就 ...

[復制鏈接]
跳轉到指定樓層
樓主
ID:519743 發表于 2020-10-27 23:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求大神幫忙看一下,最近做的這個秒表,兩位顯示正常,但是四位的  顯示的分鐘  就  那個啥了。感謝大神在百忙之中  抽空看下,萬分感謝;
#include<reg51.h>
#include<intrins.h>
sbit sck = P2^0;
sbit rck = P2^1;
sbit ds = P2^2;
sbit L1 = P2^7;
sbit L2 = P2^6;
sbit L3 = P2^5;
sbit L4 = P2^4;
sbit L5 = P2^3;
sbit L6 = P3^0;
sbit mr = P3^1;//?????  ??????Ч??
#define uint unsigned int
#define uchar unsigned char
uchar  seg[] = {0xc0,0xf9,0xa4,0xb0,0x99,
         0x92,0x82,0xf8,0x80,0x90};
uchar a,sec,min,hou;
void send_595(uchar date)
{   uchar i;
   for(i=1;i<9;i++)
  {
   ds = date&0x80;
   date<<=1;
   sck = 0;
   sck = 1;
  }
   rck = 0;
   rck = 1;
  
}

void timer0_isr()  interrupt 1
{   uchar j;
   L1 = 0;
   L2 = 0;
   L3 = 0;
   L4 = 0;
   L5 = 0;
   L6 = 0;
  
   TH0 =0X4C;
   TL0 =0X00;
   a++;
   if(a==20)
   {
   a = 0;
   sec++;
   }
   if(sec>59)
   {
   sec = 0 ;
   min++;
   }
   if(min>59)
   {
   min = 0;
   }
    mr = 0;
    mr = 1;
   switch(j)
   {
   case 0:   send_595(seg[sec%10]);  L1 = 1;   break;
   case 1:   send_595(seg[sec/10]);  L2 = 1;   break;
   case 2:   send_595(seg[min%10]);  L3 = 1;   break;
   case 3:   send_595(seg[min/10]);  L4 = 1;   break;
  // case 4:   send_595(seg[hou%10]);  L5 = 1;   break;
  // case 5:   send_595(seg[hou/10]);  L6 = 1;   break;
   }
   j++;
   if(j==4)
   j=0;  
     
}
void timer0_init(void)
{
   TMOD = 0X01;
   TH0 =0X4C;
   TL0 =0X00;
   EA = 1;
   ET0 = 1;
   TR0 = 1;
}
void main()
{
  timer0_init();
  while(1);
}

秒表.rar

59.47 KB, 下載次數: 4

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

使用道具 舉報

沙發
ID:213173 發表于 2020-10-28 07:11 | 只看該作者
本帖最后由 wulin 于 2020-10-28 08:16 編輯

樓主程序主要問題是局部變量j使用不當,其次動態掃描頻率過低。
void timer0_isr()  interrupt 1
{
  static uchar j;//改為靜態局部變量
   L1 = 0;
   L2 = 0;
   L3 = 0;
   L4 = 0;
   L5 = 0;
   L6 = 0;
  
   TH0 =0Xee;        //改為5ms定時
   TL0 =0X00;
   a++;
   if(a==200) //1秒
   {
   a = 0;
   sec++;
   }
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表