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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3004|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)小白,定時(shí)1ms,數(shù)碼管依舊閃爍怎么解決?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:719032 發(fā)表于 2020-3-30 19:51 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
編程實(shí)現(xiàn)前五位數(shù)碼管顯示固定數(shù)字,后兩位數(shù)碼管循環(huán)顯示數(shù)字0~99
定時(shí)為1ms,前四位一直閃爍
#include<reg51.h>
#include<intrins.h>
#define SEG1 P0//段碼線
#define SEG2 P1//段碼線
#define SEG3 P3//段碼線
sbit S1=P2^0;//第1個(gè)數(shù)碼管公共端  位選線
sbit S2=P2^1;//第2個(gè)數(shù)碼管公共端  位選線
sbit S3=P2^2;//第3個(gè)數(shù)碼管公共端  位選線
sbit S4=P2^3;//第4個(gè)數(shù)碼管公共端  位選線
sbit S5=P2^4;//第5個(gè)數(shù)碼管公共端  位選線
void Delayms(unsigned int c);/*延時(shí)函數(shù)*/


//unsigned char code DIG_CODE[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x671};//顯示0~F的值 共陰極
//0~F段碼 //顯示0~F的值 共陰極

unsigned char code DIG_CODE[16]={0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//顯示0~F的值         共陽極
//0~F段碼 //顯示0~F的值         共陽極
void main()
{
                int n;
                while(1)
                  for(n=0;n<=99;n++)
        {
          {       
                S1= 1;S2= 0;S3= 0;S4= 0;S5=0 ;//第1個(gè)數(shù)碼管工作 第2/3/4/5個(gè)數(shù)碼管不工作
                SEG1 = DIG_CODE[0];         //萬位
                Delayms(1);
                S1= 0;S2= 1;S3= 0;S4= 0;S5=0; //第1/3/4/5個(gè)數(shù)碼管不工作 第2個(gè)數(shù)碼管工作
                SEG1 = DIG_CODE[6];        //千位
                Delayms(1);
                S1= 0;S2= 0;S3= 1;S4= 0;S5=0; //第1/2/4/5個(gè)數(shù)碼管不工作 第3個(gè)數(shù)碼管工作
                SEG1 = DIG_CODE[1]; //百位
                Delayms(1);
                S1= 0;S2= 0;S3= 0;S4= 1;S5=0; //第1/2/3/5個(gè)數(shù)碼管不工作 第4個(gè)數(shù)碼管工作
                SEG1 = DIG_CODE[2];         //十位
                Delayms(1);
                S1= 0;S2= 0;S3= 0;S4= 0;S5=1; //第1/2/3/4個(gè)數(shù)碼管不工作 第5個(gè)數(shù)碼管工作
                SEG1 = DIG_CODE[3];         //個(gè)位
                Delayms(1);       
                         SEG2=        DIG_CODE[n%100/10];
                         SEG3=        DIG_CODE[n%10];
                         Delayms(50);
                }
          
        }                               
}

void Delayms(unsigned int c)                //@12.000MHz
{
        unsigned char i, j;
        while(c--)
        {
                i = 2;
                j = 239;
                do
                {
                        while (--j);
                } while (--i);
        }
}

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

使用道具 舉報(bào)

沙發(fā)
ID:235200 發(fā)表于 2020-3-30 21:17 | 只看該作者
把延時(shí)程序改為用定時(shí)器延時(shí)2ms就好了,因?yàn)檠h(huán)延時(shí)不準(zhǔn)確
回復(fù)

使用道具 舉報(bào)

板凳
ID:114631 發(fā)表于 2020-3-31 04:08 | 只看該作者
主要是Delayms(50);這個(gè)太長,導(dǎo)致最后一位顯示時(shí)間長,前面的4位顯示時(shí)間每位只有Delayms(1),就會(huì)引起閃爍。
把Delayms(50)去掉。Delayms(1);改大一點(diǎn),可以改成Delayms(5);
回復(fù)

使用道具 舉報(bào)

地板
ID:584814 發(fā)表于 2020-3-31 10:25 | 只看該作者
從硬件方面,將前幾位信號鎖存就不閃了,如果僅做樣子可以直接短接;
從軟件方面,顯示同步延時(shí),末兩位多次顯示相同內(nèi)容后再加1以求效果。
回復(fù)

使用道具 舉報(bào)

