欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STC89C52單片機串口通迅程序+3個定時器 合適新手學習
[打印本頁]
作者:
ssk7793
時間:
2019-3-19 19:43
標題:
STC89C52單片機串口通迅程序+3個定時器 合適新手學習
合適新手學習的51單片機串口收發及定時器, 多文件結構, 我盡量備注詳細
方便在此基礎上開發跟串口相關的應用
JD20190319194003.png
(3.38 KB, 下載次數: 54)
下載附件
2019-3-19 19:40 上傳
單片機源程序:
/***********************************
* STC89/90 系列 *
***********************************/
//定時器相當于電腦的多任務,多線程
#include "config.h" //公共變量
#include "command.h" //公共函數
#include "UART.h" //串口文件
//****************** 主程序 *******************
void main()
{
//打開串口
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
//定時器0 對應interrupt 1
TMOD |= 0x01; //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響
TH0=0x00; //給定初值,這里使用定時器最大值從0開始計數一直到65535溢出
ET0=1; //定時器0中斷打開
TR0=1; //定時器0開關打開
//定時器1 對應interrupt 4
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit reload
TH1 = 0xFD; // TH1: reload value for 9600 baud @ 11.0592MHz
TR1 = 1; //定時器1開關打開
//定時器2 對應interrupt 5
RCAP2H = (65536-50000)/256;
RCAP2L = (65536-50000)%256;
ET2 = 1; //定時器2中斷打開
TR2 = 1; //定時器2開關打開
EA = 1; //打開總中斷
ES = 1; //打開串口中斷
i1=0,i2=0;i3=0;cmd1=0;
while (1) { //無限循環
UART_main(); //串口接收發送
}
}
//********** 定時器0 ***********
void time0() interrupt 1
{
TH0=0x00;TL0=0x00; //重新賦值,必需
/*i3++;
if(i3>20){
LED1=~LED1;
i3=0;
}*/
}
//********** UART的定時器1中斷程序 ***********
void time1() interrupt 4
{
if(RI) { //判斷是接收中斷產生
RI=0; //標志位清零
if(SBUF!='~'){ //如果結尾不是~符號
Tbuf1[i1]=SBUF; //值存到數組
}
i1++; //累加
if(SBUF=='~'){ //如果值為~符號
cmd1=1; //設結束標志
}
}
if(TI) { //如果是發送標志位,清零
TI=0;
}
}
//********** 定時器2 ***********
void time2() interrupt 5
{
TF2=0;
i3++;
if(i3>10){
LED1=~LED1;
i3=0;
}
}
復制代碼
全部資料51hei下載地址:
STC89C52串口通迅+3個定時器.zip
(29.36 KB, 下載次數: 52)
2019-3-19 19:42 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1