#include<reg51.h> #define uchar unsigned char #define uint unsigned int sbit LED1=P0^0; sbit LED2=P0^3; sbit K1=P1^0; void Delay(uint x) { uchar i; while(x--) for(i=0;i<120;i++); } void putc_to_SerialPort(uchar c) { SBUF=c; while(TI==0); TI=0; } void main() { uchar Operation_No=0; SCON=0x50;//设置串行口工作方式为1 TMOD=0x20;//设置定时器、计数器工作方式2 PCON=0x00;//设置SMOD=0 TH1=0xFD;//装载定时器初值,波特率为9600bps TL1=0xFD; TI=0;//发送中断标志位置0 TR1=1;//启动T1 while(1) { if(K1==0) { while(K1==0);//未松手则程序将停在这里不向向下执行 Operation_No=(Operation_No+1)%4; } switch(Operation_No) { case 0:LED1=LED2=1;break; case 1:putc_to_SerialPort('A'); LED1=~LED1;LED2=1;break; case 2:putc_to_SerialPort('B'); LED2=~LED2;LED1=1;break; case 3:putc_to_SerialPort('C'); LED1=~LED1;LED2=LED1;break; } Delay(100); } }
时间: 2023-06-17 17:04:19 浏览: 172
按矩阵键盘显示平方#include<reg52.h>
4星 · 用户满意度95%
这是一段基于单片机的代码。该代码实现了一个简单的循环控制程序,通过按键K1进行循环切换,控制LED1和LED2的状态,并通过串口将相应的字符输出。具体来说,该代码的主要功能有:
1. 定义了一些宏和变量,包括uchar(无符号字符型)和uint(无符号整型)等。
2. 定义了LED1、LED2和K1的硬件IO口,用于控制外部硬件设备。
3. 定义了Delay函数,用于延时。
4. 定义了putc_to_SerialPort函数,用于将字符通过串口输出。
5. 在main函数中,初始化串口工作方式,启动定时器1,然后进入一个死循环。
6. 在循环中,通过按键K1进行循环切换,控制LED1和LED2的状态,并通过putc_to_SerialPort函数将相应的字符输出。
7. 最后通过Delay函数实现延时效果。
需要注意的是,该代码是基于51单片机开发的,如果要在其他平台上运行,可能需要进行一些修改。
阅读全文