UART——ARM的Proteus实验

实验原理

ARM的P0.0口接LED,串口接Proteus的虚拟终端。每隔一段时间改变一次LED的状态,并且在串口上输出LED的当前状态。

Proteus仿真电路图

proteus仿真ARM串口UART实验

C语言源程序

#include <LPC21xx.H>
#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();
}
}
菜鸟的ARM学习笔记(第一阶段)
  1. LED闪烁——ARM的Proteus实验
  2. 开关控制LED——ARM的Proteus实验
  3. LCD——ARM的Proteus实验
  4. UART——ARM的Proteus实验
  5. Eint1外部中断——ARM的Proteus实验
  6. 多个外部中断——ARM的Proteus实验
  7. 中断结合串口——ARM的Proteus实验
  8. 定时器——ARM的Proteus实验
  9. SPI通信——ARM的Proteus实验
  10. SPI通信(多从设备)——ARM的Proteus实验
  11. ADC数模转换——ARM的Proteus实验

 

返回单片机目录, ARM目录, 返回首页