skvxin 发表于 2017-7-4 21:48:05

分享一个单片机不连续引脚用数组动态显示数码管小心得

#include <STC12C5A60S2.H>

#define uchar unsigned char
#define uint unsigned int

sbit K1=P3^3;                  //引脚定义
sbit K2=P3^4;                  //
sbit K3=P3^5;//

sbit D0=P3^6;                        //
sbit D1=P3^7;
sbit D2=P1^4;
sbit D3=P1^6;
sbit D4=P1^7;
sbit D5=P3^1;
sbit D6=P1^3;
sbit D7=P1^5;
sbit dot=P1^5;                   //
sbit BEEP=P3^2;
sbit L0=P3^0;                   //
sbit L1=P1^1;                   //
sbit L2=P1^0;                   //
sbit L3=P1^2;
unsigned char led[]={

                0xC0,//"0"
                0xF9,//"1"
                0xA4,//"2"
                0xB0,//"3"
                0x99,//"4"
                0x92,//"5"
                0x82,//"6"
                0xF8,//"7"
                0x80,//"8"
                0x90   //"9"
               

                         };//段码数组,共阳
char wei[]={0x01,0x02,0x04,0x08};//位码数组,四个数码管
void P6(char D)//段替换函数
{
        D7=D&0X80;
        D6=D&0X40;
        D5=D&0X20;
        D4=D&0X10;
        D3=D&0X08;
        D2=D&0X04;
        D1=D&0X02;
        D0=D&0X01;
}
void W(char L)//位替换函数
{

        L3=L&0X08;
        L2=L&0X04;
        L1=L&0X02;
        L0=L&0X01;
}
void Delay1ms()                //@12.000M   延时1ms
{
      unsigned char i, j;
      i = 12;
      j = 169;
      do
      {
                while (--j);
      } while (--i);
}
void delay_n_ms(uint n)                  //延时n毫秒
{
   while(n)
   {
   Delay1ms();
   n=n-1;
   }
}
main()
{
        while(1)//数码管动态显示
        {
        P1M0=0x07;//IO设置大电流模式
        P3M0=0x01;
       
        W(wei);//打开第一个数码管
        P6(led);
        delay_n_ms(2);
       
        W(wei);
        P6(led);
        delay_n_ms(2);
       
        W(wei);
        P6(led);
        delay_n_ms(2);
       
        W(wei);
        P6(led);
        delay_n_ms(2);
       
        }
}
//...................

useisbb 发表于 2017-7-4 22:05:10

办法有很多,一般查表法和宏定义法比较好用

我是大副 发表于 2017-7-5 08:46:21

顶顶顶

野野马 发表于 2017-7-5 17:45:07

帮顶。

tjcdq 发表于 2017-7-6 00:37:37

除了代码,不能来点作用,功能,效果之类的?

守望0分贝 发表于 2019-10-27 13:49:51

牛逼牛逼快过来
页: [1]
查看完整版本: 分享一个单片机不连续引脚用数组动态显示数码管小心得