|
本帖最后由 稻香 于 2012-6-20 12:39 编辑
【长春-稻香 (891405379) 10:28:09
这是我的硬件连线
这是我的程序
/*------对应硬件:TX-1C单片机开发板------*/
/*------------11.0592MHz晶振-------------*/
/*--------------数码管动态显示---------------*/
/*------------2012年06月19日-------------*/
#include<reg52.h> //52系列单片机头文件
#define uint unsigned int
#define uchar unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table0[]={ //code相当于C语言的const就是常量数组
0x3f,0x06,0x5b,0x4f, //如果下面的程序试图修改table[]数组的值,编译器将会报错。
0x66,0x6d,0x7d,0x07, //段码数组
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71 };
uchar code table1[]={ //位码数组
0xdf,0xef,0xf7,0xfb, //dfH=1101 1111
0xfd,0xfe };
void delayms(uint xms);
void main()
{
while(1)
{
dula=1;
P0=table0[1];
dula=0;
P0=0xff; //P0=0xff,送位选数据前关闭所有显示,防止打开位选锁存时
wela=1; //原来的段选数据通过位选锁存器造成混乱
P0=table1[0]; //送位选数据
wela=0;
delayms(500); //500
dula=1;
P0=table0[2];
dula=0;
P0=0xff; //送位选数据前关闭所有显示,防止打开位选锁存时
wela=1; //原来的段选数据通过位选锁存器造成混乱
P0=table1[1]; //送位选数据
wela=0;
delayms(500);
dula=1;
P0=table0[3];
dula=0;
P0=0xff; //送位选数据前关闭所有显示,防止打开位选锁存时
wela=1; //原来的段选数据通过位选锁存器造成混乱
P0=table1[2]; //送位选数据
wela=0;
delayms(500);
dula=1;
P0=table0[4];
dula=0;
P0=0xff; //送位选数据前关闭所有显示,防止打开位选锁存时
wela=1; //原来的段选数据通过位选锁存器造成混乱
P0=table1[3]; //送位选数据
wela=0;
delayms(500);
dula=1;
P0=table0[5];
dula=0;
P0=0xff; //送位选数据前关闭所有显示,防止打开位选锁存时
wela=1; //原来的段选数据通过位选锁存器造成混乱
P0=table1[4]; //送位选数据
wela=0;
delayms(500);
dula=1;
P0=table0[6];
dula=0;
P0=0xff; //送位选数据前关闭所有显示,防止打开位选锁存时
wela=1; //原来的段选数据通过位选锁存器造成混乱
P0=table1[5]; //送位选数据
wela=0;
delayms(500);
}
}
void delayms(uint xms)
{
uint i,j;
{
for(i=xms;i>0;i--) //i=xms即延时大约x毫秒
for(j=110;j>0;j--); //j=110
}
}
这是我的程序
这是单步调试的时候的现象
【长春-稻香 (891405379) 10:29:17
但是怎么调试的时候 单步到这里就是这样的啊??
这是数码管动态显示
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|