LPC2103学习板-数码管显示

数码管部分 电路原理图:
本文引用地址:https://www.eepw.com.cn/article/201611/316023.htm其中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
/**************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;i for(j=0;j<1000;j++);
}
void delayms(unsigned int count)
{
unsigned int i,j;
for(i=0;i
}
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);
{
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);
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);
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);
}
led_data=LED_DATA[1]<<10;
IO0SET=led_data;
IO0CLR=COM4;
IO0SET=COM1;
IO0SET=COM2;
IO0SET=COM3;
delayms(50);
}
/////////////主程序///////////////////
void main(void)
{
void main(void)
{
PINSEL0 |= 0x00000000;
PINSEL1 |= 0x00000000;
PINSEL1 |= 0x00000000;
IO0DIR=0x1e03fc00; //配置P0.10-P0.17 P0.25 P0.26 P0.27 P0.28为输出
while(1)
{
led_display();
}
}
while(1)
{
led_display();
}
}
评论