硬件板子外观
练习目标1
6个数码管,每个数码管依次显示0-9,循环往复
#include <REGX52.H>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
void Delay(uint);
void main()
{
uint index1,index2;
//第几个数码管亮时,P0取值分别是
uint code lcdindex[6] = {0XFE,0XFD,0XFB,0XF7,0XEF,0XDF};
/*
关键字code 表示定义的是编码,而非数组;但是编码定义使用与数组定义使用非常类似;
单片机中定义数组占用内存空间;定义编码不占用内存空间,直接分配到程序空间中;
*/
//数码管显示0-9时,P0取值分别是
uint code lcdval[10] = {0x3F,0x06,0x5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
while(1)
{
for(index1=0;index1<6;index1++)
{
P2_7 = 1; //WELA--位选 第几个数码管显示
P0 =lcdindex[index1];
P2_7 = 0;
for(index2=0;index2<10;index2++)
{
P2_6 = 1; //DULA--段选 数码管显示内容
P0 = lcdval[index2];
P2_6 = 0;
Delay(1000);
}
}
}
}
void Delay(uint dTime)
{
uchar data i, j;
while(dTime--)
{
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}