No.38655 作者:guest 邮件:guest@guest.com ID:6 登陆:16560次 文章数:7648篇 最后登陆IP:219.68.9.43 最后登陆:2005/5/20 1:37:44 注册:2003/3/10 16:21:00 财富:35062 发帖时间:2003/7/29 15:42:59 发贴者IP:202.119.24.35 标题:guest:紧急求助 摘要:No.38655紧急求助 各位大家好,小弟近期遇到一个有关C51的问题,望各位高手赐教。程序稍微有点长,对不住了。希望您保持一点耐心,因为实在有点即急。 程序的任务是在89C51的p0口输出0xf0,以响应键盘中断。一旦键盘中断被响应,数码管输出有所改变(从p2口输出代码)。 现在的问题是如果斜体语句加入(其中3,4只能加一句),则在p0口输出信号不是所预期的0xf0,而是全为高电平,键盘中断也因此无法响应。如果只加入1,2句,问题依旧。 但如果将这几句去掉,则一切正常,实在费解。 我怀疑是否与dispnum的类型有关,是否不能取为全局变量,但无法应证。恳请各位哥哥姐姐帮帮忙,小弟先此谢过。 谢谢!谢谢! #include <reg51.h> #include <absacc.h> #define uchar unsigned char bit flag; //设置中断标志位,键盘按下则flag=1 sbit p10=P1^0; sbit p11=P1^1; sbit p12=P1^2; //p10、p12在该段程序中没起作用,但应该对程序的运行无影响 sbit led1=P1^3; //数码管的片选信号输出端 sbit led2=P1^4; sbit led3=P1^5; [U][I]uchar dispnum; //1[/I][/U] uchar code table[11]={0x08,0x3b,0x14,0x11,0x23,0x41,0x40,0x1b,0x00,0x01,0x7f}; void prodisp(void); void disp(void); void dlms(uchar); void keyinterrupt(void); void main(void) { P0=0xf0; //在p0口送11110000 p10=0; p11=0; p12=0; EA=0; EX0=0; [U][I] dispnum=0; //2[/I][/U] flag=0; EX0=1; EA=1; ......
>>返回讨论的主题
|