51单片机 C语言定义地址问题

来源:百度知道 编辑:UC知道 时间:2024/07/07 04:26:47
我用的是TB-3000超想试验仪,做八段数码管显示实验时,指导书说本实验仪数据位输出地址为0e102H,时钟位输出地址为0e102H,位选输出地址为0e101H,它只有汇编语言的答案。汇编语言开始这样写
OUTBIT equ 0e101h ;位控制端
CLK164 equ 0e102h ;段控制口(接164时钟位)
DAT164 equ 0e103h ;段控制口(接164数据位)
我想用C语言写,该怎么定义?
我照着网上写程序运行不出来,应该是这个地址的问题。请教高手。
689850这位大哥,可以帮我写一个八段数码管最简单的程序吗?,就让第一个数码管显示1.
运行出来再追加20分。谢谢。我在网上看到这样一个简单程序。但在我试验箱运行不出来,好像是地址问题,还有我的好像是74ls164驱动的。应该怎么改?
#include <reg52.h>//为什么不用reg51.h?
sbit dula=P2^6;
sbit wela=P2^7;
void main()
{
wela=1;
)0=0xfe;
wela=0;
dula=1;
P0=0x06;
dula=0;while(1);
}

本实验仪器提供了8段数码管led显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位。采用动态方式显示。8段数码管是由8155的pb0.pb1.经74ls164”串转并“后输出得到。6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。 74ls164时串行输入并行输出转换电路,串行输入的数据由8155的PBO控制,始终位由8155的PBI控制输出。写程序时,只要向数据位地址输出数据然后向时钟位地址输出一高一低两个电平就可以将数据移位到74ls164中,向显示位选通地址输出高电平就可以点亮相应的显示位,本实验仪数据位输出地址为0e102H,时钟位输出地址为0e102H,位选输出地址为0e101H

#include<reg51.h>
#include<ABSACC.h>
#define OUTBIT XBYTE[0xe101]
#define CLK164 XBYTE[0xe102]
#define DAT164 XBYTE[0xe103]

你使用的是不是74LS164串行信号驱动数码管的,那岂不是要用8个74LS164驱动8个数码管,
如果是这样的话你就用串行输出的0模式或用2个IO口模拟串行输出信号。
你确认一下,是的话我再给你发程序。

你的是不是用P0口驱动位码,然后用74LS164串行驱动段码

sgh