亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3680|回復: 4
收起左側

89c52,不用鎖存器的數碼管,如何編出動態顯示的程序

[復制鏈接]
ID:334421 發表于 2018-5-20 20:08 | 顯示全部樓層 |閱讀模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit wela1=P2^0;
sbit wela2=P2^1;
sbit wela3=P2^2;
sbit wela4=P2^3;
sbit wela5=P2^4;
sbit wela6=P2^5;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,
                    0x99,0x92,0x82,0xf8,
                                        0x80,0x90,0x88,0x83,
                                        0xc6,0xa1,0x86,0x8e};
void delay(uint);
void main()
{
        while(1)
        {
                wela1=0;
             P0=table[0];
             delay(5);
        wela1=1;

                wela2=0;
             P0=table[1];
             delay(5);
             wela2=1;

                wela3=0;
             P0=table[2];
             delay(5);
             wela3=1;

                wela4=0;
             P0=table[3];
             delay(5);
             wela4=1;

                wela5=0;
             P0=table[4];
             delay(5);
             wela5=1;

                wela6=0;
             P0=table[5];
             delay(5);
             wela6=1;
        }
}
void delay(uint xms)
{
        uint i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
}

回復

使用道具 舉報

ID:330198 發表于 2018-5-22 09:45 | 顯示全部樓層
你現在的程序不是常量嘛,用一個變量tab[n],n變化就能動態顯示了
回復

使用道具 舉報

ID:296634 發表于 2018-5-22 10:23 | 顯示全部樓層
#include<reg51.h> #define SEG P0 unsigned char SMGD[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98}; //共陽極 段顯0~9 unsigned char SMGW[]={0x01,0x02,0x04,0x08};        //位選1~4    void delay(unsigned int i)         //延時函數 {         while(i--); }  void main(void)         //主函數 {          unsigned char Temp;                 while(1)         {                 switch (Temp%4)                 {                                                   case 0:P0 = SMGD[Temp%10];break;                         case 1:P0 = SMGD[Temp%10];break;                         case 2:P0 = SMGD[Temp%10];break;                         case 3:P0 = SMGD[Temp%10];break;                                  }                 P2 =SMGW[Temp%4];                 Temp++;                 delay(50000);          } }
回復

使用道具 舉報

ID:137653 發表于 2018-5-22 11:53 | 顯示全部樓層
顯示第一個字,然后清除,然后顯示第二個,如此循環就行
回復

使用道具 舉報

ID:213173 發表于 2018-5-22 20:45 | 顯示全部樓層
使用鎖存主要是為了達到I/O口復用的目的,節省I/O口。如果I/O口夠用當然可以不用鎖存器。示例如下: 無標題.jpg

#include <AT89X51.H>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
uchar code table1[]={
        0x01,0x02,0x04,0x08,
        0x10,0x20,0x40,0x80};
void delay(uint k)
{
        uint i,j;
        for(i=k;i>0;i--)
                for(j=114;j>0;j--);
}
void main()
{
        uchar i=0;
        while(1)
        {
                for(i=0;i<8;i++)
                {
                        P0=0xff;
                        P2=table1;
                        P0=table;
                        delay(1);
                }
        }
}


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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