


版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、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>#define uint unsigned int065536/ 無(wú)符號(hào)整型,占 16 位數(shù),表示范圍#define uchar unsigned char/ 無(wú)符號(hào)字符型占八位數(shù),表示范圍 0255void delayms(uint);uchar aa;/ 定
2、義變量void main()aa=0xfe;while(1)P2=aa;/ 控制單片機(jī)接口 p2, 循環(huán)亮delayms(500);燈一直亮滅,原因是視覺(jué)延遲/ 當(dāng) 500 換成 5,看起來(lái)全亮,實(shí)際上aa=_crol_(aa, 1);void delayms(uint xms) /子程序,延時(shí),通過(guò)數(shù)數(shù)uint i, 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>#d
3、efine uint unsigned int065536/ 無(wú)符號(hào)整型,占 16 位數(shù),表示范圍#define uchar unsigned char/ 無(wú)符號(hào)字符型占八位數(shù),表示范圍 0255void delayms(uint);uchar aa;/ 定義變量void main()aa=0xfe;while(1)P2=aa;/ 控制單片機(jī)接口 p2, 循環(huán)亮delayms(500); / 當(dāng) 500 換成 5 ,看起來(lái)全亮,實(shí)際上 燈一直亮滅,原因是視覺(jué)延遲aa=_crol_(aa, 1);void delayms(uint xms) / 子程序,延時(shí),通過(guò)數(shù)數(shù)uint i, j;for(
4、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)#define uchar unsigned char#define uint unsigned intsbit dula1=P1A7;/ 申明 U1 鎖存器鎖存端 段選sbit dula2=P0A7;/ 申明 U1 鎖存器鎖存端 段選uchar num,num1;uchar code table=/ 共陰極數(shù)碼管 0123456789abcde
5、f0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void delayms(uint) ;void main ()while(1)for(num1=0;num1<=5;num1+)for(num=0;num<=9;num+)dula2=1;/ 打開(kāi) U1 鎖存端P1=tablenum;/ 送入位選信號(hào)器dula2=0;/ 關(guān)閉 U1 鎖存500 毫秒約 0.3sdelayms(100);/ 延時(shí)dula1=1;/ 打開(kāi) U1 鎖存端P2=tablenum1;/ 送入位選信
6、號(hào)器dula1=0;/ 關(guān)閉 U1 鎖存500 毫秒約 0.3sdelayms(100);/ 延時(shí)void delayms (uint xms)uint x, y ;for (x=xms;x>0;x-)for (y=200;y>0;y-);/x=xms 即延時(shí)約為 xms 毫秒#include <reg52.h> /52 系列單片機(jī)頭文件 (目標(biāo):用單片機(jī)和兩個(gè)共陰極數(shù)碼 管)#define uchar unsigned char#define uint unsigned intsbit dula1=P1A7;sbit dula2=P2A7;uchar num,num1
7、;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;void delayms(uint) ;void main ()/ 申明 U1 鎖存器鎖存端段選/ 申明 U1 鎖存器鎖存端段選/ 共陰極數(shù)碼管 0123456789abcdefwhile(1)for(num1=0;num1<=9;num1+)dula1=1;/ 打開(kāi) U1 鎖存端0.3s器500 毫秒約 0.3svoid delayms (uint xms)uint x, y ;for (x
8、=xms;x>0;x-)P1=tablenum1;dula1=0;delayms(1000);/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存器/ 延時(shí) 500 毫秒約for(num=0;num<=9;num+)dula2=1;P1=tablenum;dula2=0;delayms(1000);/ 打開(kāi) U1 鎖存端/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存/ 延時(shí)/x=xms 即延時(shí)約為 xms 毫秒for (y=200;y>0;y-);有語(yǔ)法錯(cuò)誤#include <reg52.h> /52 系列單片機(jī)頭文件#define uchar unsigned char / 無(wú)符號(hào)字符型
9、占八位數(shù),表示范圍 0255#define uint unsigned int / 無(wú)符號(hào)整型,占 16 位數(shù),表示范圍sbit dula1=P1A6;/申明U1鎖存器鎖存端段選sbit dula2=P0A7;/申明U1鎖存器鎖存端段選uchar code table=0xc0,0xf9,0xa4, 0xb0,/ 共陽(yáng)極數(shù)字: 0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83, 0xcd,0xa1,0x86,0x8e;void delayms(uint) ;void display(uchar,uchar) ;uchar num,
10、num2,shi,ge;void main ()TMOD=Ox11;設(shè)置定時(shí)器0和1為工作方式1 (M1M0為01, 0001 00THO= (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í)器 0TR1=1;/ 啟動(dòng)定時(shí)器 1whil
11、e(1)/程序停止在這里不停的對(duì)數(shù)碼管動(dòng)態(tài)掃描同時(shí)等待中斷的發(fā)生display(shi,ge);P1=tableshi;/送入位選信號(hào)dula2=0;/關(guān)閉 U1 鎖存器delayms(1175);/ 延時(shí) 0.1 毫秒void delayms(uint xms) / 延時(shí)子程序/i=xms 即延時(shí)約為 xms 毫秒uint i,j;for (i=xms;i>0;i-) for (j=110;j>0;j-); void T1_time()interrupt 1TH1= (65536-50000)/256;/ 重裝初值TL1= (65536-50000)%256;num2+; /nu
12、m 每加 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ù)#include <reg52.h> /52 系列單片機(jī)頭文件 (目標(biāo):控制時(shí)間 24 小時(shí)一循環(huán))#define uchar unsigned char#define uint unsigned intsbit dula1=P1A7;/申明U1鎖存器鎖存端段選sbit dula2=P0A7;
13、/申明U1鎖存器鎖存端段選uchar num,num1,num2,num3,num4;uchar code table=0xc0,0xf9,0xa4, 0xb0,/ 共陽(yáng)極數(shù)字: 0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xcd,0xa1,0x86,0x8e;void delayms(uint) ;void main ()while(1)for(num3=0;num3<=23;num3+)/ 每天 24 小時(shí)進(jìn)位一for(num2=0;num2<=59;num2+)/ 每 60 分進(jìn)位一器0.1 毫秒/ 每
14、1s 進(jìn)位一打開(kāi)U1鎖存端/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存器/ 延時(shí) 0.1 毫秒P1=tablenum1; dula2=0;delayms(1175);/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存/ 延時(shí)for(num=0;num<=9;num+)dula2=1; /P1=tablenum;dula2=0;delayms(1000);void delayms (uint xms)uint x, y ;for (x=xms;x>0;x-)/x=xms 即延時(shí)約為 xms 毫秒for (y=110;y>0;y-);#include <reg52.h>/52 系列單片機(jī)頭
15、文件 (目標(biāo):控制時(shí)間 24 小時(shí)一循環(huán),蜂鳴器每過(guò)一段時(shí)間響一次)#define uchar unsigned char/ 申明 U1 鎖存器鎖存端/ 申明 U1 鎖存器鎖存端段選段選#define uint unsigned intsbit dula1=P1A7;sbit dula2=P2A7;sbit f=P0;/ 聲明單片機(jī) P0 口的第一位 ,也就是三極管基級(jí)的位置單片機(jī)第 39 接口uchar num,num1,num2,num3,num4;uchar code table=0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xcd,0xa1,0x
16、86,0x8e; void delayms(uint) ;void main ()while(1)for(num3=0;num3<=23;num3+)for(num2=0;num2<=59;num2+) 進(jìn)位一for(num4=0;num2<=59;num4+)/ 每天進(jìn)位一/ 每 60 分/ 每 60s 進(jìn)位一每 1ms 進(jìn)位一鎖存端選信號(hào)U1鎖存器f=0;/ 控制蜂鳴器的不響for(num=0;num<=9;num+) /dula2=1;/ 打開(kāi) U1P2=tablenum;/ 送入位dula2=0;/ 關(guān)閉delayms(1074);/ 延時(shí) 0.1 毫秒dela
17、yms(1000);void delayms (uint xms)uint x, 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í)間間隔 ,程序停止)#define uchar unsigned char#define uint unsigned intsbit dula1=P1A7;/ 申明 U1 鎖存器鎖存端段選sbit dula2=P2A7;/ 申明
18、U1 鎖存器鎖存端段選uchar num,num1;uchar code table=0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xcd,0xa1,0x86,0x8e;void delayms(uint) ;void main ()while(1)0.3sfor(num1=0;num1<6;num1+)dula1=1;P1=tablenum1;dula1=0;delayms(100);/ 打開(kāi) U1 鎖存端/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存器/ 延時(shí) 500 毫秒約for(num=0;num<=9;num+)dula2=1;P2=tablen
19、um;dula2=0;/ 打開(kāi) U1 鎖存端/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存器500 毫秒約 0.3sdelayms(100); / 延時(shí)void delayms (uint xms)uint x, y ;for (x=xms;x>0;x-)for (y=200;y>0;y-);/x=xms 即延時(shí)約為 xms 毫秒#include <reg52.h> /52 系列單片機(jī)頭文件 (目標(biāo):用單片機(jī)和兩個(gè)共陽(yáng)極數(shù)碼 管,控制依次顯示 0到 59,時(shí)間間隔約 0.5, 程序停止)#define uchar unsigned char#define uint unsigne
20、d intsbit dula1=P1A7;/申明 U1 鎖存器鎖存端段選sbit dula2=P2A7;/申明 U1 鎖存器鎖存端段選uchar num,num1;uchar code table=0xc0,0xf9,0xa4, 0xb0,/共陽(yáng)極數(shù)字: 0123456789abcdefg0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xcd,0xa1,0x86,0x8e;void delayms(uint) ;void main ()while(1)for(num=0;num1<6;num1+)0.3s器500 毫秒約 0.3svoid delay
21、ms (uint xms)/uint x, y ;for (x=xms;x>0;x-)P1=tablenum1;dula1=0;delayms(100);/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存器/ 延時(shí) 500 毫秒約for(num=0;num<=9;num+)dula2=1;P2=tablenum;dula2=0;delayms(100);/ 打開(kāi) U1 鎖存端/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存/ 延時(shí)延時(shí)子程序/x=xms 即延時(shí)約為 xms 毫秒for (y=300;y>0;y-);#include <reg52.h> /52 系列單片機(jī)頭文件 (目標(biāo):用單
22、片機(jī)和兩個(gè)共陽(yáng)極數(shù)碼 管,控制依次顯示 0到59,時(shí)間間隔約 0.5, 程序停止)#define uchar unsigned char#define uint unsigned intsbit dula1=P1A7;/申明 U1 鎖存器鎖存端段選sbit dula2=P2A7;/申明 U2 鎖存器鎖存端段選uchar num,num1;uchar code table=0xc0,0xf9,0xa4, 0xb0,/共陽(yáng)極數(shù)字: 0123456789abcdefg0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xcd,0xa1,0x86,0x8e;void
23、delayms(uint) ;void main ()while(1)for(num=0;num1<6;num1+)/ 打開(kāi) U1 鎖存端/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存器dula1=1;P1=tablenum1;dula1=0;delayms(100);/ 延時(shí) 500 毫秒約0.3sfor(num=0;num<=9;num+)器500 毫秒約 0.3svoid delayms (uint xms)uint x, y ;for (x=xms;x>0;x-)for (y=300;y>0;y-);P2=tablenum; dula2=0;delayms(100);/
24、送入位選信號(hào)/ 關(guān)閉 U1 鎖存/ 延時(shí)/x=xms 即延時(shí)約為 xms 毫秒#include <reg52.h> /52 系列單片機(jī)頭文件 (目標(biāo):用單片機(jī)和共陽(yáng)極數(shù)碼管, 控制依次顯示 0到 9,時(shí)間間隔約 0.5s ;)#define uchar unsigned char#define uint unsigned intsbit dula1=P1A7;/ 申明 U1 鎖存器鎖存端段選/ 申明 U2 鎖存器鎖存端段選/ 共陽(yáng)極數(shù)字: 0123456789abcdefgsbit dula2=P2A7;uchar num;uchar code table= 0xc0,0xf9,0
25、xa4, 0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xcd,0xa1,0x86,0x8e;void delayms(uint) ;void main ()while(1)for(num=0;num<10;num+)dula1=1;P1=tablenum; dula1=0;delayms(100);dula2=1;P2=tablenum; dula2=0;delayms(100);/ 打開(kāi) U1 鎖存端/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存器/ 延時(shí) 500 毫秒約 0.3/ 打開(kāi) U2 鎖存端/ 送入位選信號(hào)/ 關(guān)閉 U2 鎖存器/
26、延時(shí) 500 毫秒約 0.3void delayms (uint xms)/x=xms 即延時(shí)約為 xms 毫秒uint x, y ;for (x=xms;x>0;x-)for (y=300;y>0;y-);#include <reg52.h>一個(gè)燈管以200ms閃爍;用定時(shí)器/52 系列單片機(jī)頭文件 (目標(biāo):用定時(shí)器 0 的方式 1 實(shí)現(xiàn)第1 的方式 1 實(shí)現(xiàn)數(shù)碼管前兩位 59s 循環(huán)計(jì)時(shí))#define uchar unsigned char/ 無(wú)符號(hào)字符型占八位數(shù),表示范圍0255#define uint unsigned int /無(wú)符號(hào)整型,占 16 位數(shù),表
27、示范圍sbit dula=P2A6;/申明U1鎖存器鎖存端段選sbit wela=P2A7;/申明U2鎖存器鎖存位選sbit led1=P1A0;/ 申明燈 1點(diǎn) 0uchar code table=/ 共陰極數(shù)碼管 0123456789abcdef0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void delayms(uint) ;void display(uchar,uchar) ;uchar num,num1,num2,shi,ge;void main () TMOD=0x
28、01;設(shè)置定時(shí)器0和1為工作方式1 (M1M0為01, 0001 00 THO= (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í)器 0TR1=1;/ 啟動(dòng)定時(shí)器 1while(1)/程序停止在這里不停的對(duì)數(shù)碼管動(dòng)態(tài)掃描同時(shí)等待中斷的
29、發(fā)生display(shi,ge);void display (uchar shi,uchar ge)/ 控制數(shù)碼管dula=1;/ 打開(kāi) U1 鎖存端 段選P0=tableshi; /送入段選信號(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í)P0=tablege; / 送入段選信號(hào)dula=0;/ 關(guān)閉 U1 鎖存器P0=0xff;/ 送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開(kāi)位選鎖存器時(shí)wela=1;/ 原來(lái)的段選數(shù)據(jù)通過(guò)位
30、選鎖存器造成混亂P0=0xfe;/ 送位選數(shù)據(jù)wela=0;delayms(5); / 延時(shí) void delayms(uint xms) / 延時(shí)子程序uint i,j;for (i=xms;i>0;i-)/i=xms 即延時(shí)約為 xms 毫秒for (j=110;j>0;j-); void T0_time()interrupt 1TH0= (65536-50000)/256; / 重裝初值TL0= (65536-50000)%256;num+;if(num1=4) /num1 每加 1 次判斷一次是否到 4 次 , 時(shí)間間隔 200msnum1=0; / 然后把 num1 清
31、0 重新再計(jì)數(shù) 4 次 led1=led1; / 讓發(fā)光管狀態(tài)取反 void T1_time()interrupt 3TH1= (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 <re
32、g52.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í))/ 無(wú)符號(hào)字符型#define uchar unsigned char 占八位數(shù),表示范圍 0255#define uint unsigned int/ 無(wú)符號(hào)整型,占 16位數(shù),表示范圍sbit dula=P2A6;/申明U1鎖存器鎖存端段選sbit wela=P2A7;/申明U2鎖存器鎖存位選sbit led1=P1A0;/申明燈 1 點(diǎn) 0uchar code table=/ 共陰極數(shù)碼管 0123456789abcdef0x
33、3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void delayms(uint) ;void display(uchar,uchar) ;uchar num,num1,num2,shi,ge;void main ()TMOD=0x01; 設(shè)置定時(shí)器0和1為工作方式1 ( M1M(為01, 0001 0001 )TH0= (65535-50000)/256;/ 裝初值 12.00M 晶振定時(shí) 50s 數(shù)為 50000TL0= (65535-50000)%256;TH1= (65535-
34、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í)器 1 while(1)/ 程序停止在這里不停的對(duì)數(shù)碼管動(dòng)態(tài)掃描同時(shí)等待中斷的發(fā)生display(shi,ge);void display (uchar shi,uchar ge)/ 控制數(shù)碼管dula=1;/ 打開(kāi) U1 鎖存端 段選P0=tableshi; /送入段選信號(hào)dula=0;/ 關(guān)閉 U1 鎖存器P0=0xff;
35、/ 送位選數(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=tablege; /送入段選信號(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í)void delayms(uint xms) / 延時(shí)子程序uint i,j;for (i=xms;i>O
36、;i-)i=xms即延時(shí)約為 xms毫秒for (j=110;j>0;j-);#include <reg52.h>/52 系列單片機(jī)頭文件 (目標(biāo):中斷程序,控制 1 點(diǎn) 0 二極管10ms閃爍)#define uchar unsigned char#define uint unsigned intsbit led1=P1A0;II聲明單片機(jī) P1 口的第一位uchar num;void main ()TMOD=0x01;設(shè)置定時(shí)器0為工作方式1 (M1M(為01)THO= (65535-50000)/256;/ 裝初值 12.00M 晶振定時(shí) 50ms數(shù)為 50000 TL
37、0= (65535-50000)%256;EA=1;/ 開(kāi)總中斷ET0=1; / 開(kāi)定時(shí)器 0 中斷TR0=1;/ 啟動(dòng)定時(shí)器 0while(1)/ 程序停止在這里等待中斷的發(fā)生if(num=200)/ 判斷一次是否到 20num=0; /然后把num清0重新再計(jì)數(shù)20次 led1=led1; / 讓發(fā)光管狀態(tài)取反void T0_time()interrupt 1TH0= (65535-50000)/256;/ 重裝初值TL0= (65535-50000)%256;num+;/num 加上 1#include <reg52.h> /52 系列單片機(jī)頭文件 (目標(biāo):中斷程序,控制 1
38、 點(diǎn) 0 二極 管100ms閃爍,若num=10則0.05s閃爍,換句話控制 5000或者num都可以控制時(shí) 間。)#define uchar unsigned char#define uint unsigned intsbit led1=P1A0;II聲明單片機(jī) P1 口的第一位uchar num;void main ()TM0D=0x01;設(shè)置定時(shí)器0為工作方式1( M1M(為01)TH0= (65535-5000)/256;/ 裝初值 12.00M 晶振定時(shí) 50ms數(shù)為 50000TL0= (65535-5000)%256;EA=1;/ 開(kāi)總中斷ET0=1; / 開(kāi)定時(shí)器 0 中斷TR
39、0=1;/ 啟動(dòng)定時(shí)器 0while(1)/ 程序停止在這里等待中斷的發(fā)生if(num=20)/ 判斷一次是否到 20num=0; /然后把num清0重新再計(jì)數(shù)20次 led1=led1; / 讓發(fā)光管狀態(tài)取反void T0_time()interrupt 1TL0= (65535-5000)%256;num+; /num 加上 1 #include <reg52.h> /52 系列單片機(jī)頭文件 (目標(biāo):中斷程序,控制 1 點(diǎn) 0 口燈 的亮滅,時(shí)間間隔 1s)#define uchar unsigned char#define uint unsigned intsbit led1
40、=P1A0;II聲明單片機(jī) P1 口的第一位uchar num;void main ()TMOD=0x01;設(shè)置定時(shí)器0為工作方式1 (M1M(為01)THO= (65535-50000)/256;/ 裝初值 12.00M 晶振定時(shí) 50s 數(shù)為 50000TL0= (65535-50000)%256;EA=1;/ 開(kāi)總中斷ET0=1; / 開(kāi)定時(shí)器 0 中斷TR0=1;/ 啟動(dòng)定時(shí)器 0while(1)/ 程序停止在這里等待中斷的發(fā)生if(num=20)/ 判斷一次是否到 20num=0; / 然后把 num 清 0 重新再計(jì)數(shù) 20 次 led1=led1; / 讓發(fā)光管狀態(tài)取反void
41、T0_time()interrupt 1TH0= (65535-50000)/256; / 重裝初值TL0= (65535-50000)%256;num+; /num 加上 1#include <reg52.h> /52 系列單片機(jī)頭文件 (目標(biāo):中斷程序,控制蜂鳴器,加 入蜂鳴器響,然后跳過(guò))#define uchar unsigned char#define uint unsigned intsbit led1=P1A0;II聲明單片機(jī) P1 口的第一位uchar num;void main ()TMOD=0x01;設(shè)置定時(shí)器0為工作方式1 (M1M(為01)THO= (655
42、36-50000)/256;/ 裝初值 12.00M 晶振定時(shí) 50s 數(shù)為 50000TL0= (65536-50000)%256;EA=1;/ 開(kāi)總中斷ET0=1; / 開(kāi)定時(shí)器 0 中斷TR0=1;/ 啟動(dòng)定時(shí)器 0while(1);/程序停止在這里等待中斷的發(fā)生if(num=20)/ 判斷一次是否到 20num=0; / 然后把num清0重新再計(jì)數(shù)20次led1=led1; / 讓發(fā)光管狀態(tài)取反void T0_time()interrupt 1TH0= (65536-50000)/256;/ 重裝初值TL0= (65536-50000)%256;num+;/num 加上 1#inclu
43、de <reg52.h>/52 系列單片機(jī)頭文件 (目標(biāo):中斷程序,控制蜂鳴器,加入蜂鳴器響,然后跳過(guò))#define uchar unsigned char #define uint unsigned intsbit led1=P1A0;II聲明單片機(jī) P1 口的第一位uchar num;void main ()TMOD=0x01;設(shè)置定時(shí)器0為工作方式1 (M1M(為01)THO= (65536-50000)/256;/ 裝初值 12.00M 晶振定時(shí) 50s 數(shù)為 50000 TL0= (65536-50000)%256;EA=1;/ 開(kāi)總中斷ET0=1; / 開(kāi)定時(shí)器 0
44、中斷TR0=1;/ 啟動(dòng)定時(shí)器 0while(1);/ 程序停止在這里等待中斷的發(fā)生void T0_time()interrupt 1TH0= (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í)間間隔
45、0.24182112 ;總循環(huán)時(shí)間 2.63s 一循環(huán)循環(huán)。后加停止程序)#define uchar unsigned char#define uint unsigned intsbit dula=P1A7;/申明U1鎖存器鎖存端段選sbit f=P0A0;/聲明單片機(jī) P0 口的第一位uchar num;uchar code table=0xc0,0xf9,0xa4, 0xb0,/ 共陽(yáng)極數(shù)字: 0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90;void delayms(uint) ;void main ()while(1)for(num=0;nu
46、m<=9;num+)P1=tablenum; dula=0; delayms(100);/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存器/ 延時(shí) 500 毫秒約 0.3 秒/ 控制蜂鳴器響f=1;delayms(100);/ 延時(shí) 500 毫秒約 0.3 秒/ 程序停止到這里while(1) ;void delayms (uint xms)/x=xms 即延時(shí)約為 xms 毫秒uint x, y ;for (x=xms;x>0;x-)for (y=300;y>0;y-);#include <reg52.h> /52 系列單片機(jī)頭文件 (目標(biāo):用單片機(jī)和共陽(yáng)極數(shù)碼管, 控制依
47、次顯示 0到 9,數(shù)字間的時(shí)間間隔 0.2418s; 然后蜂鳴器響,時(shí)間間隔 0.24182112 ;總循環(huán)時(shí)間 2.63s 一循環(huán)循環(huán))#define uchar unsigned char#define uint unsigned intsbit dula=P1A7;/申明U1鎖存器鎖存端段選uchar num;/ 共陽(yáng)極數(shù)字: 0123456789abcdefguchar code table= 0xc0,0xf9,0xa4, 0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90;void delayms(uint) ;void main ()while(1)秒約 0
48、.3 秒f=1;delayms(100);for(num=0;num<=9;num+)f=0;dula=1;P1=tablenum;dula=0;delayms(100);/ 控制蜂鳴器響/ 控制蜂鳴器的不響/ 打開(kāi) U1 鎖存端/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存器/ 延時(shí) 500 毫延時(shí) 500 毫秒約 0.3 秒void delayms (uint xms)uint x, y ;for (x=xms;x>0;x-)/x=xms 即延時(shí)約為 xms 毫秒for (y=300;y>0;y-);#include <reg52.h> /52 系列單片機(jī)頭文件 (目標(biāo)
49、:用單片機(jī)和共陽(yáng)極數(shù)碼管, 控制依次顯示 0到 9,r 然后蜂鳴器響,時(shí)間間隔 0.3s ;2.40 秒一循環(huán)循環(huán))#define uchar unsigned char#define uint unsigned intsbit dula=P1A7;/申明U1鎖存器鎖存端段選sbit f=P0;/聲明單片機(jī) P0 口的第一位uchar num;uchar code table=0xc0,0xf9,0xa4, 0xb0,/ 共陽(yáng)極數(shù)字: 0123456789abcdefg0x99,0x92,0x82,0xf8,0x80,0x90;void delayms(uint) ;void main ()w
50、hile(1)for(num=0;num<=9;num+)f=0;/ 控制蜂鳴器的不響秒約 0.3 秒void delayms (uint xms)dula=1;P1=tablenum;dula=0;delayms(100);f=1; / 控制蜂鳴器響/ 打開(kāi) U1 鎖存端/ 送入位選信號(hào)/ 關(guān)閉 U1 鎖存器/ 延時(shí) 500 毫delayms(100);延時(shí) 500 毫秒約 0.3 秒uint x, 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 ;)#define uchar unsigned char#define uint unsigned intsbit dula=P1A7;/申明U1鎖存器鎖存端段選sbit f=P0;/聲明單片機(jī) P0 口的第一位uchar
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蓋房保險(xiǎn)合同范本
- 混凝土購(gòu)銷合同范本
- 藥店定點(diǎn)采購(gòu)合同范本
- 房屋大修合同范本
- 車輛信息咨詢合同范本
- 廣東云浮市云安區(qū)達(dá)標(biāo)名校2024屆中考數(shù)學(xué)模擬試卷含解析
- 非自動(dòng)化刨煤機(jī)行業(yè)直播電商戰(zhàn)略研究報(bào)告
- 農(nóng)村承包果園合同樣本
- 金屬制品設(shè)備行業(yè)直播電商戰(zhàn)略研究報(bào)告
- 出售工程潔具合同標(biāo)準(zhǔn)文本
- 梅克爾憩室護(hù)理查房課件
- 六年級(jí)數(shù)學(xué)下冊(cè)《連等式》專項(xiàng)練習(xí)
- 辦公室防火制度
- 好書(shū)推薦讀書(shū)分享名著導(dǎo)讀童年P(guān)PT
- 無(wú)錫諾宇醫(yī)藥科技有限公司生產(chǎn)、研發(fā)及銷售放射性藥物項(xiàng)目環(huán)境影響報(bào)告
- 計(jì)算機(jī)視覺(jué)40例從入門到深度學(xué)習(xí)OpenCV Python
- 鐵路基礎(chǔ)知識(shí)考試題庫(kù)500題(單選、多選、判斷)
- 07FK02 防空地下室通風(fēng)設(shè)備安裝
- GB/T 41888-2022船舶和海上技術(shù)船舶氣囊下水工藝
- LY/T 1882-2010林木組織培養(yǎng)育苗技術(shù)規(guī)程
- LY/T 1863-2009自然保護(hù)區(qū)生態(tài)旅游評(píng)價(jià)指標(biāo)
評(píng)論
0/150
提交評(píng)論