第47节:操作AT24C02利用定时器延时改善数码管的闪烁
时间:11-22
来源:互联网
点击:
- ucDigShow4=ucTemp4;//第4位数码管要显示的内容
- }
- if(uiSetData1<100)
- {
- ucDigShow3=10;//如果小于100,百位显示无
- }
- else
- {
- ucDigShow3=ucTemp3;//第3位数码管要显示的内容
- }
- if(uiSetData1<10)
- {
- ucDigShow2=10;//如果小于10,十位显示无
- }
- else
- {
- ucDigShow2=ucTemp2;//第2位数码管要显示的内容
- }
- ucDigShow1=ucTemp1;//第1位数码管要显示的内容
- }
- break;
- case 2://显示P--2窗口的数据
- if(ucWd2Update==1)//窗口2要全部更新显示
- {
- ucWd2Update=0;//及时清零标志,避免一直进来扫描
- ucDigShow8=12;//第8位数码管显示P
- ucDigShow7=11;//第7位数码管显示-
- ucDigShow6=2;//第6位数码管显示2
- ucDigShow5=10; //第5位数码管显示无
- ucTemp4=uiSetData2/1000; //分解数据
- ucTemp3=uiSetData2%1000/100;
- ucTemp2=uiSetData2%100/10;
- ucTemp1=uiSetData2%10;
- if(uiSetData2<1000)
- {
- ucDigShow4=10;//如果小于1000,千位显示无
- }
- else
- {
- ucDigShow4=ucTemp4;//第4位数码管要显示的内容
- }
- if(uiSetData2<100)
- {
- ucDigShow3=10;//如果小于100,百位显示无
- }
- else
- {
- ucDigShow3=ucTemp3;//第3位数码管要显示的内容
- }
- if(uiSetData2<10)
- {
- ucDigShow2=10;//如果小于10,十位显示无
- }
- else
- {
- ucDigShow2=ucTemp2;//第2位数码管要显示的内容
- }
- ucDigShow1=ucTemp1;//第1位数码管要显示的内容
- }
- break;
- case 3://显示P--3窗口的数据
- if(ucWd3Update==1)//窗口3要全部更新显示
- {
- ucWd3Update=0;//及时清零标志,避免一直进来扫描
- ucDigShow8=12;//第8位数码管显示P
- ucDigShow7=11;//第7位数码管显示-
- ucDigShow6=3;//第6位数码管显示3
- ucDigShow5=10; //第5位数码管显示无
- ucTemp4=uiSetData3/1000; //分解数据
- ucTemp3=uiSetData3%1000/100;
- ucTemp2=uiSetData3%100/10;
- ucTemp1=uiSetData3%10;
- if(uiSetData3<1000)
- {
- ucDigShow4=10;//如果小于1000,千位显示无
- }
- else
- {
- ucDigShow4=ucTemp4;//第4位数码管要显示的内容
- }
- if(uiSetData3<100)
- {
- ucDigShow3=10;//如果小于100,百位显示无
- }
- else
- {
- ucDigShow3=ucTemp3;//第3位数码管要显示的内容
- }
- if(uiSetData3<10)
- {
- ucDigShow2=10;//如果小于10,十位显示无
- }
- else
- {
- ucDigShow2=ucTemp2;//第2位数码管要显示的内容
- }
- ucDigShow1=ucTemp1;//第1位数码管要显示的内容
- }
- break;
- case 4://显示P--4窗口的数据
- if(ucWd4Update==1)//窗口4要全部更新显示
- {
- ucWd4Update=0;//及时清零标志,避免一直进来扫描
- ucDigShow8=12;//第8位数码管显示P
- ucDigShow7=11;//第7位数码管显示-
- ucDigShow6=4;//第6位数码管显示4
- ucDigShow5=10; //第5位数码管显示无
- ucTemp4=uiSetData4/1000; //分解数据
- ucTemp3=uiSetData4%1000/100;
- ucTemp2=uiSetData4%100/10;
- ucTemp1=uiSetData4%10;
- if(uiSetData4<1000)
- {
- ucDigShow4=10;//如果小于1000,千位显示无
- }
- else
- {
- ucDigShow4=ucTemp4;//第4位数码管要显示的内容
- }
- if(uiSetData4<100)
- {
- ucDigShow3=10;//如果小于100,百位显示无
- }
- else
- {
- ucDigShow3=ucTemp3;//第3位数码管要显示的内容
- }
- if(uiSetData4<10)
- {
- ucDigShow2=10;//如果小于10,十位显示无
- }
- else
- {
- ucDigShow2=ucTemp2;//第2位数码管要显示的内容
- }
- ucDigShow1=ucTemp1;//第1位数码管要显示的内容
- }
- break;
- }
- }
- void key_scan(void)//按键扫描函数 放在定时中断里
- {
- if(key_sr1==1)//IO是高电平,说明按键没有被按下,这时要及时清零一些标志位
- {
- ucKeyLock1=0; //按键自锁标志清零
- uiKeyTimeCnt1=0;//按键去抖动延时计数器清零,此行非常巧妙,是我实战中摸索出来的。
- }
- e
AT24C02定时器延时数码 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)