UART——ARM的Proteus实验
实验原理
ARM的P0.0口接LED,串口接Proteus的虚拟终端。每隔一段时间改变一次LED的状态,并且在串口上输出LED的当前状态。
Proteus仿真电路图

C语言源程序
#include <LPC21xx.H>菜鸟的ARM学习笔记(第一阶段)
#include "uart.h"
#define CR 0x0D
char ledDown[]={"The LED is down!\n"};
char ledUp[]={"The LED is up!\n"};
int putchar (int ch) {/* 向串口输出一个字符 */
if (ch == '\n') {
while (!(U1LSR & 0x20));
U1THR = CR; a
}
while (!(U1LSR & 0x20));
return (U1THR = ch);
}
void delay (void) {
unsigned volatile long i,j;
for(i=0;i<60000;i++)
for(j=0;j<5;j++)
;
}
void serialPuts(char *p){/* 向串口输出字符串 */
while (*p != '\0'){
putchar(*p++);
}
}
int main (void) {
/* 开始初始化串口 */
PINSEL0 = 0x00050000;/* 设置引脚,开串口功能 */
U1LCR = 0x83;/* 8位数据,无效验,一个停止位 */
U1DLL = 97;/* VPB 15MHz的时候波特率为9600 */
U1LCR = 0x03;/* DLAB = 0 */
/* 结束初始化串口 */
IO0DIR = 0x000001;/*将P0.0设置为输出 */
while (1) {
IO0CLR = 0x000001;
serialPuts(ledUp);
delay();
IO0SET = 0x000001;
serialPuts(ledDown);
delay();
}
}
- LED闪烁——ARM的Proteus实验
- 开关控制LED——ARM的Proteus实验
- LCD——ARM的Proteus实验
- UART——ARM的Proteus实验
- Eint1外部中断——ARM的Proteus实验
- 多个外部中断——ARM的Proteus实验
- 中断结合串口——ARM的Proteus实验
- 定时器——ARM的Proteus实验
- SPI通信——ARM的Proteus实验
- SPI通信(多从设备)——ARM的Proteus实验
- ADC数模转换——ARM的Proteus实验
