📄 main._c
字号:
/****************************************Copyright (c)**************************************************
** ADEmbed Development Co.,LTD.
** http://www.adembed.com
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2008-12-13
** Last Version: 1.0
** Descriptions: StopWatch.
**
**------------------------------------------------------------------------------------------------------
** Created by: junbolu
** Created date: 2008-12-13
** Version: 1.0
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
**ICC-AVR application builder : 2008-12-13
**Target : M16
**Crystal: 7.3728Mhz
**PA0~PA7口接LED的段码
**PB0~PB3口接LED的位选
**描述:这是一个LED数码管测试程序。采用共阴LED数码管,动态显示固定数字2009。
** 没有一点多余的代码,清晰明了。
**
**涉及知识点:
** DO输出
** for 循环的应用
** 数组的简单应用
*******************************************************************************************************/
#include<iom16v.h>
#include<macros.h>
unsigned char DISP_NUM; //显示的位数
unsigned char BitTab[]={0xFE,0xFD,0xFB,0xF7}; //三位位选码
unsigned char DispTab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //LED字形码
unsigned char DISP_DATA[4]={2,0,0,9}; //显示的数字
void Display(void);
void Delay_us(unsigned int time)
{
while(time--);
}
void Delay_ms(unsigned int time)
{
while(time--)
{
Delay_us(10000);
}
}
//显示函数,DISP_NUM决定显示哪个LED
void Display(void)
{
PORTA=0x00;
PORTB=BitTab[DISP_NUM]; //PB口接位选
PORTA=DispTab[DISP_DATA[DISP_NUM]]; //PA口接LED的段码
DISP_NUM++; //先显示低位,再显示高位
if(DISP_NUM==4)
DISP_NUM=0;
}
void main(void)
{
DDRA=0XFF;
PORTA=0X00;
DDRB=0X0F;
PORTB=0X00;
DISP_NUM=0;
for(;;)
{
Delay_us(200);
Display();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -