#include <reg51.h>#define SEG 17 //每帧图片分成17列来显示#define INTERVAL 20 //每幅图片在左右摇摆20次后换下一幅typedef unsigned char uchar;typedef unsigned int uint;code char pattern[17][3]={ //3幅图片的字模{0xff,0xff,0xff},{0xff,0xff,0xff},{0xff,0xff,0xff},{0xff,0x9f,0xff},{0xff,0x6f,0xf9},{0xff,0x77,0x65},{0xfe,0xbb,0x1e},{0x7e,0xdd,0xfe},{0x00,0xee,0xfe},{0x7e,0xdd,0xfe},{0xfe,0xbb,0x1e},{0xff,0x77,0x65},{0xff,0x6f,0xf9},{0xff,0x9f,0xff},{0xff,0xff,0xff},{0xff,0xff,0xff},{0xff,0xff,0xff},};uchar phase,th1,tl1,index,count;main(){ EA=0; EX0=1; ET1=1; PX0=1; IT0=1; TMOD=0x11; index=0; EA=1; while(1) { }}void Int0_Handle(void) interrupt 0 using 2{ uint t0_time; TR0=0; TR1=0; TF1=0; t0_time=TH0<<8|TL0; TL0=0; TH0=0; TR0=1; t0_time=65535-t0_time/SEG; th1=t0_time/256; TH1=th1; tl1=t0_time % 256; TL1=tl1; if (count<3*INTERVAL){ //3幅图片循环 count++; } else{ count=0; } index=count/INTERVAL; if (th1!=0xff || tl1!=0xff){ //如果摆动特别慢,定时器溢出就不显示 phase=0; TR1=1; } else{ TR1=0; }}void Timer1(void) interrupt 3 using 3{ if (phase<SEG) //17段依次显示 { P1=pattern[phase][index]; phase++; TH1=th1; TL1=tl1; }}
导读:目前正在解读《LED显示摇棒源程序》的相关信息,《LED显示摇棒源程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《LED显示摇棒源程序》的详细说明。
简介:这里给大家分享了一个LED显示摇棒源程序。
提醒:《LED显示摇棒源程序》最后刷新时间 2024-03-14 01:02:22,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《LED显示摇棒源程序》该内容的真实性请自行鉴别。