用定时器1控制四位数码管从6432减到6393保持住这个数值,同时用定时器0控制流水灯从上至下以500ms移动同时停止!!!然后流水灯全部闪烁2.4秒后熄灭!继而数码管上显示6666
来源:互联网 发布:淘宝店铺广告语 编辑:程序博客网 时间:2024/05/21 22:59
#include<reg52.h>#include<intrins.h>#define uchar unsigned char #define uint unsigned intsbit dula=P2^6;sbit wela=P2^7;uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};uchar temp,bai,shi,ge,aa,flag,flag1,t0,t1;uint shu;void display(uchar aa,uchar bai,uchar shi,uchar ge);void init();void delay(uint z);void main(){init();while(1){if(flag1!=1) display(6,bai,shi,ge); else display(6,6,6,6);}}void init(){shu=432;temp=0xfe;P1=temp;TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;TR0=1;ET1=1;TR1=1;}void time1() interrupt 3{TH1=(65536-50000)/256;TL1=(65536-50000)%256;t1++;if(t1==2){t1=0;bai=shu/100;shi=shu%100/10;ge=shu%10;shu--;if(shu==393){TR0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;t0++;P1=0xff;TR1=0;flag=1; }}}void time0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;t0++; if(flag!=1){if(t0==10){t0=0;temp=_crol_(temp,1);P1=temp;//flag1=1;}} else{if(t0%4==0)P1=~P1;if(t0==48){TR0=0;P1=0xff;flag1=1;}}}void display(uchar aa,uchar bai,uchar shi,uchar ge){wela=1;P2=0xfe;wela=0;dula=1;P0=tab[aa];dula=0;delay(5);wela=1;P2=0xfd;wela=0;dula=1;P0=tab[bai];dula=0;delay(5);wela=1;P2=0xfb;wela=0;dula=1;P0=tab[shi];dula=0;delay(5);wela=1;P2=0xf7;wela=0;dula=1;P0=tab[ge];dula=0;delay(5);}void delay(uint z){uint x,y;for(x=0;x<z;x++)for(y=0;y<110;y++);}其中发现的一个错误:for()后加分号导致程序不能运行;灯闪烁时间本来是写的三秒钟但是t0取余过程中要考虑到取余的次数是偶数次因此将时间换成了2.4秒;数码管最后静止的数本来是6398;但是我发现流水灯亮不了最后一个灯,因此数字也改了一下
0 0
- 用定时器1控制四位数码管从6432减到6393保持住这个数值,同时用定时器0控制流水灯从上至下以500ms移动同时停止!!!然后流水灯全部闪烁2.4秒后熄灭!继而数码管上显示6666
- 利用定时器实现流水灯闪烁同时数码管循环显示1-f
- 流水灯&数码管&定时器中断
- 数码管逐次加一同时流水灯
- wince 控制 数码管 显示系统时间 控制流水灯
- 单片机控制流水灯 数码管显示时间 蜂鸣器报警
- 定时器0控制LED的闪烁时间;计数器1来控制数码管的显示
- 定时器控制数码管扫描显示
- MSP430F149流水灯闪烁以及数码管的显示
- 【数码管/定时器/中断】一个定时器控制数码管显示
- 数码管流水灯
- 用定时器0控制切换流水灯顺序,用外部中断控制两种数码管显示方式
- 中断+数码管动态显示+流水灯
- 按键控制数码管0-99显示,十位不跳,用定时器T0中断
- 用定时器实现流水灯
- 定时器控制数码管2011.1.24
- 流水灯与闪烁同时实现
- 简单的一个用定时器控制的流水灯c程序
- Effective STL 第六条 当心C++编译器最烦人的分析机制
- uvalive5092(找规律)
- 关于JAVA类的初始化顺序
- JAVA中获取一个时间中的年月日
- 数年不关注,Everything for windows已经进化得很厉害了
- 用定时器1控制四位数码管从6432减到6393保持住这个数值,同时用定时器0控制流水灯从上至下以500ms移动同时停止!!!然后流水灯全部闪烁2.4秒后熄灭!继而数码管上显示6666
- 为UIAlertView添加block支持
- 辛星浅析utf8中比较常见的utf8校对集
- Android 控件之九:DatePicker日期选择控件 DatePickerDialog日期选择对话框
- C++面试常见题目问与答(汇总二)
- EventBus的初步使用:
- A. Bear and Elections
- Android 控件之十:ProgressBar进度条
- C语言基础