微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > LPC2103学习板-数码管显示

LPC2103学习板-数码管显示

时间:11-18 来源:互联网 点击:

数码管部分 电路原理图:

其中TRS 和TMS使用了JTAG口,所以在调试的时候不能使用普通IO功能,需要程序烧写进入后,取消JTAG模式,才能正常工作。

源程序:
/**************ARM7(LPC2103)练习程序**************************/
/*************************************************************/
/*****File Function : 数码管显示 *****/
/*****Program Author : ClimberWin *****/
/*****MCU : LPC2103F 外部12M晶振 *****/
/*****Compile Date : 2010/04/01 *****/
/*****Edition Info : V1.0 *****/
/*************************************************************/
//编译环境 KEIL for ARM
//数据接口 P0.10-P0.17
//选通端 P0.25 P0.26 P0.27 P0.28
//蜂鸣器 P0.21
//注:数码管使用到JTAG引脚,所以运行时候需要JTAG不使能才能做普通IO处理。不然只能2个数码管选通
#include
#include
#define uint unsigned int
#define uchar unsigned char

//#define speak (1<21) //蜂鸣器引脚定义
#define COM1 (1<25) //定义数码管1的选通引脚
#define COM2 (1<26) //定义数码管2的选通引脚
#define COM3 (1<27) //定义数码管3的选通引脚
#define COM4 (1<28) //定义数码管4的选通引脚

void delayms(unsigned int count);//延时程序
void led_display(void);//显示程序

uchar LED_DATA[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};

/*************延时程序***************/
void delayms(unsigned int count)
{
unsigned int i,j;
for(i=0;ifor(j=0;j<1000;j++);
}

void led_display(void)
{
float led_data;
IO0CLR=0xffffffff;
led_data=LED_DATA[4]<10;
IO0SET=led_data;
IO0CLR=COM1;
IO0SET=COM2;
IO0SET=COM3;
IO0SET=COM4;
delayms(50);

IO0CLR=0xffffffff;
led_data=LED_DATA[3]<10;
IO0SET=led_data;
IO0CLR=COM2;
IO0SET=COM1;
IO0SET=COM3;
IO0SET=COM4;
delayms(50);

IO0CLR=0xffffffff;
led_data=LED_DATA[2]<10;
IO0SET=led_data;
IO0CLR=COM3;
IO0SET=COM2;
IO0SET=COM1;
IO0SET=COM4;
delayms(50);

IO0CLR=0xffffffff;
led_data=LED_DATA[1]<10;
IO0SET=led_data;
IO0CLR=COM4;
IO0SET=COM1;
IO0SET=COM2;
IO0SET=COM3;
delayms(50);
}

/////////////主程序///////////////////
void main(void)
{

PINSEL0 |= 0x00000000;
PINSEL1 |= 0x00000000;

IO0DIR=0x1e03fc00; //配置P0.10-P0.17 P0.25 P0.26 P0.27 P0.28为输出
while(1)
{
led_display();
}
}


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top