下面是LED旋转显示屏的程序,有些地方不理解。哪位能帮我解释一下,zhushi,不用全部,主要是从定时器0中断部分
单片机源程序如下:
- #include "reg51.h"
- #include "DS1302.H"
- #include "hongwai.H"
- #define uchar unsigned char
- #define uint unsigned int
- uchar xdata ShowDat[176];
- uint ShowNum;
- uchar nian,yue,ri,shi,fen,miao;
- uchar ms,ziNum,NB;
- uchar i;
- bit QuanOK; //bit一般作为程序判断的标志位
- uchar flagset=0;
- uchar Tim_red_tab[6]={0}; //记录年月日时分秒和系统状态信息
- uchar send_ok=0;
- uchar code Zimo[][16];
- uchar code Zimo1[][16];
- uchar code Zimo2[][16];
- uchar code Zimo3[][16];
- void delayms(uint xms) //延时1ms
- {
- uchar k;
- while(xms--)
- {for(k=0;k<125;k++);}
- }
- void InterConfig(void)
- {
- TMOD|=0x01; //TMOD|=0x01等价于TMOD=TMOD|0x01;设置定时器0的工作方式,且保证其他位不变
- TH0=0xfe;
- TL0=0x0b;
- ET0=1; //打开定时器0的中断
- TR0=1; //定时器0工作
- EX0=1; //允许外部中断
- IT0=1; //外部中断的方式为 下降沿触发
- EA=1; //中断总开关
- }
- void main()
- {
- InterConfig();//中断、定时器设置
- for(i=0;i<176;i++) //显示数据缓存清空
- {
- ShowDat[i]=0xff; //设为高电平
- }
-
- TIM1init();//定时器1 红外使用
- EX1init();// 外部中断1 红外使用
- delayms(1000);
- while(1)
- {
-
- delayms(100);
- if(irok==1) //红外接收完成
- {
- Ircordpro();
- irok=0;
- }
- if(irpro_ok==1) //红外解析完成
- {
- irpro_ok=0;
-
- if(IRcord[2]==0x0c)//键1
- {
- IRcord[2]=0;
- for(i=0;i<176;i++)
- {
- ShowDat[i]=0xff;
- }
- ShowNum=0; ms=0; QuanOK=0; ziNum=0;
- flagset=1;
- }
- }
- }
- }
-
- void EX0_int() interrupt 0 //外部中断0
- {
- ShowNum=0;
- ms++;
-
- }
- void timer0() interrupt 1 //定时中断0 中断处理
- {
- TH0=0xfe; //0.37ms 11.0592M 晶振
- TL0=0xab;
- if(flagset==1)
- { if(ShowNum<80)
- {
- P1=ShowDat[ShowNum*2]; //送数据低位显示
- P0=ShowDat[ShowNum*2+1];
- ShowDat[ShowNum*2]=ShowDat[ShowNum*2+2];
- ShowDat[ShowNum*2+1]=ShowDat[ShowNum*2+3];
- ShowNum++;
- QuanOK=1;
- }
- else
- {
- P1=P0=0xff;
- if(ms==8)
- {
- ms=0;
- QuanOK=0;
-
- for(i=0;i<16;i++)
- {
- ShowDat[160+i]=Zimo1[ziNum][i];
- }
- ziNum=(ziNum+1)%61; //重复
- }
-
- else
- {
- if(QuanOK==1&&ms!=0) // 如果全部数据发送完毕 则更新160---176 数据
- {
- QuanOK=0;
- for(i=0;i<7;i++)
- {
- ShowDat[(80+i)*2]=ShowDat[(80+i)*2+2];
- ShowDat[(80+i)*2+1]=ShowDat[(80+i)*2+3];
- }
- }
- }
- }
- }
- uchar code Zimo1[][16]=
- {
- 0xEF,0xFF,0xF3,0xFF,0xBB,0xC0,0xDB,0xFE,0xEB,0xFE,0xFB,0xFE,0xFA,0xFE,0x39,0x00,
- 0xFB,0xFE,0xFB,0xFE,0xEB,0xEE,0xDB,0xDE,0xBB,0xE0,0xEB,0xFF,0xF3,0xFF,0xFF,0xFF,/*"帘",0*/
- 0xFF,0x7E,0x3F,0xBF,0xCF,0xDE,0xE0,0xED,0xEF,0xF3,0xEF,0xFC,0x0F,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0x00,0x00,0xDF,0xFF,0xBF,0xFF,0x7F,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,/*"外",1*/
- 0xBF,0xFF,0xBD,0xFF,0x33,0x80,0xFF,0xDF,0xBF,0xEF,0xDF,0xFF,0x07,0x00,0xB0,0xDD,
- 0xB7,0xDD,0xB6,0xDD,0x01,0xC0,0xB7,0xDD,0xB7,0xDD,0xB7,0xDD,0xF7,0xDF,0xFF,0xFF,/*"谁",2*/
- 0xFF,0xDE,0xF7,0xDE,0xF7,0xEE,0xD7,0xEE,0x37,0xF6,0xF7,0xFA,0xF7,0xFC,0x00,0x00,
- 0xF7,0xFC,0xF7,0xFA,0x77,0xF6,0x97,0xEE,0xF7,0xEE,0xF7,0xDE,0xFF,0xDE,0xFF,0xFF,/*"来",3*/
- 0xEF,0xFB,0xEF,0xBB,0xEF,0x7D,0x00,0x80,0xEF,0xFE,0xAF,0xFF,0xDF,0xFF,0x07,0x00,
- 0xB0,0xDD,0xB7,0xDD,0xB6,0xDD,0x05,0xC0,0xB7,0xDD,0xB7,0xDD,0xF7,0xDF,0xFF,0xFF,/*"推",4*/
- 0xDF,0xDD,0xCF,0x98,0x53,0xDD,0x9C,0xED,0xCF,0x6D,0x6F,0xBF,0xAD,0xCE,0xCD,0xF0,
- 0xED,0xFE,0x01,0xF6,0xEE,0xB2,0xCE,0x74,0xAE,0xB7,0x6F,0xC7,0x7F,0xFF,0xFF,0xFF,/*"绣",5*/
- 0xFF,0xFF,0xFF,0x7F,0xFF,0x9F,0x07,0xE0,0xF7,0xFE,0xF7,0xFE,0xF6,0xFE,0xF1,0xFE,
- 0xF7,0xFE,0xF7,0xFE,0xF7,0xFE,0xF7,0xFE,0x07,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"户",6*/
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",7*/
- 0xEF,0xFB,0xEF,0xFC,0x2F,0xFF,0x00,0x00,0x6F,0xFF,0xEF,0xBE,0xFB,0xBF,0xFB,0xBE,
- 0xFB,0xBE,0xFB,0xBE,0x03,0x80,0xFB,0xBE,0xFB,0xBE,0xFB,0xBE,0xFB,0xBF,0xFF,0xFF,/*"枉",8*/
- 0xDF,0xFB,0x5B,0xF5,0x5B,0xB6,0x5B,0x77,0x00,0x81,0x5B,0xFA,0x4B,0xFB,0xD7,0x7B,
- 0x7B,0xBF,0x8F,0xDF,0x70,0xEC,0xF7,0xF3,0xF7,0xCC,0x07,0xBF,0xF7,0x7F,0xFF,0xFF,/*"教",9*/
- 0xFF,0x7F,0xFF,0xBF,0xFF,0xDF,0xFF,0xEF,0xFF,0xF3,0xFF,0xFC,0x3F,0xFF,0xC0,0xFF,
- 0x3F,0xFF,0xFF,0xFC,0xFF,0xF3,0xFF,0xEF,0xFF,0xDF,0xFF,0xBF,0xFF,0x7F,0xFF,0xFF,/*"人",10*/
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF,0xF7,0xFF,0xE7,0xFF,0xCF,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"、",11*/
- 0xBF,0xFF,0xBB,0x7F,0xDB,0x77,0xEB,0x7B,0x80,0xBD,0x6B,0xBA,0xDB,0xD6,0xFF,0xEE,
- 0xDB,0xEE,0xEB,0xF6,0x80,0xFA,0xEB,0xFC,0xDB,0xFF,0xBB,0xFF,0xBF,0xFF,0xFF,0xFF,/*"梦",12*/
- 0xFF,0xFF,0x03,0xC0,0xDF,0xDD,0xDB,0xDE,0x57,0xDF,0x00,0xD0,0x57,0xDF,0xDB,0x5C,
- 0xFF,0x9F,0x03,0xE0,0xBB,0xFF,0xBB,0xFF,0x3B,0x00,0xBD,0xFF,0xBF,0xFF,0xFF,0xFF,/*"断",13*/
- 0xBB,0xEF,0xBB,0xCF,0x03,0xE0,0xBB,0xF7,0xBB,0xF7,0xFF,0xFF,0x6B,0xFD,0x9B,0x85,
- 0xBB,0xBD,0xAB,0xBD,0x1D,0x80,0xBD,0xBD,0x9C,0xBD,0xA5,0x05,0xFF,0xFD,0xFF,0xFF,/*"瑶",14*/
- 0xFF,0xFF,0xBF,0xFF,0x1F,0xFF,0xAF,0x01,0xB7,0xBD,0xBB,0xBD,0xBC,0xBD,0xBF,0xBD,
- 0xBF,0xBD,0xBF,0xBD,0xB7,0xBD,0xAF,0x01,0x9F,0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,/*"台",15*/
- 0xFF,0xFF,0x0F,0x00,0xEF,0xBD,0xEF,0xBD,0xEF,0xBD,0x00,0x80,0xEF,0xBD,0xEF,0xBD,
- 0xEF,0xBD,0x00,0x80,0xEF,0xBD,0xEF,0xBD,0xEF,0xBD,0x0F,0x00,0xFF,0xFF,0xFF,0xFF,/*"曲",16*/
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xFF,0xDB,0xFF,0xDB,0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"。",17*/
- 0x7F,0xEF,0x77,0xC7,0x77,0xEB,0x77,0xEC,0x00,0xEF,0x77,0xEB,0x77,0xE7,0x77,0xCF,
- 0x7F,0xFF,0x03,0x00,0xFB,0xFF,0xFB,0xF7,0xFB,0xEF,0x03,0xF0,0xFF,0xFF,0xFF,0xFF,/*"却",18*/
- 0xFF,0x7F,0xFF,0x7F,0xFD,0xBF,0xE1,0xBF,0x9D,0xDF,0x7D,0xEE,0xFD,0xF5,0xFD,0xFB,
- 0xFD,0xF5,0x7D,0xEE,0x8D,0xDF,0xF1,0xBF,0xFF,0xBF,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,/*"又",19*/
- 0xFF,0x7E,0xFF,0xBE,0xFF,0xDE,0x80,0xE2,0xB6,0xDE,0xB6,0xBE,0xB6,0x7E,0xB6,0x00,
- 0xB6,0x76,0xB6,0x76,0xB6,0x76,0x80,0x76,0xFF,0x76,0xFF,0x7E,0xFF,0x7E,0xFF,0xFF,/*"是",20*/
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",21*/
- 0xFF,0x7F,0xFF,0x9F,0x01,0xE0,0xFD,0xFF,0xED,0xDF,0xDD,0xEF,0x3D,0xF3,0xFD,0xFC,
- 0x3D,0xF3,0xCD,0xCF,0xFD,0xFF,0x01,0xF0,0xFF,0xCF,0xFF,0xBF,0xFF,0x07,0xFF,0xFF,/*"风",22*/
- 0xFB,0x00,0x8B,0xFE,0xAB,0xE2,0xAA,0xEA,0xA9,0xEA,0xAB,0xA2,0x8B,0x7E,0xFB,0x80,
- 0xBF,0x7F,0x3F,0xBC,0xBF,0xD3,0x80,0xEF,0xB7,0xD3,0x37,0xBC,0xF7,0x7F,0xFF,0xFF,/*"敲",23*/
- 0x7F,0xFF,0xBF,0xFF,0xCF,0xFF,0xE0,0xFF,0x0F,0x00,0xEF,0xFF,0x6F,0xFF,0xBF,0xFF,
- 0xCF,0xFF,0xE0,0xBF,0xEF,0x7F,0x0F,0x80,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xFF,0xFF,/*"竹",24*/
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xFF,0xDB,0xFF,0xDB,0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"。",25*/
- 0xFF,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,/*"—",26*/
- 0xFF,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,
- 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,/*"—",27*/
- 0xFB,0xFF,0xBB,0xEF,0xBB,0x71,0xBB,0xBF,0xA0,0xDF,0xBB,0xE7,0x0B,0xF8,0xBB,0xFF,
- 0xBB,0xBF,0xBB,0x7F,0xA0,0xBF,0x3B,0xC0,0xFB,0xFF,0xFB,0xFE,0xFB,0xF1,0xFF,0xFF,/*"苏",28*/
- 0x37,0xF7,0x47,0xE7,0x70,0xF7,0x17,0x00,0x77,0xFB,0x77,0xFB,0xFF,0xDF,0x6F,0xDF,
- 0x6F,0xC0,0x6F,0xEF,0xEF,0xEF,0x00,0xF8,0xEF,0xC7,0xED,0xBF,0xEB,0x0F,0xFF,0xFF,/*"轼",29*/
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",22*/ //61行
- };
复制代码
|