将 P1 口接八个发光二极管,要求编写程序模拟时序控制装置。要求如下:
① 开机后第
一
秒钟 L1、L3 亮,第二秒钟 L2、L4 亮,第三秒钟 L5、L7 亮,
第四秒钟 L6、L8 亮;
② 第五秒钟 L1、L3、L5、L7 亮,第六秒钟 L2、L4、L6、L8 亮;
③ 第七秒钟八个二极管全亮,第八秒钟全灭。
然后从头开始,L1、L3 亮,接着 L2、L4 亮
……
一
直循环下去
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code duan1[]={0x05,0x0A,0x50,0xA0,0x55,0xAA,0xFF,0x00};
- uchar tt;
- uint i=0;
- /*void delay(uint z)
- {
- uint i,j;
- for(i=z;i>0;i--)
- for(j=100;j>0;j--);
- } */
- void main()
- {
- TMOD=0x10;
- TH1=0x38; //0.1s
- TL1=0x00;
- EA=1;
- ET1=1;
- TR1=1;
- while(1)
- {
-
- P1=duan1[i];
- if(i==7)
- i=0;
- }
- }
- void exter0() interrupt 3
- {
- TH1=0x38;
- TL1=0x00;
- tt++;
- if(tt==10)
- {
- tt=0;
- i++;
-
- }
- }
复制代码
所有资料51hei提供下载:
定时器控制实验.zip
(96.14 KB, 下载次数: 9)
|