串口通信_迷之BUG

来源:互联网 发布:淘宝论坛 - 淘宝网 编辑:程序博客网 时间:2024/06/12 02:42
#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit smg1=P2^7;sbit smg2=P2^6;sbit smg3=P2^5;sbit smg4=P2^4;sbit beep=P3^4;     //蜂鸣器      sbit key0=P2^0;       // --sbit key1=P2^1;       // ++        sbit key2=P2^2;   // 发送数据sbit key3=P2^3;  // 切换模式uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; bit flag=0;uint number=10;void delayms(uint ms){uint i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}void display() { uint temp=number;uint ge,shi,bai,qian;ge = temp%10;qian = temp/1000;shi = (temp%100-ge)/10;bai= temp/100-qian*10;smg4=0;P0=table[ge];delayms(5);smg4=1;P0=0xff;smg3=0;P0=table[shi];delayms(5);smg3=1;P0=0xff;smg2=0;P0=table[bai];delayms(5);smg2=1;P0=0xff;smg1=0;P0=table[qian];delayms(5);smg1=1;P0=0xff;}void bee(){beep=0;delayms(100);beep=1;}void keyscan(){if(key1==0)   //++{delayms(10);if(key1==0){while(!key1);bee();if(number<9999)number++;elsenumber=0;}}if(key0==0)   //++{delayms(10);if(key0==0){while(!key0);bee();if(number>0)number--;elsenumber=0;}}if(key2==0)   //发送数据{delayms(10);if(key2==0){while(!key2);flag=1;}}}void init()// 初始化{TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;REN=1;SM0=0;SM1=1;EA=1;ES=1;}void charge(){keyscan();display();if(flag){ES=0;SBUF=number;while(!TI);TI=0;      flag=0;ES=1;}}void main(){init(); while(1){charge();}}                                                                                                                                                                                                                                                                                                 void ser() interrupt 4{RI=0;number=SBUF;display();}

0 0
原创粉丝点击