標(biāo)題:
我的單片機(jī)基礎(chǔ)設(shè)計 含源代碼
[打印本頁]
作者:
潘朵拉之心
時間:
2019-12-19 15:16
標(biāo)題:
我的單片機(jī)基礎(chǔ)設(shè)計 含源代碼
利用定時
/
計數(shù)器
T1
產(chǎn)生定時時鐘
,
由
P2
口控制
8
個發(fā)光二極管
,
使
8
個指示燈依次一個一個閃動,閃動頻率為
10
次
/
秒
(8
個燈依次亮一遍為一個周期
)
,循環(huán)。晶振頻率為
12MHz
。
利用定時/計數(shù)器T1產(chǎn)生定時時鐘,由P2口控制8個發(fā)光二極管,使8個指示燈依次一個一個閃動,閃動頻率為10次/秒(8個燈依次亮一遍為一個周期),循環(huán)。晶振頻率為12MHz。
#include<reg51.h>
#include<intrins .h> //包含有左右循環(huán)移位子函數(shù)的庫
#define uint unsigned int
#define uchar unsigned char
sbit S1=P1^0 ; //定義P1.0
uchar tt,a;
void main()
{ TMOD=0X10 ; //設(shè)置定時器1
TH1=(65536-50000)/256; //定時器初值
TL1=(65536-50000)%256;
EA=1; //開總中斷
EX1=1 ; //開定時器1中斷
TR1=1; //啟動定時器1
a= 0XFE; //LED初始狀態(tài)
while(1);
}
void timer0() interrupt 1// 定時器1中斷
{ TH1=(65536-50000)/256; //定時器初值
TL1=(65536-50000)%256;
tt++;
if(tt==2)
{ tt=0;
P1=a;
a= _crol_(P1,1); //LED移動
}
}
30. 填空完成程序:在主程序中流水燈無限循環(huán),INT0中斷時,P1口LED全亮,INT1中斷時P1口LED全滅。
#include <reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uch unsigned char
/* 中斷初始化*/
void init(void)
{ EA=0 ; //中斷總開關(guān)
ET0=1 ; //開中斷0開關(guān)。
ET1=1 ; //開中斷1開關(guān)
IT1=0;
IT0=0;
}
void delay(uint z);
main()
{uch temp;
EA=1 ; //中斷初始化
temp = 0XFE ; //初始狀態(tài)
while(1)
{
P1=temp;
delay(500);
temp=_crol_(P1,1) ; //左移
}
}
void int_0(void)interrupt 0 //中斷服務(wù)函數(shù)
{
P1=0X00 ; //led全亮
}
void int_1(void)interrupt 1 //中斷服務(wù)函數(shù)
{
P1=0xfe ; //LED全滅
}
void delay(unsigned int z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1