




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
..51單片機(jī)常見程序附帶注釋三位數(shù)分離成3個一位數(shù),截取bai=num/100;//輸出百位數(shù)shi=num%100/10;//輸出十位數(shù)ge=num/10;//輸出個位數(shù)#include<reg52.h> //跑馬燈程序。當(dāng)時間約為20ms,形成動態(tài)掃描,看上去全亮。#include<intrins.h>#defineuintunsignedint //無符號整型,占16位數(shù),表示范圍0~65536#defineucharunsignedchar //無符號字符型占八位數(shù),表示范圍0~255voiddelayms<uint>;ucharaa; //定義變量voidmain<>{ aa=0xfe; while<1> { P2=aa; //控制單片機(jī)接口p2,循環(huán)亮 delayms<500>; //當(dāng)500換成5,看起來全亮,實(shí)際上燈一直亮滅,原因是視覺延遲 aa=_crol_<aa,1>; }}voiddelayms<uintxms> //子程序,延時,通過數(shù)數(shù){ uinti,j; for<i=xms;i>0;i--> for<j=110;j>0;j-->;}#include<reg52.h> //跑馬燈程序?,F(xiàn)在時間較長,多以是亮滅的流動,當(dāng)時間約為20ms,形成動態(tài)掃描,看上去全亮。#include<intrins.h>#defineuintunsignedint //無符號整型,占16位數(shù),表示范圍0~65536#defineucharunsignedchar //無符號字符型占八位數(shù),表示范圍0~255voiddelayms<uint>;ucharaa; //定義變量voidmain<>{ aa=0xfe; while<1> { P2=aa; //控制單片機(jī)接口p2,循環(huán)亮 delayms<500>; //當(dāng)500換成5,看起來全亮,實(shí)際上燈一直亮滅,原因是視覺延遲 aa=_crol_<aa,1>; }}voiddelayms<uintxms> //子程序,延時,通過數(shù)數(shù){ uinti,j; for<i=xms;i>0;i--> for<j=110;j>0;j-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和兩個共陰極數(shù)碼管:使用單片機(jī)的引腳1和2,控制兩個數(shù)碼管靜態(tài)顯示00到59#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P0^7; //申明U1鎖存器鎖存端 段選ucharnum,num1;ucharcodetable[]={ //共陰極數(shù)碼管0123456789abcdef0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelayms<uint>;voidmain<> { while<1> { for<num1=0;num1<=5;num1++> { for<num=0;num<=9;num++> { dula2=1; //打開U1鎖存端 P1=table[num]; //送入位選信號 dula2=0; //關(guān)閉U1鎖存器 delayms<100>; //延時500毫秒約0.3s dula1=1; //打開U1鎖存端 P2=table[num1]; //送入位選信號 dula1=0; //關(guān)閉U1鎖存器 delayms<100>; //延時500毫秒約0.3s } } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=200;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和兩個共陰極數(shù)碼管#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P2^7; //申明U1鎖存器鎖存端 段選ucharnum,num1;ucharcodetable[]={ //共陰極數(shù)碼管0123456789abcdef0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelayms<uint>;voidmain<> { while<1> { for<num1=0;num1<=9;num1++> { dula1=1; //打開U1鎖存端 P1=table[num1]; //送入位選信號 dula1=0; //關(guān)閉U1鎖存器 delayms<1000>; //延時500毫秒約0.3s for<num=0;num<=9;num++> { dula2=1; //打開U1鎖存端 P1=table[num]; //送入位選信號 dula2=0; //關(guān)閉U1鎖存器 delayms<1000>; //延時500毫秒約0.3s } } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=200;y>0;y-->;}有語法錯誤#include<reg52.h> //52系列單片機(jī)頭文件#defineucharunsignedchar //無符號字符型占八位數(shù),表示范圍0~255#defineuintunsignedint //無符號整型,占16位數(shù),表示范圍sbitdula1=P1^6; //申明U1鎖存器鎖存端 段選sbitdula2=P0^7; //申明U1鎖存器鎖存端 段選ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xcd,0xa1,0x86,0x8e};voiddelayms<uint>;voiddisplay<uchar,uchar>;ucharnum,num2,shi,ge;voidmain<>{TMOD=0x11;//設(shè)置定時器0和1為工作方式1〔M1M0為01,000100TH0=<65535-50000>/256;//裝初值12.00M晶振定時50s數(shù)為50000TL0=<65535-50000>%256;TH1=<65535-50000>/256;//裝初值12.00M晶振定時50s數(shù)為50000TL1=<65535-50000>%256;EA=1;// 開總中斷ET0=1;//開定時器0中斷ET1=1;//開定時器1中斷TR0=1;//啟動定時器0TR1=1;//啟動定時器1while<1>// 程序停止在這里不停的對數(shù)碼管動態(tài)掃描同時等待中斷的發(fā)生{ display<shi,ge>; dula2=1; //打開U1鎖存端 P1=table[shi]; //送入位選信號 dula2=0; //關(guān)閉U1鎖存器 delayms<1175>; //延時0.1毫秒}}voiddelayms<uintxms> //延時子程序{ uinti,j; for<i=xms;i>0;i--> //i=xms即延時約為xms毫秒 for<j=110;j>0;j-->;}voidT1_time<>interrupt1{TH1=<65536-50000>/256; //重裝初值TL1=<65536-50000>%256;num2++; //num每加1次判斷一次是否到20次 if<num2==20> { num2=0;//然后把num2清0重新再計數(shù)20次 num++; if<num==60> //這個數(shù)用來送數(shù)碼管顯示,到60后歸0 num=0; shi=num/10; //把一個2位數(shù)分離后分別送數(shù)碼管顯示,十位數(shù) ge=num%10; //個位數(shù) }#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):控制時間24小時一循環(huán)#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P0^7; //申明U1鎖存器鎖存端 段選ucharnum,num1,num2,num3,num4;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xcd,0xa1,0x86,0x8e};voiddelayms<uint>;voidmain<> { while<1> { for<num3=0;num3<=23;num3++> //每天24小時進(jìn)位一 { for<num2=0;num2<=59;num2++> //每60分進(jìn)位一 { for<num1=0;num1<=5;num1++>//每6*10s進(jìn)位一 { dula2=1; //打開U1鎖存端 P1=table[num1]; //送入位選信號 dula2=0; //關(guān)閉U1鎖存器 delayms<1175>; //延時0.1毫秒 for<num=0;num<=9;num++> //每1s進(jìn)位一 { dula2=1; //打開U1鎖存端 P1=table[num]; //送入位選信號 dula2=0; //關(guān)閉U1鎖存器 delayms<1000>; //延時0.1毫秒 } } } } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=110;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):控制時間24小時一循環(huán),蜂鳴器每過一段時間響一次#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P2^7; //申明U1鎖存器鎖存端 段選sbitf=P0; //聲明單片機(jī)P0口的第一位,也就是三極管基級的位置單片機(jī)第39接口ucharnum,num1,num2,num3,num4;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xcd,0xa1,0x86,0x8e};voiddelayms<uint>;voidmain<> { while<1> { for<num3=0;num3<=23;num3++> //每天進(jìn)位一 { for<num2=0;num2<=59;num2++> //每60分進(jìn)位一 { for<num4=0;num2<=59;num4++> //每60s進(jìn)位一 { f=0; //控制蜂鳴器的不響 for<num=0;num<=9;num++> //每1ms進(jìn)位一 { dula2=1; //打開U1鎖存端 P2=table[num]; //送入位選信號 dula2=0; //關(guān)閉U1鎖存器 delayms<1074>; //延時0.1毫秒 } f=1; //控制蜂鳴器的響 delayms<1000>; } } } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=10;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和兩個共陽極數(shù)碼管,控制依次顯示0到59,然后循環(huán),有合適的時間間隔,程序停止#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P2^7; //申明U1鎖存器鎖存端 段選ucharnum,num1;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xcd,0xa1,0x86,0x8e};voiddelayms<uint>;voidmain<> { while<1> { for<num1=0;num1<6;num1++> { dula1=1; //打開U1鎖存端 P1=table[num1]; //送入位選信號 dula1=0; //關(guān)閉U1鎖存器 delayms<100>; //延時500毫秒約0.3s for<num=0;num<=9;num++> { dula2=1; //打開U1鎖存端 P2=table[num]; //送入位選信號 dula2=0; //關(guān)閉U1鎖存器 delayms<100>; //延時500毫秒約0.3s } } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=200;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和兩個共陽極數(shù)碼管,控制依次顯示0到59,時間間隔約0.5,程序停止#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P2^7; //申明U1鎖存器鎖存端 段選ucharnum,num1;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xcd,0xa1,0x86,0x8e};voiddelayms<uint>;voidmain<> { while<1> { for<num=0;num1<6;num1++> { dula1=1; //打開U1鎖存端 P1=table[num1]; //送入位選信號 dula1=0; //關(guān)閉U1鎖存器 delayms<100>; //延時500毫秒約0.3s for<num=0;num<=9;num++> { dula2=1; //打開U1鎖存端 P2=table[num]; //送入位選信號 dula2=0; //關(guān)閉U1鎖存器 delayms<100>; //延時500毫秒約0.3s } } }}voiddelayms<uintxms>//延時子程序{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和兩個共陽極數(shù)碼管,控制依次顯示0到59,時間間隔約0.5,程序停止#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P2^7; //申明U2鎖存器鎖存端 段選ucharnum,num1;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xcd,0xa1,0x86,0x8e};voiddelayms<uint>;voidmain<> { while<1> { for<num=0;num1<6;num1++> { dula1=1; //打開U1鎖存端 P1=table[num1]; //送入位選信號 dula1=0; //關(guān)閉U1鎖存器 delayms<100>; //延時500毫秒約0.3s for<num=0;num<=9;num++> { dula2=1; //打開U2鎖存端 P2=table[num]; //送入位選信號 dula2=0; //關(guān)閉U1鎖存器 delayms<100>; //延時500毫秒約0.3s } } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽極數(shù)碼管,控制依次顯示0到9,時間間隔約0.5s;#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P2^7; //申明U2鎖存器鎖存端 段選ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xcd,0xa1,0x86,0x8e};voiddelayms<uint>;voidmain<> { while<1> { for<num=0;num<10;num++> { dula1=1; //打開U1鎖存端 P1=table[num]; //送入位選信號 dula1=0; //關(guān)閉U1鎖存器 delayms<100>; //延時500毫秒約0.3秒 dula2=1; //打開U2鎖存端 P2=table[num]; //送入位選信號 dula2=0; //關(guān)閉U2鎖存器 delayms<100>; //延時500毫秒約0.3秒 } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用定時器0的方式1實(shí)現(xiàn)第一個燈管以200ms閃爍;用定時器1的方式1實(shí)現(xiàn)數(shù)碼管前兩位59s循環(huán)計時#defineucharunsignedchar //無符號字符型占八位數(shù),表示范圍0~255#defineuintunsignedint //無符號整型,占16位數(shù),表示范圍sbitdula=P2^6; //申明U1鎖存器鎖存端 段選sbitwela=P2^7; //申明U2鎖存器鎖存 位選sbitled1=P1^0; //申明燈1點(diǎn)0ucharcodetable[]={ //共陰極數(shù)碼管0123456789abcdef0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelayms<uint>;voiddisplay<uchar,uchar>;ucharnum,num1,num2,shi,ge;voidmain<>{TMOD=0x01;//設(shè)置定時器0和1為工作方式1〔M1M0為01,000100TH0=<65535-50000>/256;//裝初值12.00M晶振定時50s數(shù)為50000TL0=<65535-50000>%256;TH1=<65535-50000>/256;//裝初值12.00M晶振定時50s數(shù)為50000TL1=<65535-50000>%256;EA=1;// 開總中斷ET0=1;//開定時器0中斷ET1=1;//開定時器1中斷TR0=1;//啟動定時器0TR1=1;//啟動定時器1while<1>// 程序停止在這里不停的對數(shù)碼管動態(tài)掃描同時等待中斷的發(fā)生{display<shi,ge>;}}voiddisplay<ucharshi,ucharge> //控制數(shù)碼管{dula=1; //打開U1鎖存端段選P0=table[shi];//送入段選信號dula=0; //關(guān)閉U1鎖存器P0=0xff; //送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開位選鎖存器時wela=1; //原來的段選數(shù)據(jù)通過位選鎖存器造成混亂P0=0xfe; //送位選數(shù)據(jù)wela=0;delayms<5>; //延時dula=1; //打開U1鎖存端段選P0=table[ge];//送入段選信號dula=0; //關(guān)閉U1鎖存器P0=0xff; //送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開位選鎖存器時wela=1; //原來的段選數(shù)據(jù)通過位選鎖存器造成混亂P0=0xfe; //送位選數(shù)據(jù)wela=0;delayms<5>; //延時}voiddelayms<uintxms> //延時子程序{uinti,j;for<i=xms;i>0;i--> //i=xms即延時約為xms毫秒for<j=110;j>0;j-->;}voidT0_time<>interrupt1{TH0=<65536-50000>/256; //重裝初值TL0=<65536-50000>%256;num++; if<num1==4> //num1每加1次判斷一次是否到4次,時間間隔200ms{num1=0;//然后把num1清0重新再計數(shù)4次led1=~led1; //讓發(fā)光管狀態(tài)取反}}voidT1_time<>interrupt3{TH1=<65536-50000>/256; //重裝初值TL1=<65536-50000>%256;num2++; //num每加1次判斷一次是否到20次if<num2==20>{num2=0;//然后把num2清0重新再計數(shù)20次num++;if<num==60> //這個數(shù)用來送數(shù)碼管顯示,到60后歸0num=0;shi=num/10; //把一個2位數(shù)分離后分別送數(shù)碼管顯示,十位數(shù)ge=num%10; //個位數(shù)}}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用定時器0的方式1實(shí)現(xiàn)第一個燈管以200ms閃爍;用定時器1的方式1實(shí)現(xiàn)數(shù)碼管前兩位59s循環(huán)計時#defineucharunsignedchar //無符號字符型占八位數(shù),表示范圍0~255#defineuintunsignedint //無符號整型,占16位數(shù),表示范圍sbitdula=P2^6; //申明U1鎖存器鎖存端 段選sbitwela=P2^7; //申明U2鎖存器鎖存 位選sbitled1=P1^0; //申明燈1點(diǎn)0ucharcodetable[]={ //共陰極數(shù)碼管0123456789abcdef0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelayms<uint>;voiddisplay<uchar,uchar>;ucharnum,num1,num2,shi,ge;voidmain<>{ TMOD=0x01;//設(shè)置定時器0和1為工作方式1〔M1M0為01,00010001 TH0=<65535-50000>/256;//裝初值12.00M晶振定時50s數(shù)為50000 TL0=<65535-50000>%256; TH1=<65535-50000>/256;//裝初值12.00M晶振定時50s數(shù)為50000 TL1=<65535-50000>%256; EA=1;// 開總中斷 ET0=1;//開定時器0中斷 ET1=1;//開定時器1中斷 TR0=1;//啟動定時器0 TR1=1;//啟動定時器1 while<1>// 程序停止在這里不停的對數(shù)碼管動態(tài)掃描同時等待中斷的發(fā)生{ display<shi,ge>; }}voiddisplay<ucharshi,ucharge> //控制數(shù)碼管{ dula=1; //打開U1鎖存端段選 P0=table[shi];//送入段選信號 dula=0; //關(guān)閉U1鎖存器 P0=0xff; //送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開位選鎖存器時 wela=1; //原來的段選數(shù)據(jù)通過位選鎖存器造成混亂 P0=0xfe; //送位選數(shù)據(jù) wela=0; delayms<5>; //延時 dula=1; //打開U1鎖存端段選 P0=table[ge];//送入段選信號 dula=0; //關(guān)閉U1鎖存器 P0=0xff; //送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開位選鎖存器時 wela=1; //原來的段選數(shù)據(jù)通過位選鎖存器造成混亂 P0=0xfe; //送位選數(shù)據(jù) wela=0; delayms<5>; //延時}voiddelayms<uintxms> //延時子程序{ uinti,j; for<i=xms;i>0;i--> //i=xms即延時約為xms毫秒 for<j=110;j>0;j-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):中斷程序,控制1點(diǎn)0二極管10ms閃爍#defineucharunsignedchar#defineuintunsignedintsbitled1=P1^0; //聲明單片機(jī)P1口的第一位ucharnum;voidmain<>{ TMOD=0x01;//設(shè)置定時器0為工作方式1〔M1M0為01 TH0=<65535-50000>/256;//裝初值12.00M晶振定時50ms數(shù)為50000 TL0=<65535-50000>%256; EA=1;// 開總中斷 ET0=1;//開定時器0中斷 TR0=1;//啟動定時器0 while<1>// 程序停止在這里等待中斷的發(fā)生{ if<num==200>//判斷一次是否到20 { num=0;//然后把num清0重新再計數(shù)20次 led1=~led1; //讓發(fā)光管狀態(tài)取反 } }} voidT0_time<>interrupt1{ TH0=<65535-50000>/256; //重裝初值 TL0=<65535-50000>%256;num++; //num加上1}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):中斷程序,控制1點(diǎn)0二極管100ms閃爍,若num=10,則0.05s閃爍,換句話控制5000或者num都可以控制時間。#defineucharunsignedchar#defineuintunsignedintsbitled1=P1^0; //聲明單片機(jī)P1口的第一位ucharnum;voidmain<>{ TMOD=0x01;//設(shè)置定時器0為工作方式1〔M1M0為01 TH0=<65535-5000>/256;//裝初值12.00M晶振定時50ms數(shù)為50000 TL0=<65535-5000>%256; EA=1;// 開總中斷 ET0=1;//開定時器0中斷 TR0=1;//啟動定時器0 while<1>// 程序停止在這里等待中斷的發(fā)生{ if<num==20>//判斷一次是否到20 { num=0;//然后把num清0重新再計數(shù)20次 led1=~led1; //讓發(fā)光管狀態(tài)取反 } }} voidT0_time<>interrupt1{ TH0=<65535-5000>/256; //重裝初值 TL0=<65535-5000>%256;num++; //num加上1}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):中斷程序,控制1點(diǎn)0口燈的亮滅,時間間隔1s#defineucharunsignedchar#defineuintunsignedintsbitled1=P1^0; //聲明單片機(jī)P1口的第一位ucharnum;voidmain<>{ TMOD=0x01;//設(shè)置定時器0為工作方式1〔M1M0為01 TH0=<65535-50000>/256;//裝初值12.00M晶振定時50s數(shù)為50000 TL0=<65535-50000>%256; EA=1;// 開總中斷 ET0=1;//開定時器0中斷 TR0=1;//啟動定時器0 while<1>// 程序停止在這里等待中斷的發(fā)生{ if<num==20>//判斷一次是否到20 { num=0;//然后把num清0重新再計數(shù)20次 led1=~led1; //讓發(fā)光管狀態(tài)取反 } }} voidT0_time<>interrupt1{ TH0=<65535-50000>/256; //重裝初值 TL0=<65535-50000>%256;num++; //num加上1}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):中斷程序,控制蜂鳴器,加入蜂鳴器響,然后跳過#defineucharunsignedchar#defineuintunsignedintsbitled1=P1^0; //聲明單片機(jī)P1口的第一位ucharnum;voidmain<>{ TMOD=0x01;//設(shè)置定時器0為工作方式1〔M1M0為01 TH0=<65536-50000>/256;//裝初值12.00M晶振定時50s數(shù)為50000 TL0=<65536-50000>%256; EA=1;// 開總中斷 ET0=1;//開定時器0中斷 TR0=1;//啟動定時器0 while<1>;// 程序停止在這里等待中斷的發(fā)生if<num==20>//判斷一次是否到20 { num=0;//然后把num清0重新再計數(shù)20次 led1=~led1; //讓發(fā)光管狀態(tài)取反 }} voidT0_time<>interrupt1{ TH0=<65536-50000>/256; //重裝初值 TL0=<65536-50000>%256;num++; //num加上1}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):中斷程序,控制蜂鳴器,加入蜂鳴器響,然后跳過#defineucharunsignedchar#defineuintunsignedintsbitled1=P1^0; //聲明單片機(jī)P1口的第一位ucharnum;voidmain<>{ TMOD=0x01;//設(shè)置定時器0為工作方式1〔M1M0為01 TH0=<65536-50000>/256;//裝初值12.00M晶振定時50s數(shù)為50000 TL0=<65536-50000>%256; EA=1;// 開總中斷 ET0=1;//開定時器0中斷 TR0=1;//啟動定時器0 while<1>;// 程序停止在這里等待中斷的發(fā)生} voidT0_time<>interrupt1{ TH0=<65536-50000>/256; //重裝初值 TL0=<65536-50000>%256; num++; //num每加1次判斷一次是否到20次 if<num==20> { num=0;//然后把num清0重新再計數(shù)20次 led1=~led1; //讓發(fā)光管狀態(tài)取反 }}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽極數(shù)碼管,控制依次顯示0到9,數(shù)字間的時間間隔0.2418s;然后蜂鳴器響,時間間隔0.24182112;總循環(huán)時間2.63s一循環(huán)循環(huán)。后加停止程序#defineucharunsignedchar#defineuintunsignedintsbitdula=P1^7; //申明U1鎖存器鎖存端 段選sbitf=P0^0; //聲明單片機(jī)P0口的第一位ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90};voiddelayms<uint>;voidmain<> { while<1> { for<num=0;num<=9;num++> { f=0; //控制蜂鳴器的不響 dula=1; //打開U1鎖存端 P1=table[num]; //送入位選信號 dula=0; //關(guān)閉U1鎖存器 delayms<100>; //延時500毫秒約0.3秒 } f=1; //控制蜂鳴器響 delayms<100>; //延時500毫秒約0.3秒 while<1>; //程序停止到這里 }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽極數(shù)碼管,控制依次顯示0到9,數(shù)字間的時間間隔0.2418s;然后蜂鳴器響,時間間隔0.24182112;總循環(huán)時間2.63s一循環(huán)循環(huán)#defineucharunsignedchar#defineuintunsignedintsbitdula=P1^7; //申明U1鎖存器鎖存端 段選sbitf=P0; //聲明單片機(jī)P0口的第一位ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90};voiddelayms<uint>;voidmain<> { while<1> { for<num=0;num<=9;num++> { f=0; //控制蜂鳴器的不響 dula=1; //打開U1鎖存端 P1=table[num]; //送入位選信號 dula=0; //關(guān)閉U1鎖存器 delayms<100>; //延時500毫秒約0.3秒 } f=1; //控制蜂鳴器響 delayms<100>; //延時500毫秒約0.3秒 }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽極數(shù)碼管,控制依次顯示0到9,r然后蜂鳴器響,時間間隔0.3s;2.40秒一循環(huán)循環(huán)#defineucharunsignedchar#defineuintunsignedintsbitdula=P1^7; //申明U1鎖存器鎖存端 段選sbitf=P0; //聲明單片機(jī)P0口的第一位ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90};voiddelayms<uint>;voidmain<> { while<1> { for<num=0;num<=9;num++> { f=0; //控制蜂鳴器的不響 dula=1; //打開U1鎖存端 P1=table[num]; //送入位選信號 dula=0; //關(guān)閉U1鎖存器 delayms<100>; //延時500毫秒約0.3秒 } f=1; //控制蜂鳴器響 delayms<100>; //延時500毫秒約0.3秒 }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽極數(shù)碼管,控制依次顯示0到f,蜂鳴器響和停,時間間隔約0.5s;#defineucharunsignedchar#defineuintunsignedintsbitdula=P1^7; //申明U1鎖存器鎖存端 段選sbitf=P0; //聲明單片機(jī)P0口的第一位ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xcd,0xa1,0x86,0x8e};voiddelayms<uint>;voidmain<> { while<1> { for<num=0;num<16;num++> { f=1; //控制蜂鳴器的響 dula=1; //打開U1鎖存端 P1=table[num]; //送入位選信號 dula=0; //關(guān)閉U1鎖存器 f=0; //控制蜂鳴器的不響 delayms<100>; //延時500毫秒約0.3秒 } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽極數(shù)碼管,控制依次顯示0到f,蜂鳴器響和停,時間間隔約0.5s;#defineucharunsignedchar#defineuintunsignedintsbitdula=P1^7; //申明U1鎖存器鎖存端 段選sbitf=P0; //聲明單片機(jī)P0口的第一位,也就是三極管基級的位置單片機(jī)第39接口ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xcd,0xa1,0x86,0x8e};voiddelayms<uint>;voidmain<> { while<1> { for<num=0;num<16;num++> { dula=1; //打開U1鎖存端 P1=table[num]; //送入位選信號 dula=0; //關(guān)閉U1鎖存器 f=1; //控制蜂鳴器的響 delayms<100>; //延時500毫秒約0.3秒 f=0; //控制蜂鳴器的不響 delayms<100>; //延時500毫秒約0.3秒 } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽極數(shù)碼管,控制依次顯示0到f,時間間隔約0.4s#defineucharunsignedchar#defineuintunsignedintsbitdula=P1^7; //申明U1鎖存器鎖存端 段選ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xcd,0xa1,0x86,0x8e};voiddelayms<uint>;voidmain<> { while<1> { for<num=0;num<16;num++> { dula=1; //打開U1鎖存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 母豬健康跟蹤與數(shù)據(jù)利用研究試題及答案
- 系統(tǒng)架構(gòu)設(shè)計師考試評估模型試題及答案
- 護(hù)士資格證考試患者積極健康管理考題及答案
- 緊跟趨勢的2024文化產(chǎn)業(yè)管理考試試題及答案
- 美術(shù)史論嘗試題及答案大全
- 廣東建造師試題及答案
- 系統(tǒng)規(guī)劃與管理師復(fù)習(xí)中的知識點(diǎn)掌握要領(lǐng)試題及答案
- 藥品研發(fā)流程學(xué)習(xí)試題及答案
- 系統(tǒng)規(guī)劃與管理師考試流程解析試題及答案
- 推動護(hù)士資格證備考多元化的試題及答案
- 2024年江蘇事業(yè)單位真題下載
- 2024-2025學(xué)年江蘇省南京市竹山中學(xué)七年級下學(xué)期3月月考英語試題及答案
- 房地產(chǎn)行業(yè)未來走勢與機(jī)遇分析
- ISO27001:2022信息安全管理體系全套文件+表單
- 系統(tǒng)本地部署協(xié)議合同
- 2025年中國色度儀行業(yè)發(fā)展運(yùn)行現(xiàn)狀及投資策略研究報告
- 路基排水工程首件施工方案
- 上海市黃浦區(qū)2025屆高三高考二模地理試卷(含答案)
- 2025年淄博市光明電力服務(wù)有限責(zé)任公司招聘筆試參考題庫含答案解析
- 游樂場區(qū)塊鏈數(shù)據(jù)共享-全面剖析
- 2024年陜西省縣以下醫(yī)療衛(wèi)生機(jī)構(gòu)定向招聘考試真題
評論
0/150
提交評論