| 
 | 
	
    
 
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册  
 
x
 
要求:$ i) g: g% {1 P0 i3 D( m 
1.硬件选择通道,转换结果显示在LED上 
: i& e5 h9 C8 \" {5 Z2.利用串口助手与单片机就行串行通信,收到大写字母转换成小写字母发回,反之亦然,但数字不变。7 B5 G; V1 N2 w/ @ 
- u- ]  x4 N) S" w 
单片机源程序如下: 
- f; W  v. z5 z3 l3 K- #include <reg51.h>
 - #include <stdio.h>
 - #include <intrins.h>
 - #include <absacc.h>
 - #define uchar unsigned char
 - #define uint unsigned int
 - uchar D,VAR,H4,L4;
 - uchar cod[] = {0xC0, 0xF9, 0xA4, 0xB0,
 -                                  0x99, 0x92, 0x82, 0xF8,
 -                                  0x80, 0x90, 0x88, 0x83,
 -                                  0xC6, 0xA1, 0x86, 0x8E
 -                                  }; //16进制
 - void delay(int n)
 - {
 -         int i,j;
 -         for(i=n;i>0;i--)
 -         {
 -                 for(j=28;j>0;j--);
 -         }
 - }
 - void display()
 - {
 -          H4=D/16;
 -          L4=D%16;
 -          P2=cod[L4];
 -          P1=0xfe;
 -          delay(1);
 -          P2=0xff;
 -          delay(10);
 -          P2=cod[H4];
 -          P1=0xfd;
 -          delay(1);
 -          P2=0xff;
 -          delay(10);
 - }
 - void main()
 - {
 -         while(1)
 -         {
 -                 XBYTE[0x8000]=0x00;
 -                 delay(50);
 -                 D=XBYTE[0x8000];
 -                 display();
 -         }
 - }
 
1 `+ E+ @1 O6 V, x) B5 q. m  4 B& E+ R+ K7 O+ E" T1 W1 l. o1 e 
复制代码 
7 L! n6 k. C( c+ K: h" j- #include <reg51.h>
 - #include <stdio.h>
 - #include <intrins.h>
 - #include <absacc.h>
 - #define uchar unsigned char
 - #define uint unsigned int
 - uchar D,VAR,H4,L4;
 - uchar cod[] = {0xC0, 0xF9, 0xA4, 0xB0,
 -                          0x99, 0x92, 0x82, 0xF8,
 -                          0x80, 0x90, 0x88, 0x83,
 -                          0xC6, 0xA1, 0x86, 0x8E
 -                           }; //16进制
 - void delay(int n)
 - {
 -         int i,j;
 -         for(i=n;i>0;i--)
 -         {
 -                 for(j=28;j>0;j--);
 -         }
 - }
 - void display()
 - {
 -          H4=D/16;
 -          L4=D%16;
 -          P2=cod[L4];
 -          P1=0xfe;
 -          delay(1);
 -          P2=0xff;
 -          delay(10);
 -          P2=cod[H4];
 -          P1=0xfd;
 -          delay(1);
 -          P2=0xff;
 -          delay(10);
 - }
 - void main()
 - {
 -         PCON=0x80;//SMOD置1,波特率加倍
 -         SCON=0x50;//设置为工作方式1:SCON:SMO SM1 SM2 REN TB8 RB8 TI(0101 0000)
 -         TMOD=0x20;//设置计数器工作方式2
 -         TH1=0xfa;//计数器赋初值
 -         TL1=0xfa;
 -         TR1=1;//打开计数器
 -         while(1)
 -         {
 -                 while(!RI){display();}
 -                 D=SBUF;
 -                 VAR=D;
 -                 RI=0;//清除接收中断标志位
 -                 display();
 -                 if(0x40<D&&D<0x5b){VAR=D+0x20;}//大写变小写
 -                 else if(0x60<D&&D<0x7b){VAR=D-0x20;}//小写变大写
 -                 SBUF=VAR;
 -                 while(!TI){display();}
 -                 TI=0;//清除发送完成标志位
 -         }
 - }
 
2 O8 x/ j% U7 T5 T  _9 A 
  
2 P! D6 m+ ?1 x$ z1 J |   
 
 
 
 |