⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untitled.c

📁 59秒计数器实验程序
💻 C
字号:
#include <htc.h>
#include <pic18.h>
#define uchar unsigned char //--------------在程序中用uchar置换unsgned char减省录入量
#define uint unsigned int

#define FLASH_LED PORTD    //用FLASH_LED置换PORTD,方便以后移置。
#define LED_TRIS TRISD    //

void init(void);         //PIC芯片资源初始化函数
unsigned char  table[]={0x3f,0x06,0x5b,0x4f, 

                            0x66,0x6d,0x7d,0x07, 

                            0x7f,0x6f,0x77,0x7c, 

                            0x39,0x5e,0x79,0x71}; 

unsigned char temp; 

unsigned char key; 

unsigned char i,j,k; 


//--------------------------
void init(void)
{
   // ADCON1=0x0f;  
   TRISB=0x0F;      //定义端口B为低4位输出,高4位为输入
   TRISC=0x00;      //定义端口C为输出
   INTCON=0x00;     //关闭所有中断 

}
//---------------------------- 
void  main(void)
{  
    init();
   // unsigned    char    i,j,k,key;
        while(1)
        {  
            PORTB=0xff;                        //给P3口置1//
            RB4=0;                         //给P3.4这条线送入0//
            i=PORTB;
            i=i&0x0f;                       //屏蔽低四位//
            if(i!=0x0f)                     //看是否有按键按下//
            {  
               for(j=50;j>0;j--)           //延时//
                for(k=200;k>0;k--);
                if(i!=0x0f)                 //再次判断按键是否按下//
                {   
                   switch(i)           //看是和P3.4相连的四个按键中的哪个//
                    {   
                        case 0x0e:              
                        key=0;
                        break;
                        case 0x0d:
                            key=1;
                        break;
                        case 0x0b:
                            key=2;
                        break;
                        case 0x07:
                            key=3;
                        break;
                    }
                    PORTC=table[key];          //送数到P0口显示//
                }
            }
            PORTB=0xff;
            RB5=0;                         //读P3.5这条线//
            i=PORTB;
            i=i&0x0f;                       //屏蔽P3口的低四位//
            if(i!=0x0f)                     //读P3.5这条线上看是否有按键按下//
            {   for(j=50;j>0;j--)           //延时//    
                for(k=200;k>0;k--);
                i=PORTB;                       //再看是否有按键真的按下//
                i=i&0x0f;
                if(i!=0x0f)                     
                {   switch(i)               //如果有,显示相应的按键//
                    {   case 0x0e:
                            key=4;
                        break;
                        case 0x0d:
                            key=5;
                        break;
                        case 0x0b:
                            key=6;
                        break;
                        case 0x07:
                            key=7;
                        break;
                    }
                    PORTC=table[key];          //送入P0口显示//
                }
            }
            PORTB=0xff;
            RB6=0;                         //读P3.6这条线上是否有按键按下//
            i=PORTB;
            i=i&0x0f;
            if(i!=0x0f)
            {       for(j=50;j>0;j--)
                    for(k=200;k>0;k--);
                    i=PORTB;
                    i=i&0x0f;
                    if(i!=0x0f)
                    {   switch(i)
                        {   case 0x0e:
                                key=8;
                            break;
                            case 0x0d:
                                key=9;
                            break;
                            case 0x0b:
                                key=10;
                            break;
                            case 0x07:
                                key=11;
                            break;
                        }
                        PORTC=table[key];
                    }
                }
                PORTB=0xff;
                RB7=0;                     //读P3.7这条线上是否有按键按下//
                i=PORTB;
                i=i&0x0f;
                if(i!=0x0f)
                {   for(j=50;j>0;j--)
                    for(k=200;k>0;k--);
                    i=PORTB;
                    i=i&0x0f;
                    if(i!=0x0f)
                    {   switch(i)
                        {   case 0x0e:
                            key=12;
                            break;
                            case 0x0d:
                                key=13;
                            break;
                            case 0x0b:
                                key=14;
                            break;
                            case 0x07:
                            key=15;
                            break;
                        }
                        PORTC=table[key];
                    }
                }
            }
        }               

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -