发光管200ms时间间隔闪烁 数码管实现0~59s循环显示
2014-10-29 17:08
483 查看
#include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; sbit led1=P1^0; unsigned char code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71 }; void delayms(uint); void display(uchar,uchar); uchar num,num1,num2,shi,ge; void main() { //设置定时器0和1的工作方式(0001 0001) TMOD=0x11; TH0=(65536-45872)/256; TL0=(65536-45872)%256; TH1=(65536-45872)/256; TL1=(65536-45872)%256; EA=1;//开总中断 ET0=1;//开定时器0 中断 ET1=1; TR0=1;//启动定时器0 TR1=1; while(1) { display(shi,ge); } } void display(uchar shi,uchar ge) { dula=1;//段选信号 P0=table[shi]; dula=0; P0=0xff; wela=1;// 位选信号 P0=0xfe; wela=0; delayms(5); dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delayms(5); } void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--) ; } void T0_time() interrupt 1 { TH0=(65536-45872)/256; TL0=(65536-45872)%256; num1++; if(num1==4) { num1=0; led1=~led1; } } void T1_time() interrupt 3 { TH1=(65536-45872)/256; TL1=(65536-45872)%256; num2++; if(num2==20) { num2=0; num++; if(num==60) num=0; shi=num/10; ge=num%10; } }
相关文章推荐
- 利用定时器实现流水灯闪烁同时数码管循环显示1-f
- 51单片机:在2位数码管上循环显示00-99,间隔0.5秒
- 实现流水灯以间隔500ms的时间闪烁(系统定时器SysTick实现的精确延时)
- 定时器0控制LED的闪烁时间;计数器1来控制数码管的显示
- VC6对话框中,如何实现点击一个按钮,在相应的Edit框里,显示当前时间
- jfreechart+sql实现时间曲线图(显示曲线数据点)
- JS实现时间菜单的动态显示(已处理平年和闰年)
- 地磅称量系统之(27~29)实现主界面显示用户的登录信息和日期时间星期的代码
- 图标闪烁和显示时间的通用类
- 用JS实现显示当前时间(实时变化)
- (汇编实现)显示系统时间
- 急!查询所有用户两次登录的时间间隔小于5分钟的所有记录,能用自连接实现吗?
- JAVA:用多线程实现时间的动态显示
- 实现Java程序间隔时间运行
- asp.net中实现页面上动态显示系统时间
- 实现Java程序间隔时间运行
- 两位数码管循环显示00~99的实验
- JS实现间隔一段时间显示文字
- 在jsp页面中实现日期时间的显示
- 实现一个用于显示当前时间的Google Android 窗口小部件(AppWidget)