版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
..51單片機(jī)常見(jiàn)程序附帶注釋三位數(shù)分離成3個(gè)一位數(shù),截取bai=num/100;//輸出百位數(shù)shi=num%100/10;//輸出十位數(shù)ge=num/10;//輸出個(gè)位數(shù)#include<reg52.h> //跑馬燈程序。當(dāng)時(shí)間約為20ms,形成動(dòng)態(tài)掃描,看上去全亮。#include<intrins.h>#defineuintunsignedint //無(wú)符號(hào)整型,占16位數(shù),表示范圍0~65536#defineucharunsignedchar //無(wú)符號(hào)字符型占八位數(shù),表示范圍0~255voiddelayms<uint>;ucharaa; //定義變量voidmain<>{ aa=0xfe; while<1> { P2=aa; //控制單片機(jī)接口p2,循環(huán)亮 delayms<500>; //當(dāng)500換成5,看起來(lái)全亮,實(shí)際上燈一直亮滅,原因是視覺(jué)延遲 aa=_crol_<aa,1>; }}voiddelayms<uintxms> //子程序,延時(shí),通過(guò)數(shù)數(shù){ uinti,j; for<i=xms;i>0;i--> for<j=110;j>0;j-->;}#include<reg52.h> //跑馬燈程序?,F(xiàn)在時(shí)間較長(zhǎng),多以是亮滅的流動(dòng),當(dāng)時(shí)間約為20ms,形成動(dòng)態(tài)掃描,看上去全亮。#include<intrins.h>#defineuintunsignedint //無(wú)符號(hào)整型,占16位數(shù),表示范圍0~65536#defineucharunsignedchar //無(wú)符號(hào)字符型占八位數(shù),表示范圍0~255voiddelayms<uint>;ucharaa; //定義變量voidmain<>{ aa=0xfe; while<1> { P2=aa; //控制單片機(jī)接口p2,循環(huán)亮 delayms<500>; //當(dāng)500換成5,看起來(lái)全亮,實(shí)際上燈一直亮滅,原因是視覺(jué)延遲 aa=_crol_<aa,1>; }}voiddelayms<uintxms> //子程序,延時(shí),通過(guò)數(shù)數(shù){ uinti,j; for<i=xms;i>0;i--> for<j=110;j>0;j-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和兩個(gè)共陰極數(shù)碼管:使用單片機(jī)的引腳1和2,控制兩個(gè)數(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; //打開(kāi)U1鎖存端 P1=table[num]; //送入位選信號(hào) dula2=0; //關(guān)閉U1鎖存器 delayms<100>; //延時(shí)500毫秒約0.3s dula1=1; //打開(kāi)U1鎖存端 P2=table[num1]; //送入位選信號(hào) dula1=0; //關(guān)閉U1鎖存器 delayms<100>; //延時(shí)500毫秒約0.3s } } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=200;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和兩個(gè)共陰極數(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; //打開(kāi)U1鎖存端 P1=table[num1]; //送入位選信號(hào) dula1=0; //關(guān)閉U1鎖存器 delayms<1000>; //延時(shí)500毫秒約0.3s for<num=0;num<=9;num++> { dula2=1; //打開(kāi)U1鎖存端 P1=table[num]; //送入位選信號(hào) dula2=0; //關(guān)閉U1鎖存器 delayms<1000>; //延時(shí)500毫秒約0.3s } } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=200;y>0;y-->;}有語(yǔ)法錯(cuò)誤#include<reg52.h> //52系列單片機(jī)頭文件#defineucharunsignedchar //無(wú)符號(hào)字符型占八位數(shù),表示范圍0~255#defineuintunsignedint //無(wú)符號(hào)整型,占16位數(shù),表示范圍sbitdula1=P1^6; //申明U1鎖存器鎖存端 段選sbitdula2=P0^7; //申明U1鎖存器鎖存端 段選ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(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è)置定時(shí)器0和1為工作方式1〔M1M0為01,000100TH0=<65535-50000>/256;//裝初值12.00M晶振定時(shí)50s數(shù)為50000TL0=<65535-50000>%256;TH1=<65535-50000>/256;//裝初值12.00M晶振定時(shí)50s數(shù)為50000TL1=<65535-50000>%256;EA=1;// 開(kāi)總中斷ET0=1;//開(kāi)定時(shí)器0中斷ET1=1;//開(kāi)定時(shí)器1中斷TR0=1;//啟動(dòng)定時(shí)器0TR1=1;//啟動(dòng)定時(shí)器1while<1>// 程序停止在這里不停的對(duì)數(shù)碼管動(dòng)態(tài)掃描同時(shí)等待中斷的發(fā)生{ display<shi,ge>; dula2=1; //打開(kāi)U1鎖存端 P1=table[shi]; //送入位選信號(hào) dula2=0; //關(guān)閉U1鎖存器 delayms<1175>; //延時(shí)0.1毫秒}}voiddelayms<uintxms> //延時(shí)子程序{ uinti,j; for<i=xms;i>0;i--> //i=xms即延時(shí)約為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重新再計(jì)數(shù)20次 num++; if<num==60> //這個(gè)數(shù)用來(lái)送數(shù)碼管顯示,到60后歸0 num=0; shi=num/10; //把一個(gè)2位數(shù)分離后分別送數(shù)碼管顯示,十位數(shù) ge=num%10; //個(gè)位數(shù) }#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):控制時(shí)間24小時(shí)一循環(huán)#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P0^7; //申明U1鎖存器鎖存端 段選ucharnum,num1,num2,num3,num4;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(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小時(shí)進(jìn)位一 { for<num2=0;num2<=59;num2++> //每60分進(jìn)位一 { for<num1=0;num1<=5;num1++>//每6*10s進(jìn)位一 { dula2=1; //打開(kāi)U1鎖存端 P1=table[num1]; //送入位選信號(hào) dula2=0; //關(guān)閉U1鎖存器 delayms<1175>; //延時(shí)0.1毫秒 for<num=0;num<=9;num++> //每1s進(jìn)位一 { dula2=1; //打開(kāi)U1鎖存端 P1=table[num]; //送入位選信號(hào) dula2=0; //關(guān)閉U1鎖存器 delayms<1000>; //延時(shí)0.1毫秒 } } } } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=110;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):控制時(shí)間24小時(shí)一循環(huán),蜂鳴器每過(guò)一段時(shí)間響一次#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P2^7; //申明U1鎖存器鎖存端 段選sbitf=P0; //聲明單片機(jī)P0口的第一位,也就是三極管基級(jí)的位置單片機(jī)第39接口ucharnum,num1,num2,num3,num4;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(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; //打開(kāi)U1鎖存端 P2=table[num]; //送入位選信號(hào) dula2=0; //關(guān)閉U1鎖存器 delayms<1074>; //延時(shí)0.1毫秒 } f=1; //控制蜂鳴器的響 delayms<1000>; } } } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=10;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和兩個(gè)共陽(yáng)極數(shù)碼管,控制依次顯示0到59,然后循環(huán),有合適的時(shí)間間隔,程序停止#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P2^7; //申明U1鎖存器鎖存端 段選ucharnum,num1;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(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; //打開(kāi)U1鎖存端 P1=table[num1]; //送入位選信號(hào) dula1=0; //關(guān)閉U1鎖存器 delayms<100>; //延時(shí)500毫秒約0.3s for<num=0;num<=9;num++> { dula2=1; //打開(kāi)U1鎖存端 P2=table[num]; //送入位選信號(hào) dula2=0; //關(guān)閉U1鎖存器 delayms<100>; //延時(shí)500毫秒約0.3s } } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=200;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和兩個(gè)共陽(yáng)極數(shù)碼管,控制依次顯示0到59,時(shí)間間隔約0.5,程序停止#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P2^7; //申明U1鎖存器鎖存端 段選ucharnum,num1;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(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; //打開(kāi)U1鎖存端 P1=table[num1]; //送入位選信號(hào) dula1=0; //關(guān)閉U1鎖存器 delayms<100>; //延時(shí)500毫秒約0.3s for<num=0;num<=9;num++> { dula2=1; //打開(kāi)U1鎖存端 P2=table[num]; //送入位選信號(hào) dula2=0; //關(guān)閉U1鎖存器 delayms<100>; //延時(shí)500毫秒約0.3s } } }}voiddelayms<uintxms>//延時(shí)子程序{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和兩個(gè)共陽(yáng)極數(shù)碼管,控制依次顯示0到59,時(shí)間間隔約0.5,程序停止#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P2^7; //申明U2鎖存器鎖存端 段選ucharnum,num1;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(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; //打開(kāi)U1鎖存端 P1=table[num1]; //送入位選信號(hào) dula1=0; //關(guān)閉U1鎖存器 delayms<100>; //延時(shí)500毫秒約0.3s for<num=0;num<=9;num++> { dula2=1; //打開(kāi)U2鎖存端 P2=table[num]; //送入位選信號(hào) dula2=0; //關(guān)閉U1鎖存器 delayms<100>; //延時(shí)500毫秒約0.3s } } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽(yáng)極數(shù)碼管,控制依次顯示0到9,時(shí)間間隔約0.5s;#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7; //申明U1鎖存器鎖存端 段選sbitdula2=P2^7; //申明U2鎖存器鎖存端 段選ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(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; //打開(kāi)U1鎖存端 P1=table[num]; //送入位選信號(hào) dula1=0; //關(guān)閉U1鎖存器 delayms<100>; //延時(shí)500毫秒約0.3秒 dula2=1; //打開(kāi)U2鎖存端 P2=table[num]; //送入位選信號(hào) dula2=0; //關(guān)閉U2鎖存器 delayms<100>; //延時(shí)500毫秒約0.3秒 } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用定時(shí)器0的方式1實(shí)現(xiàn)第一個(gè)燈管以200ms閃爍;用定時(shí)器1的方式1實(shí)現(xiàn)數(shù)碼管前兩位59s循環(huán)計(jì)時(shí)#defineucharunsignedchar //無(wú)符號(hào)字符型占八位數(shù),表示范圍0~255#defineuintunsignedint //無(wú)符號(hào)整型,占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è)置定時(shí)器0和1為工作方式1〔M1M0為01,000100TH0=<65535-50000>/256;//裝初值12.00M晶振定時(shí)50s數(shù)為50000TL0=<65535-50000>%256;TH1=<65535-50000>/256;//裝初值12.00M晶振定時(shí)50s數(shù)為50000TL1=<65535-50000>%256;EA=1;// 開(kāi)總中斷ET0=1;//開(kāi)定時(shí)器0中斷ET1=1;//開(kāi)定時(shí)器1中斷TR0=1;//啟動(dòng)定時(shí)器0TR1=1;//啟動(dòng)定時(shí)器1while<1>// 程序停止在這里不停的對(duì)數(shù)碼管動(dòng)態(tài)掃描同時(shí)等待中斷的發(fā)生{display<shi,ge>;}}voiddisplay<ucharshi,ucharge> //控制數(shù)碼管{dula=1; //打開(kāi)U1鎖存端段選P0=table[shi];//送入段選信號(hào)dula=0; //關(guān)閉U1鎖存器P0=0xff; //送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開(kāi)位選鎖存器時(shí)wela=1; //原來(lái)的段選數(shù)據(jù)通過(guò)位選鎖存器造成混亂P0=0xfe; //送位選數(shù)據(jù)wela=0;delayms<5>; //延時(shí)dula=1; //打開(kāi)U1鎖存端段選P0=table[ge];//送入段選信號(hào)dula=0; //關(guān)閉U1鎖存器P0=0xff; //送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開(kāi)位選鎖存器時(shí)wela=1; //原來(lái)的段選數(shù)據(jù)通過(guò)位選鎖存器造成混亂P0=0xfe; //送位選數(shù)據(jù)wela=0;delayms<5>; //延時(shí)}voiddelayms<uintxms> //延時(shí)子程序{uinti,j;for<i=xms;i>0;i--> //i=xms即延時(shí)約為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次,時(shí)間間隔200ms{num1=0;//然后把num1清0重新再計(jì)數(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重新再計(jì)數(shù)20次num++;if<num==60> //這個(gè)數(shù)用來(lái)送數(shù)碼管顯示,到60后歸0num=0;shi=num/10; //把一個(gè)2位數(shù)分離后分別送數(shù)碼管顯示,十位數(shù)ge=num%10; //個(gè)位數(shù)}}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用定時(shí)器0的方式1實(shí)現(xiàn)第一個(gè)燈管以200ms閃爍;用定時(shí)器1的方式1實(shí)現(xiàn)數(shù)碼管前兩位59s循環(huán)計(jì)時(shí)#defineucharunsignedchar //無(wú)符號(hào)字符型占八位數(shù),表示范圍0~255#defineuintunsignedint //無(wú)符號(hào)整型,占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è)置定時(shí)器0和1為工作方式1〔M1M0為01,00010001 TH0=<65535-50000>/256;//裝初值12.00M晶振定時(shí)50s數(shù)為50000 TL0=<65535-50000>%256; TH1=<65535-50000>/256;//裝初值12.00M晶振定時(shí)50s數(shù)為50000 TL1=<65535-50000>%256; EA=1;// 開(kāi)總中斷 ET0=1;//開(kāi)定時(shí)器0中斷 ET1=1;//開(kāi)定時(shí)器1中斷 TR0=1;//啟動(dòng)定時(shí)器0 TR1=1;//啟動(dòng)定時(shí)器1 while<1>// 程序停止在這里不停的對(duì)數(shù)碼管動(dòng)態(tài)掃描同時(shí)等待中斷的發(fā)生{ display<shi,ge>; }}voiddisplay<ucharshi,ucharge> //控制數(shù)碼管{ dula=1; //打開(kāi)U1鎖存端段選 P0=table[shi];//送入段選信號(hào) dula=0; //關(guān)閉U1鎖存器 P0=0xff; //送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開(kāi)位選鎖存器時(shí) wela=1; //原來(lái)的段選數(shù)據(jù)通過(guò)位選鎖存器造成混亂 P0=0xfe; //送位選數(shù)據(jù) wela=0; delayms<5>; //延時(shí) dula=1; //打開(kāi)U1鎖存端段選 P0=table[ge];//送入段選信號(hào) dula=0; //關(guān)閉U1鎖存器 P0=0xff; //送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開(kāi)位選鎖存器時(shí) wela=1; //原來(lái)的段選數(shù)據(jù)通過(guò)位選鎖存器造成混亂 P0=0xfe; //送位選數(shù)據(jù) wela=0; delayms<5>; //延時(shí)}voiddelayms<uintxms> //延時(shí)子程序{ uinti,j; for<i=xms;i>0;i--> //i=xms即延時(shí)約為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è)置定時(shí)器0為工作方式1〔M1M0為01 TH0=<65535-50000>/256;//裝初值12.00M晶振定時(shí)50ms數(shù)為50000 TL0=<65535-50000>%256; EA=1;// 開(kāi)總中斷 ET0=1;//開(kāi)定時(shí)器0中斷 TR0=1;//啟動(dòng)定時(shí)器0 while<1>// 程序停止在這里等待中斷的發(fā)生{ if<num==200>//判斷一次是否到20 { num=0;//然后把num清0重新再計(jì)數(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都可以控制時(shí)間。#defineucharunsignedchar#defineuintunsignedintsbitled1=P1^0; //聲明單片機(jī)P1口的第一位ucharnum;voidmain<>{ TMOD=0x01;//設(shè)置定時(shí)器0為工作方式1〔M1M0為01 TH0=<65535-5000>/256;//裝初值12.00M晶振定時(shí)50ms數(shù)為50000 TL0=<65535-5000>%256; EA=1;// 開(kāi)總中斷 ET0=1;//開(kāi)定時(shí)器0中斷 TR0=1;//啟動(dòng)定時(shí)器0 while<1>// 程序停止在這里等待中斷的發(fā)生{ if<num==20>//判斷一次是否到20 { num=0;//然后把num清0重新再計(jì)數(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口燈的亮滅,時(shí)間間隔1s#defineucharunsignedchar#defineuintunsignedintsbitled1=P1^0; //聲明單片機(jī)P1口的第一位ucharnum;voidmain<>{ TMOD=0x01;//設(shè)置定時(shí)器0為工作方式1〔M1M0為01 TH0=<65535-50000>/256;//裝初值12.00M晶振定時(shí)50s數(shù)為50000 TL0=<65535-50000>%256; EA=1;// 開(kāi)總中斷 ET0=1;//開(kāi)定時(shí)器0中斷 TR0=1;//啟動(dòng)定時(shí)器0 while<1>// 程序停止在這里等待中斷的發(fā)生{ if<num==20>//判斷一次是否到20 { num=0;//然后把num清0重新再計(jì)數(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):中斷程序,控制蜂鳴器,加入蜂鳴器響,然后跳過(guò)#defineucharunsignedchar#defineuintunsignedintsbitled1=P1^0; //聲明單片機(jī)P1口的第一位ucharnum;voidmain<>{ TMOD=0x01;//設(shè)置定時(shí)器0為工作方式1〔M1M0為01 TH0=<65536-50000>/256;//裝初值12.00M晶振定時(shí)50s數(shù)為50000 TL0=<65536-50000>%256; EA=1;// 開(kāi)總中斷 ET0=1;//開(kāi)定時(shí)器0中斷 TR0=1;//啟動(dòng)定時(shí)器0 while<1>;// 程序停止在這里等待中斷的發(fā)生if<num==20>//判斷一次是否到20 { num=0;//然后把num清0重新再計(jì)數(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):中斷程序,控制蜂鳴器,加入蜂鳴器響,然后跳過(guò)#defineucharunsignedchar#defineuintunsignedintsbitled1=P1^0; //聲明單片機(jī)P1口的第一位ucharnum;voidmain<>{ TMOD=0x01;//設(shè)置定時(shí)器0為工作方式1〔M1M0為01 TH0=<65536-50000>/256;//裝初值12.00M晶振定時(shí)50s數(shù)為50000 TL0=<65536-50000>%256; EA=1;// 開(kāi)總中斷 ET0=1;//開(kāi)定時(shí)器0中斷 TR0=1;//啟動(dòng)定時(shí)器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重新再計(jì)數(shù)20次 led1=~led1; //讓發(fā)光管狀態(tài)取反 }}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽(yáng)極數(shù)碼管,控制依次顯示0到9,數(shù)字間的時(shí)間間隔0.2418s;然后蜂鳴器響,時(shí)間間隔0.24182112;總循環(huán)時(shí)間2.63s一循環(huán)循環(huán)。后加停止程序#defineucharunsignedchar#defineuintunsignedintsbitdula=P1^7; //申明U1鎖存器鎖存端 段選sbitf=P0^0; //聲明單片機(jī)P0口的第一位ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90};voiddelayms<uint>;voidmain<> { while<1> { for<num=0;num<=9;num++> { f=0; //控制蜂鳴器的不響 dula=1; //打開(kāi)U1鎖存端 P1=table[num]; //送入位選信號(hào) dula=0; //關(guān)閉U1鎖存器 delayms<100>; //延時(shí)500毫秒約0.3秒 } f=1; //控制蜂鳴器響 delayms<100>; //延時(shí)500毫秒約0.3秒 while<1>; //程序停止到這里 }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽(yáng)極數(shù)碼管,控制依次顯示0到9,數(shù)字間的時(shí)間間隔0.2418s;然后蜂鳴器響,時(shí)間間隔0.24182112;總循環(huán)時(shí)間2.63s一循環(huán)循環(huán)#defineucharunsignedchar#defineuintunsignedintsbitdula=P1^7; //申明U1鎖存器鎖存端 段選sbitf=P0; //聲明單片機(jī)P0口的第一位ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90};voiddelayms<uint>;voidmain<> { while<1> { for<num=0;num<=9;num++> { f=0; //控制蜂鳴器的不響 dula=1; //打開(kāi)U1鎖存端 P1=table[num]; //送入位選信號(hào) dula=0; //關(guān)閉U1鎖存器 delayms<100>; //延時(shí)500毫秒約0.3秒 } f=1; //控制蜂鳴器響 delayms<100>; //延時(shí)500毫秒約0.3秒 }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽(yáng)極數(shù)碼管,控制依次顯示0到9,r然后蜂鳴器響,時(shí)間間隔0.3s;2.40秒一循環(huán)循環(huán)#defineucharunsignedchar#defineuintunsignedintsbitdula=P1^7; //申明U1鎖存器鎖存端 段選sbitf=P0; //聲明單片機(jī)P0口的第一位ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(shù)字:0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90};voiddelayms<uint>;voidmain<> { while<1> { for<num=0;num<=9;num++> { f=0; //控制蜂鳴器的不響 dula=1; //打開(kāi)U1鎖存端 P1=table[num]; //送入位選信號(hào) dula=0; //關(guān)閉U1鎖存器 delayms<100>; //延時(shí)500毫秒約0.3秒 } f=1; //控制蜂鳴器響 delayms<100>; //延時(shí)500毫秒約0.3秒 }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽(yáng)極數(shù)碼管,控制依次顯示0到f,蜂鳴器響和停,時(shí)間間隔約0.5s;#defineucharunsignedchar#defineuintunsignedintsbitdula=P1^7; //申明U1鎖存器鎖存端 段選sbitf=P0; //聲明單片機(jī)P0口的第一位ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(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; //打開(kāi)U1鎖存端 P1=table[num]; //送入位選信號(hào) dula=0; //關(guān)閉U1鎖存器 f=0; //控制蜂鳴器的不響 delayms<100>; //延時(shí)500毫秒約0.3秒 } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽(yáng)極數(shù)碼管,控制依次顯示0到f,蜂鳴器響和停,時(shí)間間隔約0.5s;#defineucharunsignedchar#defineuintunsignedintsbitdula=P1^7; //申明U1鎖存器鎖存端 段選sbitf=P0; //聲明單片機(jī)P0口的第一位,也就是三極管基級(jí)的位置單片機(jī)第39接口ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(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; //打開(kāi)U1鎖存端 P1=table[num]; //送入位選信號(hào) dula=0; //關(guān)閉U1鎖存器 f=1; //控制蜂鳴器的響 delayms<100>; //延時(shí)500毫秒約0.3秒 f=0; //控制蜂鳴器的不響 delayms<100>; //延時(shí)500毫秒約0.3秒 } }}voiddelayms<uintxms>{ uintx,y; for<x=xms;x>0;x--> //x=xms即延時(shí)約為xms毫秒 for<y=300;y>0;y-->;}#include<reg52.h> //52系列單片機(jī)頭文件〔目標(biāo):用單片機(jī)和共陽(yáng)極數(shù)碼管,控制依次顯示0到f,時(shí)間間隔約0.4s#defineucharunsignedchar#defineuintunsignedintsbitdula=P1^7; //申明U1鎖存器鎖存端 段選ucharnum;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0, //共陽(yáng)極數(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; //打開(kāi)U1鎖存
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 5.3 人體內(nèi)物質(zhì)的運(yùn)輸
- 辦公場(chǎng)所與設(shè)施維護(hù)管理制度
- 企業(yè)商標(biāo)管理制度
- 急救醫(yī)療流程規(guī)范制度
- 算法設(shè)計(jì)與分析 課件 10.3.3-綜合應(yīng)用-最短路徑問(wèn)題-貝爾曼福特算法
- 2024年來(lái)賓道路客運(yùn)從業(yè)資格證考試模擬試題
- 2024年西安客運(yùn)從業(yè)資格證考試考什么題型
- 2024年杭州客運(yùn)急救知識(shí)
- 2024年重慶客運(yùn)從業(yè)資格證實(shí)際操作試題答案解析
- 吉林藝術(shù)學(xué)院《中外動(dòng)畫(huà)史》2021-2022學(xué)年第一學(xué)期期末試卷
- 離婚登記申請(qǐng)受理回執(zhí)單
- 華北電網(wǎng)調(diào)度管理規(guī)程
- 中醫(yī)感冒辨證施治課件
- 污水處理站施工組織設(shè)計(jì)-完整版
- 經(jīng)濟(jì)日用文書(shū)-條據(jù)告啟
- 鏟車(chē)考試題庫(kù)
- 2022年上海市徐匯區(qū)中考一模英語(yǔ)試題(含詳細(xì)解析和答案)
- 世界問(wèn)候日介紹你的問(wèn)候溫暖著這個(gè)世界禮貌禮儀打招呼優(yōu)秀課件兩篇
- 2022年公務(wù)員聯(lián)考公安專(zhuān)業(yè)科目真題與答案
- 防靜電標(biāo)準(zhǔn)規(guī)范
- 醫(yī)護(hù)人員個(gè)人防護(hù)和手衛(wèi)生的重要性
評(píng)論
0/150
提交評(píng)論