51单片机基础——串口发送66,数码管显示66
生活随笔
收集整理的這篇文章主要介紹了
51单片机基础——串口发送66,数码管显示66
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <reg52.h>
#include<intrins.h> //位移頭文件_crol_
#define uchar unsigned char
unsigned char flag,i;sbit wei1=P2^4;//定義第一位LED顯示器
sbit wei2=P2^5;//定義第二位LED顯示器
sbit wei3=P2^6;//定義第一位LED顯示器
sbit wei4=P2^7;//定義第二位LED顯示器
char w='0';
char wu[15];
int k=0;
int q=0;
void receive() interrupt 4 //串口中斷服務程序
{if(RI==1){RI=0; //重新清0等待接收w=SBUF;//接收電腦傳輸過來的數據wu[k]=w; //將W的值賦給wu數組k++;SBUF=w;//單片機把接收到的數據返回給電腦 TI=0; //清除發送中斷標志位}
}//P0共陰極數碼管編碼表 //****(用P0=)表示;【在顯示屏上顯示數字(字母)1——F——不顯示】
uchar code gy[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //***高電平“1”亮void init(){SCON=0x50;//串口控制寄存器,等價于SM0=0,SM1=1,SM2=0,串口方式一通信
TMOD=0X20; //設置定時器1為模式2,做為波特率發生器,8位初值自動重裝的8位定時器,定時到TH1的值自動裝到TL1
TH1=0xfd;//設置波特率為9600
TL1=0xfd;
REN=1;//允許串口接收中斷?
EA=1;//開全局中斷
ES=1;//串口中斷允許
TR1=1; //啟動波特率發生器
}void delay(unsigned int xms)
{
unsigned int i,j;for(i=xms;i>0;i--)for(j=112;j>0;j--);
}void main()
{init();wei1=1;wei2=1;wei3=0;wei4=0;while(1){ if(w=='\n') //當發送了新行時,{k=0; //數組里的元素清零for(q=0;q<20;q++){wu[q]=0;}q=0;}if(wu[0]=='6'&&wu[1]=='6') { k=0; //數組里的元素清零while(1){P0=0x7d; }} }
}
總結
以上是生活随笔為你收集整理的51单片机基础——串口发送66,数码管显示66的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: py文件编译为pyc(命令与脚本)
- 下一篇: Linux线程属性总结