网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月09日漏签0天
单片机吧 关注:212,812贴子:1,049,917
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 2回复贴,共1页
<<返回单片机吧
>0< 加载中...

595驱动在主程序中可以但在中断中无法运行?

  • 只看楼主
  • 收藏

  • 回复
  • xujiangyu001
  • 少校
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
采用595驱动4位数码管程序,本想把显示用74hc595驱动void disp();放在中断中运行,但后来调试时发现,这在主程序中AAA运行正常,在中断中BBB运行不正常,相当于没运行的样子,中断中红绿灯闪烁正常.以下是修改后简单的只显示一位一个数也是一样.不知是何原因?本人菜鸟一只.
unsigned int us
sbit MOSIO =P3^4; //串行数据线
sbit R_CLK =P3^5; //数据并行输出控制
sbit S_CLK =P3^6; //串行时钟线
sbit led=P1^0; //绿灯
sbit led1=P1^1; //红灯
bit led2 ;
void HC595in(unsigned int disp)
{
unsigned char i;
S_CLK=0;
R_CLK=0;
for(i=0;i<8;i++)
{
if((disp<<i)&0x80) MOSIO=1;
else MOSIO=0;
S_CLK=0;
NOP();
NOP();
S_CLK=1;
}
}
void disp()
{
HC595in(0x3F);
HC595in(0xef);/
R_CLK=0; //
NOP();
NOP();
R_CLK=1;
}
void time (void) interrupt 1 using 1
{ TR0=0;
ET0=0;
us++;
if(us>=1550)
{
led1=~led1; //红灯闪
//disp(); /////BBB放这里不正常
led=~led; //绿灯闪
led2=1;
us=0;
}
TL0 =tl0;
TH0 =th0;
ET0=1;
TR0=1;
}
main()
{
TR0=0;
TL0 =tl0;
TH0 =th0;
TMOD = 0x11;
EA =1;
ET0=1;
TR0=1;
key1=0;
key=1
while(1)
{
if(key2==1)
{
//disp(); //AAA放这里正常
key2=0;
}
}
}


  • xujiangyu001
  • 少校
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
为什么?


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回单片机吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示