LPC2103学习板-数码管显示
数码管部分 电路原理图:
其中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;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);
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();
}
}
LPC2103数码管显 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)