#include <reg52.h>
unsigned int counter;
unsigned char num;
unsigned char temp;
sbit duan=P3^3;//设定数码管段选通端,为的关闭数码管
sbit wei=P3^4;//设定数码管位选通端,为的关闭数码管
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //列位
unsigned char code Dispay[3][8]={
{0x00,0x36,0x49,0x41,0x22,0x14,0x08,0x00},//红心字符
{0x00,0x36,0x49,0x41,0x22,0x14,0x08,0x00},//红心字符
{0x00,0x36,0x49,0x41,0x22,0x14,0x08,0x00} //红心字符
};
void main(void) //主程序
{
duan=0;//关闭数码管
wei=0;
TMOD=0x01; //工作方式1
TH0=(65536-3000)/256; //初值50MS
TL0=(65536-3000)%256;
EA=1;
ET0=1; //开T0中断
TR0=1; //启T0
while(1)
{; }
}
void t0(void) interrupt 1 using 0
{
TH0=(65536-3000)/256;
TL0=(65536-3000)%256;
P2=table[num]; //P2读取列位值
P0=Dispay[temp][num]; //P0读取:数组-数字和字母
num++; //按数序
if(num==8) //每组8个BIT
{num=0;}
counter++; //计时加1
}
如何控制LED灯一个一个的点亮,另求《8x8点阵提取工具》一个,做等高人指教
谁能帮我检查下,这个C51单片机的汇编语言有什么错误!
存在以下几个问题:1. 在按键的延时去抖动后,没有重新读取按键键值,即:L8: ACALL DELAY CJNE A,#0FFH,SAVE 这两条指令中间应插入:MOV A, P1,否则你用来比较的A还是第一次读到的A 2. 你在检测到按键按下后,没有等待键释放再去检测下一个按键。从你的程序中看,检测到按键按下后,蜂鸣...
89c52系列的c51单片机开发版刚买来的,烧入代码后没有写蜂
刚入手的89c52系列C51单片机开发版,尝试烧入代码后却并未实现预期功能,如蜂鸣器的激活。这反映出开发过程中的几个关键问题,需深入探讨。首先,硬件知识的缺失是入门单片机开发的一大障碍。对于蜂鸣器的接线位置、所连接的P口引脚等基本硬件配置,若不清楚,将直接影响到后续代码的正确性。因此,熟悉硬件原...
c51单片机程序编译时错误:error c236:‘——display’:different length...
count是uchar,还是uint?我猜想,你的count是uint。很可能问题在这里。
C51单片机里关于xbyte的问题
这个主要是在用C51的P0,P2口做外部扩展时使用,其中XBYTE [0x0002],P2口对应于地址高位,P0口对应于地址低位。--对。一般P2口用于控制信号,P0口作为数据通道。--P2 是地址高八位。--读、写控制信号分别在 P3.6 和 P3.7。假设我P2口和P0口接的外部扩展不是RAM,而是液晶屏要怎么理解?
C51 while()循环问题 下面这个while()循环是怎么跳出来的?
如果SendIic_Mlx()返回1,表示对方没有应答,也就是没有成功。所以就循环,直到所有b1,b2,b3,b4都 返回0,才说明这4个数据都发送成功了。数据完全正确,于是循环结束。当然这样的程序是“不健状”的,因为一旦IIC总线开路或总线器件故障,这就 是一个死循环,造成单片机无响应。应该采用定时,时间...
c51单片机排序问题
LJMP SORT ORG 50H DB 55H,66H,0AAH,44H,77H,22H,88H,00H,33H,55H,99H SORT: ;最简短、高效的排序程序.MOV B, #0AH ;第一轮排序时,比较0AH次.S1: MOV R0, #50H ;数据区的起始地址.CLR PSW.5 ;清除"交换"标志位.MOV R7, B S2: MOV A, @R0 ;取前一个数.INC R0 CLR...
C51代码功能不能实现,请高手帮忙看看
用keil编译,能否通过,通过后,烧录到开发板就看到运行效果对不对了。要仿真,更简单了,用proteus画一个仿真图,加载HEX代码,运行仿真,也能看运行效果。这样都做下来,自己就知道程序对不对了,而不是只写个程序就算学单片机啦。主程序要有while(1)主循环语句。最后一个while(!KEY);删掉。
C51单片机调试问题:*** error 65: access violation at C:0x0400...
你的代码 入口点 指定了吗》?在启动文件里!startUp.s 文件里,如果没有的话,程序只能从0x0开始执行啊!而在0x0都是NOP!你的 ORG 30H 说明第一条指令在 0x30处,但是你执行是从0x0开始的,故执行不到你的程序那里去!你把你的代码 改成 ORG 0H 试试 ...
单片机C51程序问题,实现了秒表功能,但是为什么在256秒后就归0了??我...
uchar i=0; 数据类型,改成 uint
单片机C51这个错在哪
以下是单片机实践团为您解答:1)请下载:C51FPS.LIB放到,目录:c:\\keil\\c51\\lib即可。2)问题分析:你包含了头文件stdio.h,里面有些实体是在这个C51FPS.LIB中的,我猜测的。3)为什么这么说呢,你的keil版本太老了(而且组件不全),一看就知道,建议使新版本的避免不必要的麻烦。4)还要请参考...