单片机基础程序合集:LED、电机控制与串口通信

需积分: 3 3 下载量 159 浏览量 更新于2024-10-31 收藏 4KB TXT 举报
"这篇资源主要包含了四个关于单片机的基础程序示例,涵盖了LED控制、按键输入、数码管显示和串口通信等基本功能。" 1. LED闪烁程序: 这个程序用于控制一个连接在P1.0口的LED灯进行周期性的闪烁。通过定义`sbit L1 = P1^0;`,将P1.0口与LED变量L1关联。`delay02s()`函数是延迟函数,用多个嵌套循环实现大约0.2秒的延时。在主函数`main()`中,LED的状态不断在0和1之间切换,从而实现闪烁效果。 2. 按键控制LED程序: 此程序利用P3.0口作为按键输入,P1.0口作为LED输出。当检测到按键K1按下(K1==0)时,LED L1熄灭;否则,LED亮起。通过`sbit K1 = P3^0;`和`sbit L1 = P1^0;`定义了按键和LED的位操作。 3. 数码管静态显示程序: 这个程序用于显示P1.0到P1.3口的数值在数码管上,假设P1.4、P1.7分别对应数码管的段选和位选。首先,通过`temp = P1 >> 4;`将高四位数据移位并存储在temp中,然后`temp = temp | 0xf0;`将低四位数据设置为1,这样可以同时点亮数码管的每一位。最后,`P1 = temp;`将处理后的值写回到P1口中,实现数码管的显示。 4. 串口通信程序: 该程序配置了AT89C52单片机的串行通信接口,使用晶振频率22.1184MHz,设定波特率为19600bps。`TMOD`寄存器设置模式为定时器1工作在方式2,`TH1`初始化为负值以计算波特率。`PCON`设置SMOD位为1,增强波特率。`TR1`置1启动定时器1,`SCON`设置为0x42,使能串行口并设置为工作在方式2。程序中,当发送中断标志TI被置1时,会发送数据,并在主循环中处理串口通信。 以上四个程序展示了单片机基础应用中的基本功能,包括硬件接口操作、延时算法、输入/输出处理和串行通信。这些知识对于初学者理解单片机的工作原理和编程方法非常有帮助。