5#
ID:213173 發(fā)表于 2020-3-31 13:34 | 只看該作者
void main()
{
        int n;
        while(1)
?????????
        for(n=0;n<=99;n++)
        {
                {       
回復(fù)

使用道具 舉報(bào)

6#
ID:718123 發(fā)表于 2020-3-31 18:53 | 只看該作者
delay函數(shù)的延時(shí)問題,建議把delay后面的數(shù)值慢慢調(diào)試,但是用delay函數(shù)的話延時(shí)1ms一般都不會(huì)很精確,可以采用定時(shí)中斷定時(shí)1ms。
回復(fù)

使用道具 舉報(bào)

7#
ID:201555 發(fā)表于 2020-3-31 22:02 | 只看該作者
整體刷新頻率低于50hz()肯定閃爍,即刷新周期大于20
ms肯定閃爍。
回復(fù)

使用道具 舉報(bào)

8#
ID:719032 發(fā)表于 2020-4-1 07:38 來自觸屏版 | 只看該作者
chenalfe2013 發(fā)表于 2020-3-31 04:08
主要是Delayms(50);這個(gè)太長,導(dǎo)致最后一位顯示時(shí)間長,前面的4位顯示時(shí)間每位只有Delayms(1),就會(huì)引起閃 ...

把延時(shí)改小的話0~99循環(huán)太快就看不清了
回復(fù)

使用道具 舉報(bào)

9#
ID:719032 發(fā)表于 2020-4-1 07:41 來自觸屏版 | 只看該作者
wulin 發(fā)表于 2020-3-31 13:34
void main()
{
        int n;

把for語句放在后面前四位閃一下就不亮了
回復(fù)

使用道具 舉報(bào)

10#
ID:719032 發(fā)表于 2020-4-1 07:47 來自觸屏版 | 只看該作者
man1234567 發(fā)表于 2020-3-31 10:25
從硬件方面,將前幾位信號鎖存就不閃了,如果僅做樣子可以直接短接;
從軟件方面,顯示同步延時(shí),末兩位多 ...

能給一下具體的程序嗎?我剛剛開始學(xué)這門課,不太理解
回復(fù)

使用道具 舉報(bào)

11#
ID:719032 發(fā)表于 2020-4-1 07:49 來自觸屏版 | 只看該作者
起風(fēng)了~ 發(fā)表于 2020-3-31 18:53
delay函數(shù)的延時(shí)問題,建議把delay后面的數(shù)值慢慢調(diào)試,但是用delay函數(shù)的話延時(shí)1ms一般都不會(huì)很精確,可以 ...

定時(shí)中斷怎么用?可以具體解釋一下嗎?我剛剛接觸這門課,不太懂
回復(fù)

使用道具 舉報(bào)

12#
ID:584556 發(fā)表于 2020-4-1 10:48 | 只看該作者
你這個(gè)for循壞加的目的是不是想快速掃描達(dá)到消隱的效果,結(jié)果是不是和你預(yù)想不一樣,首先吶,循環(huán)不用那么多,你有幾個(gè)數(shù)碼管就用幾個(gè)循環(huán),然后加入你的段選位選信號,然后定時(shí)器產(chǎn)生1ms延時(shí)。建議寫一個(gè)顯示函數(shù),不要在主程序里面寫那么多。
回復(fù)

使用道具 舉報(bào)

13#
ID:719032 發(fā)表于 2020-4-1 12:58 來自觸屏版 | 只看該作者
一泓秋 發(fā)表于 2020-4-1 10:48
你這個(gè)for循壞加的目的是不是想快速掃描達(dá)到消隱的效果,結(jié)果是不是和你預(yù)想不一樣,首先吶,循環(huán)不用那么 ...

for循環(huán)是為了最后兩位循環(huán)顯示0~99,下面的那些是前五位固定數(shù)字的顯示
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: www.久| 午夜www | 国产精品成人在线观看 | 久久天天躁狠狠躁夜夜躁2014 | 91精品国产一区二区三区 | 日韩手机在线看片 | 久久精品国产精品青草 | 日韩中文字幕免费在线观看 | 亚洲精品小视频在线观看 | 黄色网络在线观看 | 精品国产视频在线观看 | 亚洲欧美综合 | 一级片av | 日韩欧美一二三区 | 国产一区免费 | 欧美日韩理论 | 国产亚洲欧美在线 | 亚洲成人久久久 | 国产精品久久久久久一区二区三区 | 在线一级片 | 精品色 | 一区二区三区成人 | 久久成人精品一区二区三区 | 亚洲一区二区三区在线 | 亚洲区视频 | 在线观看视频福利 | 久久久久久久久久久国产 | 欧美性影院 | 日韩乱码在线 | 国产精品一区二区在线 | 国产午夜精品久久久久 | 亚洲精品一区在线 | 99色在线 | 国产性网 | 国产精品一区二区久久久久 | 国产成人精品一区二区三区网站观看 | 日本精a在线观看 | 91在线网站 | 日韩欧美一级片 | 国产精品视频一二三区 | 亚洲综合在线一区二区 |