云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > STC89C52单片机的一些程序,包括串口通信,定时中断

STC89C52单片机的一些程序,包括串口通信,定时中断

  • 62 次阅读
  • 3 次下载
  • 2025/6/15 4:07:06

针对STC89C52RC单片机的一些程序 基本串口通信程序: #include

#define uint unsigned int #define uchar unsigned char

#define SEND 0 #define RECEIVE 1

uchar flag_Serial = SEND; uchar Rx_Buf;

sbit SMG = P1^7;

//0 1 2 3 4 5 6 7 8 9 a b c d e f

uchar code Show[16]={0x03,0x9f,0x25,0x0d,0x99,0x49, 0x41,0x1f,0x01,0x19,0x11, 0xc1,0x63,0x85,0x61,0x71};

void Serial_Init(); void Serial_send(); void Display();

void Delay_1ms(uchar z);

/****************************************************/ //main function //

/****************************************************/ void main() {

Serial_Init(); while(1) { switch(flag_Serial) { case SEND: flag_Serial = RECEIVE; Serial_send(); break; case RECEIVE: Display(); break; } }

}

/****************************************************/ //serial initial //

/****************************************************/ void Serial_Init() { TMOD = 0X20; //work in mode 2 PCON = 0X00; SCON = 0X50; TH1 = 0XFD; //BRUD 9600 TL1 = 0XFD; TR1 = 1; //open interrupt 1 ES = 1; //open the serial EA = 1; //open the key interrupt flag_Serial = SEND; SMG = 0; }

/****************************************************/ //serial interrupt function //

/****************************************************/ void Serial() interrupt 4 using 2 { EA = 0; if(RI!=0&&flag_Serial==RECEIVE) { RI = 0; Rx_Buf = SBUF; flag_Serial = SEND; } EA = 1; }

/****************************************************/ //mcu send data to serial //

/****************************************************/ void Serial_send() {

SBUF = Rx_Buf; while(TI==0);

TI=0; }

/****************************************************/ //display the data by SMG //

/****************************************************/ void Display() { P2 = Show[Rx_Buf]; Delay_1ms(3); }

/****************************************************/ //delay for z*1ms //

/****************************************************/ void Delay_1ms(uchar z) {

uchar i,j; for(i=z;i>0;i--) for(j=110;j>0;j--); }

串口通信,按键加减

#include

#define uint unsigned int #define uchar unsigned char

#define SEND 0 #define RECEIVE 1

sbit KEY1 = P1^4; sbit KEY2 = P1^5; sbit LED1 = P1^0; sbit LED2 = P1^1; sbit SMG = P1^7;

uchar flag_Serial = SEND; uchar Rx_Buf; uchar Smg_Buf;

//0 1 2 3 4 5 6 7 8 9 a b c d e f

uchar code Show[16]={0x03,0x9f,0x25,0x0d,0x99,0x49,

0x41,0x1f,0x01,0x19,0x11, 0xc1,0x63,0x85,0x61,0x71};

void Serial_Init(); void Serial_send(); void Display();

void Delay_1ms(uchar z); void Scan();

/****************************************************/ //main function //

/****************************************************/ void main() {

Serial_Init(); while(1) { switch(flag_Serial) { case SEND: flag_Serial = RECEIVE; Serial_send(); break; case RECEIVE: Display(); break; } Scan(); } }

/****************************************************/ //serial initial //

/****************************************************/ void Serial_Init() { TMOD = 0X20; //work in mode 2 PCON = 0X00; SCON = 0X50; TH1 = 0XFD; //BRUD 9600 TL1 = 0XFD; TR1 = 1; //open interrupt 1

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

针对STC89C52RC单片机的一些程序 基本串口通信程序: #include #define uint unsigned int #define uchar unsigned char #define SEND 0 #define RECEIVE 1 uchar flag_Serial = SEND; uchar Rx_Buf; sbit SMG = P1^7; //0 1 2 3 4 5 6 7 8 9 a b c d e f uchar code Show[16]={0x03,0x9f,0x25,0x0d,0x99,0x49, 0x41,0x1f,0x01,0x19,0x11, 0xc1,0x63,0x85,0x61,0x7

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com