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

📄 main.c

📁 单片机c语言程序设计100例--基于PIC+PROTEUS
💻 C
字号:
//-----------------------------------------------------------------
//  名称: PC机与单片机双向串口通讯仿真
//-----------------------------------------------------------------
//  说明: 单片机可接收并显示PC机发送的数字字符
//        按下单片机K1按键时,单片机可向PC机发送字符串
//
//        在PROTEUS环境下完成本实验时,需要先安装:
//        1. Virtual Serial Port Driver
//        2. 串口调试助手软件.
//        建议在VSPD中将COM3和COM4设为对联端口.
//        PROTEUS中设COMPIM为COM4,在串口助手中选择COM3
//        然后再进行单片机程序与PC机串口助手软件的双向通讯实验.
//
//-----------------------------------------------------------------
#include <pic.h> 
#define INT8U   unsigned char
#define INT16U  unsigned int
#define _XTAL_FREQ 4000000UL   //4M晶振
//按键定义
#define Key_DOWN() (RA5 == 0)
//共阴数码管0~9的段码表,最后一位为黑屏
const INT8U DSY_CODE[] = 
{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};
//保存接收到的四位数字(初始时为全部黑屏)
INT8U R[] = {10,10,10,10};
//-----------------------------------------------------------------
// 串口初始化
//-----------------------------------------------------------------
void Serial_port_init()
{



}

//------------------------------------------------------------------
// 显示所接收的数字字符(数字字符由PC串口发送,PIC单片机串口接收)
//------------------------------------------------------------------
void Show_Received_Digits()
{



 
}

//------------------------------------------------------------------
// 按下K1时PC机发送字符串
//------------------------------------------------------------------
void Send_String()
{
    INT8U i = 0;
    //"HELLO!"
    //"这是由PIC单片机发送的字符串!!!"
    //由于PICC不允许使用中文字符串,故用UltraEdit取该文字串内码再发送
    //00000000h: 48 45 4C 4C 4F 21 0D 0A D5 E2 CA C7 D3 C9 50 49
    //00000010h: 43 B5 A5 C6 AC BB FA B7 A2 CB CD B5 C4 D7 D6 B7
    //00000020h: FB B4 AE 21 21 21 0D 0A
    //其中英文字符与标点符号可使用ASCII码,也可直接使用字符.
    char s[] = { 'H','E','L','L','O','!','\r','\n',
                  0xD5,0xE2,0xCA,0xC7,0xD3,0xC9,'P','I','C',
                  0xB5,0xA5,0xC6,0xAC,0xBB,0xFA,0xB7,0xA2,
                  0xCB,0xCD,0xB5,0xC4,0xD7,0xD6,0xB7,0xFB,
                  0xB4,0xAE,'!', '!', '!', '\r','\n','\0'};
    while (s[i])
    {






    }
}

//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
    ADCON1 = 6;                             //RA端口设为数字端口
    TRISA5 = 1;                             //RA5按键输入
    PORTB = TRISB = 0x00;                   //设置数码管输出端口
    TRISC &= 0xF0;                          //RC端口低四位输出数码管位码




  
    while (1)
    {       




    }
}

//------------------------------------------------------------------
// 串口接收中断程序(缓冲满时数据前移)
//------------------------------------------------------------------
void interrupt Serial_Port_Recv_ISR()
{
   static INT8U i = 0; INT8U c, k;
   if(RCIE && RCIF)
   {





   }
}

⌨️ 快捷键说明

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