单片机实训单片机最小系统v单片机以高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是工业控制、设计智能化仪器仪表的首选微控制器,也是测控、监控的重要组成部分v单片机最小系统主要包括时钟电路和复位电路v用流水灯的程序验证单片机最小系统流水灯的程序v#include vvoid delay0_2s()v{vunsigned char i;vfor(i=0;i<10;i++)//设置10次循环次数v{vTH1=0x3c;//定时器初值vTL1=0xb0;vTR1=1;//启动T1 vwhile(!TF1);//查询计数是否溢出vTF1=0; //定时时间到v}v}vvoid main()//主函数v{vwhile(1){vunsigned char i,w;vTMOD=0x10; //设置T1工作方式1vw=0x01;//显示码初值vfor(i=0;i<8;i++){vP1=~w;//w取反后送P1口,点亮相应的流水灯 vw<<=1;//点亮灯的位置移动左移vdelay0_2s();v}vw=0x80;//显示码vfor(i=0;i<8;i++){vP1=~w;//取反vw>>=1;//右移vdelay0_2s();//延时v}v}v}流水灯的原理图秒表v设计两位LED数码管显示00-99,计满清零秒表的程序v#include vunsigned char msec,sec; //定义msec为50ms计数变量,sec为秒变量vvoid delay(unsigned char i){//延时函数vunsigned char j,k;vfor(k=0;kvunsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};vunsigned char msec,sec;vvoid delay();vvoid time0() interrupt 1v{ v TH0=0x3c;vTL0=0xb0;vmsec++;vif(msec==20)v{v msec=0;v sec++;v if(sec==100)sec=0;v}v}vvoid main()v{v TMOD=0x01;vTH0=0x3c;vTL0=0xb0;vEA=1;vET0=1;v vSCON=0; //可不写vTR0=1;vwhile(1)v{v SBUF=led[sec%10];v while(TI==0);v TI=0;v SBUF=led[sec/10];v while(TI==0);v TI=0;v delay();v}v}vvoid delay()v{v unsigned char j,k;v for(j=0;j<50;j++)v for(k=0;k<200;k++);v}串口秒表的原理图交通信号灯顺序控制v设计一个十字路口交通信号灯的顺序控制器v绿灯亮,放行20sv黄灯亮,警告5sv红灯亮,禁止25svS0键按下时,A路放行,B路禁行vS1键按下时,A路禁行,B路放行交通灯的程序v#includevunsigned char t0,t1;//定义全局变量,用来保存延时时间循环次数vvoid delay0_5s1(){//延时v for(t0=0;t0<0x0a;t0++){//采用全局变量t0作为循环控制变量v TH1=0x3c;//设置定时初值vTL1=0xb0;TR1=1;//启动T1vwhile(!TF1);//查询计数是否溢出vTF1=0;}}//定时时间到v void delay_t1(unsigned char t) {v for(t1=0;t1