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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

小白再次幫友求助 “4位數據管,從0000到9999,每0.5s增加1”程序設計

[復制鏈接]
跳轉到指定樓層
樓主
“4位數據管,從0000到9999,每0.5s增加1”程序設計
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:214905 發表于 2017-6-26 20:20 | 只看該作者
大概是這樣的,開定時器1,工作方式1,初值設置到50毫秒一中斷,if判斷十次中斷進行一次處理
斷選和位選分成兩個數組,這個具體就看你的硬件怎么連接的了,然后int個數,在每十次中斷里將它+1,分別取這個數的千百十個位,對應數組元素送入段選。
開定時器0,2毫秒一中斷,中斷中進行動態顯示
回復

使用道具 舉報

板凳
ID:211467 發表于 2017-6-26 22:17 | 只看該作者
不許用開定時器0了吧?
回復

使用道具 舉報

地板
ID:123289 發表于 2017-6-26 22:36 | 只看該作者
本帖最后由 yzwzfyz 于 2017-6-26 22:58 編輯

開啟T0中斷,每4ms中斷一次。
設置一個變量R_9999(0-9999)做計數用。用法:每0.5秒R_9999+1。
設置一個掃描計數器R_SC(=0-3)。用法:每次T0中斷R_SC+1,當R_SC=4時回0。
設置一個0.5秒計時器R_05(=0-124)。用法:每次T0中斷,R_05+1,R_05=125時回0。

每次T0中斷依序做以下動作:

自動+1:
1、R_05+1,當R_05=125時做以下動作(否則不處理):
   1.1、R_05=0;
   1.2、R_9999+1。
掃描顯示:
2、R_SC+1(為切換顯示指明顯示位),如果R_SC=4則回0(只有4個LED),再做以下動作(無論R_SC=?):
  2.1、根據R_SC的值,取R_9999之中的一個位(R_SC:0-3各對應個、十、百、千位)放入A中;
  2.2、將A進行譯碼(事先做一個表10個字節:對應LED段碼顯示0-9的段表達明暗的字節形式);
  2.3、關閉4個LED;(以下改變顯示內容時不會出現錯字閃動);
  2.4、將譯碼后的A值通過IO口送到LED的8個段顯示上(只用七段就夠了,因為已關斷,所以這時無顯示,也就無所畏對錯);
  2.5、接通顯示的這個LED(三個關閉一個開通,這時才正式顯示一個LED,完成掃描顯示一位)。

如果自己還不會寫,也不想自己寫,就改行吧。
回復

使用道具 舉報

5#
ID:164602 發表于 2017-6-27 07:24 | 只看該作者
看看我編的程序對不對。對應的電路如圖。
#include<reg51.h>

#define smg P0

sbit a=P2^2;
sbit b=P2^3;          
sbit c=P2^4;

unsigned char code xs[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char i=0,t=0;
unsigned int j=0;

void Delay(unsigned char c);
void play(void);
void TimeConfig();

void main(void)
{
        TimeConfig();
        t=10;
        smg=0x00;
        while(1)
        {       
                if (i>=10)
                {
                        j++;
                }
                if (j==9999)
                {
                        j=0;
                }
                        play();
        }               
}

void play(void)
{
        c=1;b=0;a=0;
        smg=xs[j/1000];
        Delay(t);
        smg=0x00;
        Delay(t);

        c=0;b=1;a=1;
        smg=xs[(j%1000)/100];
        Delay(t);
        smg=0x00;
        Delay(t);

        c=0;b=1;a=0;
        smg=xs[(j%100)/10];
        Delay(t);
        smg=0x00;
        Delay(t);

        c=0;b=0;a=1;
        smg=xs[(j%10)/1];
        Delay(t);
        smg=0x00;
        Delay(t);
}

void Delay(unsigned char c)
{
    unsigned char b;
    for(c;c>0;c--)
        for(b=10;b>0;b--);
}

void TimeConfig()
{
    TMOD = 0x01;
    TH0 = 0x3c;         //設置初始值,定時50ms
    TL0 = 0xb0;
    EA = 1;                 //總中斷開啟
    ET0 = 1;         //定時器0中斷開啟
    TR0 = 1;         //啟動定時器0
}

void Time0() interrupt 1//定時器0中斷服務函數
{
        TH0 = 0x3c;         //重裝初值
    TL0 = 0xb0;
        i++;
}


1.jpg (60.96 KB, 下載次數: 48)

1.jpg

2.jpg (17.4 KB, 下載次數: 44)

2.jpg
回復

使用道具 舉報

6#
ID:164602 發表于 2017-6-27 11:11 | 只看該作者
剛才發的程序,有一點錯誤!抱歉!
就是這里:
  if (i>=10)
                {
                        j++;
                }
應該加一句:
  if (i>=10)
                {
                        j++;
                       i=0;
                }
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 好好的日在线视频 | 日日骚网| 黄色免费在线观看 | 国产一区二区免费在线 | 欧美精品成人一区二区三区四区 | 全免费a级毛片免费看视频免费下 | 欧产日产国产精品国产 | 九九热在线免费观看 | 中文字幕国产一区 | 男女啪啪高潮无遮挡免费动态 | 国产精品久久久久久久久久免费看 | 天天av天天好逼 | 久久婷婷香蕉热狠狠综合 | 欧美日韩一| 久草视频在线播放 | 欧美一区二区三区在线观看视频 | 在线视频 中文字幕 | 人人爽日日躁夜夜躁尤物 | 免费观看av | 99在线观看视频 | 91精品国产综合久久久久久蜜臀 | 亚洲欧美日韩网站 | 国产视频1区2区 | 最近中文字幕在线视频1 | 特黄视频 | 91在线视频观看免费 | 国产1区2区在线观看 | 国产精品婷婷 | 正在播放亚洲 | 日韩三级一区 | 久久久久久国产免费视网址 | 成人影院一区二区三区 | 亚洲视频1区 | 亚洲成人在线免费 | 亚洲一区二区在线 | 日韩精品一区二区三区视频播放 | av日韩精品| 日韩二三区 | 国产一区二区三区在线 | 91精品国产综合久久福利软件 | 精品一区二区三区在线观看 |