51单片机上的C语言,老师让这个图的灯有4种花样显示,使用定时器0实现,按键用外部中断1实现

看这段程序有什么问题,求修改,最好是具体的,谢谢#include<reg51.h>//包含头文件,文件内包含了51单片机的功能定义#include<intrins.H>/... 看这段程序有什么问题,求修改,最好是具体的,谢谢#include<reg51.h> //包含头文件,文件内包含了51单片机的功能定义#include <intrins.H> // intrins.H包含循环左移函数 unsigned char m=0;unsigned char start=0;void s0() interrupt 2{ start=~start; if(start==0) TR1=0; else TR1=1;}void t1() interrupt 1{ TH1=0xB1; TL1=0xE0; m++;}void Delay_mS_12M( ){ m=0; TH1=0xB1; TL1=0xE0; TR1=1; while(m!=10) { ; } m=0; TR1=0; }void main(void)//主函数 {unsigned char i,j; unsigned int d,f,g; P1=0XFF;//初始化LED灯,使灯全灭 P2=0xff;//初始化LED灯,使灯全灭 TMOD=0x01; ET0=1; EX1=1; IT1=1; EA=1; TH1=0xB1; TL1=0xE0; while (1) { if(start==0xff) { d=0xfffe;//赋初值 P0=0xf9; for(i=0;i<15;i++) { P0=d; P1=d>>8; d=_irol_(d,1); Delay_mS_12M(); }if(start)for(i=0;i<15;i++){ P0=d; P1=d>>8; d=_iror_(d,1); Delay_mS_12M(); } d=0xfffe; P2=0xA4; if(start)for(i=0;i<16;i++) { P0=d; P1=d>>8; d=d<<1; Delay_mS_12M(); } d=0xfffe; if(start)for(i=0;i<16;i++) { P0=~d; P1=~(d>>8); d=d<<1; Delay_mS_12M(); } d=0xfffC; P2=0xB0; if(start)for(i=0;i<14;i++) { P0=d; P1=d>>8; d=_irol_(d,1); Delay_mS_12M(); } if(start)for(i=0;i<14;i++) { P0=d; P1=d>>8; d=_iror_(d,1); Delay_mS_12M(); } d=0x5555; P2=0x99; if(start)for(i=0;i<14;i++) { P0=d; P1=d>>8; d=~d; Delay_mS_12M(); } } }} 展开
 我来答
若以下回答无法解决问题,邀请你更新回答
修者世界
2016-06-21 · TA获得超过5852个赞
知道大有可为答主
回答量:5984
采纳率:61%
帮助的人:815万
展开全部
将仿真图和源代码发我邮箱,帮你看看,这个图太模糊了点,也不好调试。zhxiufan@163.com
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式