日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]實(shí)驗(yàn)一:定時(shí)器中斷閃燈程序:#define uchar unsigned char #define uint unsigned int #define ulong unsigned long#include //端口設(shè)置 sbit P10=P1^0;sbit K1=P3^2; char code dx516[3] _at_ 0x003b; //主

實(shí)驗(yàn)一:定時(shí)器中斷閃燈

程序:

#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

#include
//端口設(shè)置
sbit P10=P1^0;

sbit K1=P3^2;
char code dx516[3] _at_ 0x003b;
//主函數(shù)
void main(void)
{
TMOD=0x01; //設(shè)置定時(shí)器0工作再方式1
TR0=1;//啟動(dòng)定時(shí)器0,TR0必須置1
ET0=1;//開(kāi)定時(shí)器中斷
EA=1; //開(kāi)總中斷
while(1)//死循環(huán)
{
;
}
}
timer0() interrupt 1//定時(shí)器0工作再方式1
{TH0=0x00;//寫(xiě)入定時(shí)器初始值0x0005
TL0=0x01;
P10=~P10;//取反
}

實(shí)驗(yàn)二:精確定時(shí)1秒閃爍LED

程序:

//精確定時(shí)1秒閃爍LED
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

#include
//端口設(shè)置
sbit P10=P1^0;

sbit K1=P3^2;
char code dx516[3] _at_ 0x003b;//這是為了仿真設(shè)置
//主函數(shù)
void main(void)
{
RCAP2H=0x10;//賦T2的預(yù)初值為0x1000,溢出30次就是1秒
RCAP2L=0x00;
TR2=1;//啟動(dòng)定時(shí)器
ET2=1;//打開(kāi)定時(shí)器中斷2
EA=1; //開(kāi)總中斷
while(1)
{
;
}
}
//定時(shí)器2中斷
timer2() interrupt 5
{
static uchar t;
TF2=0;
t++;
if (t==10)
{
t=0;
P10=~P10;
}
}

實(shí)驗(yàn)三:用外中斷控制方式讀按鍵,控制燈的亮和滅

程序:

//用外中斷控制方式讀按鍵,控制燈的亮和滅
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

#include

sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit K1=P3^2;

bit light;
int i;


char code dx516[3] _at_ 0x003b;
//主函數(shù)
void main(void)
{
IT0=1;//外部中斷跳變產(chǎn)生中斷
EX0=1;//外部中斷0允許位
EA=1; //開(kāi)總中斷
while(1)
{
if (!K1)
{
for (i=0;i<10000;i++);
light=~light;
while (!K1);
for (i=0;i<10000;i++);
}
}
}
//外部中斷0
timer0() interrupt 0
{
P10=light;
}

實(shí)驗(yàn)四:模擬PWM輸出控制燈的10個(gè)亮度級(jí)別

程序:

//模擬PWM輸出控制燈的10個(gè)亮度級(jí)別
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

#include
//端口設(shè)置
sbit P10=P1^0;//要控制的LED燈
sbit K1=P3^2;//按鍵K1
uchar scale;//用于保存占空比的輸出0的時(shí)間分額,總共10份

char code dx516[3] _at_ 0x003b;
//主函數(shù)
void main(void)
{
uint i;

RCAP2H=0xF3;//賦T2的預(yù)置值,溢出1次是1/1200秒鐘
RCAP2L=0x98;
TR2=1;//啟動(dòng)定時(shí)器
ET2=1;//開(kāi)定時(shí)器中斷
EA=1; //打開(kāi)總中斷
while(1)
{
for (i=0;i<50000;i++);//延時(shí)
scale++;//亮度自動(dòng)加
if (scale==10)//加到10清零
scale=0;

}
}
timer2() interrupt 5
{
static uchar tt;//用來(lái)保存當(dāng)前時(shí)間在1秒鐘的比例位置
TF2=0;
tt++;
if (tt==10)//每1/120秒輸出低電平
{ tt=0;
if (scale!=0)//消除滅燈產(chǎn)生的幻影
P10=0;
}
if (scale==tt)//按照當(dāng)前比例切換輸出電平
P10=1;
}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