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

📄 main.c

📁 单片机c语言程序设计100例--基于PIC+PROTEUS
💻 C
字号:
//-----------------------------------------------------------------
//  名称: PIC单片机从动端口(PSP)实验-主机程序
//-----------------------------------------------------------------
//  说明: K1:该键按下后,主机向从机的PSP端口连续发送数字0~9,从机接收并显示
//       K2:每次按下该键时,主机向从机的PSP端口发送一个数字,从机接收并显示
//       K3:该键按下后,从机通过PSP端口向主机连续发送随机字节,
//          主机读取后发送串口显示.
//
//-----------------------------------------------------------------
#include <pic.h>
#include <stdio.h>
#define INT8U   unsigned char
#define INT16U  unsigned int
#define _XTAL_FREQ 4000000UL
//按键判断
#define K1_DOWN() !RC0    //连续输出按键
#define K2_DOWN() !RC1    //单个输出按键
#define K3_DOWN() !RC2    //要求连接接收
INT8U Button_NO = 1;      //当前按键编号(默认为K1)
INT8U send_dat = 0xFF;    //主机待发送给从机的数据
INT8U recv_dat;           //主机自从机接收的数据
INT8U disp_buff[4];       //串口显示缓冲
INT8U r = 0;              //串口显示换行控制
INT16U tCount = 0;        //延时累加变量
//-----------------------------------------------------------------
// 向从机PSP端口发送一字节数据
//-----------------------------------------------------------------
void Send_TO_PSP(INT8U d)
{




}

//-----------------------------------------------------------------
// 串口初始化
//-----------------------------------------------------------------
void Serial_port_init()
{




}

//------------------------------------------------------------------
// 串口输出字符串函数
//------------------------------------------------------------------
void Send_String(char *s)
{



}

//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
    ADCON1 = 0x06;        //关闭所有模拟端口,包括RE0~RE2
    TRISA = 0x00;         //设置数码管输出端口
    PORTA = 0x00;         //初始时在BCD数码上显示0
    TRISC = 0x07;         //PORTC低3位为按键输入端口
    TRISE = 0x00;         //RD/WR/CS输出
    PORTE = 0xFF;         //RE0~RE2引脚输出全1,不对从机进行操作





    while(1) 
    {
        //按键K1控制连续发送----------------------------------------
        if (K1_DOWN())
        {   



        }
        //根据Button_NO判断最后按下的是否是K1,如果是则连续发送
        if (Button_NO == 1) 
        {   



        }
        //按键K2控制单个发送----------------------------------------
        if (K2_DOWN())
        {   



        }
        //按键K3控制接收-------------------------------------------
        if (K3_DOWN())
        {  



        }
        if (Button_NO == 3)
        {   



        }
    }
}

⌨️ 快捷键说明

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