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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2417|回復: 5
收起左側

關于單片機數碼管動態顯示問題

[復制鏈接]
ID:723431 發表于 2020-4-26 11:23 | 顯示全部樓層 |閱讀模式
用數碼管顯示四相異步電動機的步數,為什么會亂顯示?正反轉和停止都沒有問題。
程序如下:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code zixingma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit key1=P3^0;           //正轉
sbit key2=P3^1;           //反轉
sbit key3=P3^2;           //停止
sbit a=P2^0;
sbit b=P2^1;
sbit c=P2^2;
sbit d=P2^3;
sbit P10=P1^0;
sbit P11=P1^1;
uchar num1=0;
uchar num2=0;
uchar bushu,flag;
void zheng(void);
void fan(void);
void ting(void);
void key_scan(void);
void delay1m(uint x)
{
        uint i,j;
        for(i=0;i<x;i++)
                for(j=0;j<200;j++);
}
void delay5ms(void)
{
        unsigned char i,j;
        for(i=10;i>0;i--)
                for(j=248;j>0;j--);
}
void main()
{
        flag=0;
        while(1)
        {
                key_scan();
                switch(flag)
                {
                        case 1:zheng();break;
                        case 2:fan();break;
                        case 3:ting();break;
                }
        }
}
void zheng()
{
        switch(num1)
        {
                case 0:a=1;b=0;c=0;d=0;delay1m(100);break;               
                case 1:a=1;b=1;c=0;d=0;delay1m(100);break;        
                case 2:a=0;b=1;c=0;d=0;delay1m(100);break;               
                case 3:a=0;b=1;c=1;d=0;delay1m(100);break;               
                case 4:a=0;b=0;c=1;d=0;delay1m(100);break;               
                case 5:a=0;b=0;c=1;d=1;delay1m(100);break;               
                case 6:a=0;b=0;c=0;d=1;delay1m(100);break;               
                case 7:a=1;b=0;c=0;d=1;delay1m(100);break;        
        }
        P0=0xff;
        P10=1;
        P11=0;
        P0=zixingma[bushu/10];
        delay5ms();
        P0=0xff;
        P10=0;
        P11=1;         
        P0=zixingma[bushu%10];
        delay5ms();
        num1++;
        bushu++;
        delay1m(200);
        if(num1==8)
                num1=0;
}
void fan()
{
        switch(num2)
        {
                case 0:a=1;b=0,c=0,d=0;delay1m(100);break;
                case 1:a=1;b=0,c=0,d=1;delay1m(100);break;
                case 2:a=0;b=0,c=0,d=1;delay1m(100);break;
                case 3:a=0;b=0,c=1,d=1;delay1m(100);break;
                case 4:a=0;b=0,c=1,d=0;delay1m(100);break;
                case 5:a=0;b=1,c=1,d=0;delay1m(100);break;
                case 6:a=0;b=1,c=0,d=0;delay1m(100);break;
                case 7:a=1;b=1,c=0,d=0;delay1m(100);break;
        }
        P0=0xff;
        P10=1;
        P11=0;
        P0=zixingma[bushu/10];
        delay5ms();
        P0=0xff;
        P10=0;
        P11=1;
        P0=zixingma[bushu%10];
        delay5ms();
        num2++;
        bushu++;
        delay1m(200);
        if(num2==8)
                num2=0;
}
void ting()
{
        P1=0;
        P2=0;
        num1=0;
        num2=0;
        flag=0;
        P0=0xff;
        bushu=0;        
        delay1m(200);
}
void key_scan()
{
        if(key1==0)
        {
                delay5ms();
                if(key1==0)
                {
                        flag=1;
                        bushu=0;
                        while(key1==1)
                                delay5ms();
                }
        }
        if(key2==0)
        {
                delay5ms();
                if(key2==0)
                {
                        flag=2;
                        bushu=0;
                        while(key2==1)
                                delay5ms();
                }
        }
        if(key3==0)
        {
                delay5ms();
                if(key3==0)
                {
                        flag=3;
                        while(key3==1)
                                delay5ms();
                }
        }        
}

1S~SI76VK%R6W(AZPAN[_LL.png
回復

使用道具 舉報

ID:636538 發表于 2020-4-26 13:31 | 顯示全部樓層
建議P1.0、P1.1接上拉電阻,同時你的P1.0是控制十位,P1.1控制的是個位,如果沒有理解錯的話,將fan()中,P1|=0x03,再P1|=0x02,再次消影P1|=0x03,
回復

使用道具 舉報

ID:738347 發表于 2020-4-26 13:48 | 顯示全部樓層
排阻是不是得有個上拉電阻拉出去啊,換個1-9的,1接vcc。然后數碼管那,我覺得也有接的不對的地方;仿真圖你再看看?不知道這樣也沒有用,試試看吧

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:213173 發表于 2020-4-26 15:09 | 顯示全部樓層
樓主排阻接錯了,按如下接法。
無標題.jpg

回復

使用道具 舉報

ID:723431 發表于 2020-4-26 15:36 | 顯示全部樓層
wulin 發表于 2020-4-26 15:09
樓主排阻接錯了,按如下接法。

謝謝,解決了
回復

使用道具 舉報

ID:723431 發表于 2020-4-26 15:36 | 顯示全部樓層
bJFKLJklfje 發表于 2020-4-26 13:48
排阻是不是得有個上拉電阻拉出去啊,換個1-9的,1接vcc。然后數碼管那,我覺得也有接的不對的地方;仿真圖 ...

嗯嗯,解決了,謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人av电影免费在线观看 | 91 在线| 9久久| 色狠狠一区 | 天天综合网天天综合色 | 51ⅴ精品国产91久久久久久 | 在线免费黄色小视频 | 四虎影院美女 | 亚洲精品66 | 在线一区视频 | 中文字幕在线二区 | 亚洲激情一区二区 | 国产精品一区二区三区四区五区 | 久久精品伊人 | 欧美在线播放一区 | 日本在线视| 成人在线精品视频 | 激情av免费看 | 成人在线播放网址 | 国产精品久久久久aaaa九色 | 日韩免费av一区二区 | 国产视频在线观看一区二区三区 | 免费黄色大片 | 色吊丝在线 | 香蕉视频一区二区 | 亚洲欧美综合精品久久成人 | 亚洲精品电影 | 日韩欧美专区 | 免费看日韩视频 | 久久精品国产一区二区电影 | av男人的天堂av | 中文字幕在线第一页 | 欧美6一10sex性hd | 日本一区二区高清视频 | 91久久精品国产91久久 | 久久精品亚洲国产奇米99 | 欧美男人天堂 | 韩国毛片一区二区三区 | 精品成人 | 欧美激情精品久久久久久 | 久久av.com |