标题:
我的单片机基础设计 含源代码
[打印本页]
作者:
潘朵拉之心
时间:
2019-12-19 15:16
标题:
我的单片机基础设计 含源代码
利用定时
/
计数器
T1
产生定时时钟
,
由
P2
口控制
8
个发光二极管
,
使
8
个指示灯依次一个一个闪动,闪动频率为
10
次
/
秒
(8
个灯依次亮一遍为一个周期
)
,循环。晶振频率为
12MHz
。
利用定时/计数器T1产生定时时钟,由P2口控制8个发光二极管,使8个指示灯依次一个一个闪动,闪动频率为10次/秒(8个灯依次亮一遍为一个周期),循环。晶振频率为12MHz。
#include<reg51.h>
#include<intrins .h> //包含有左右循环移位子函数的库
#define uint unsigned int
#define uchar unsigned char
sbit S1=P1^0 ; //定义P1.0
uchar tt,a;
void main()
{ TMOD=0X10 ; //设置定时器1
TH1=(65536-50000)/256; //定时器初值
TL1=(65536-50000)%256;
EA=1; //开总中断
EX1=1 ; //开定时器1中断
TR1=1; //启动定时器1
a= 0XFE; //LED初始状态
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. 填空完成程序:在主程序中流水灯无限循环,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 ; //中断总开关
ET0=1 ; //开中断0开关。
ET1=1 ; //开中断1开关
IT1=0;
IT0=0;
}
void delay(uint z);
main()
{uch temp;
EA=1 ; //中断初始化
temp = 0XFE ; //初始状态
while(1)
{
P1=temp;
delay(500);
temp=_crol_(P1,1) ; //左移
}
}
void int_0(void)interrupt 0 //中断服务函数
{
P1=0X00 ; //led全亮
}
void int_1(void)interrupt 1 //中断服务函数
{
P1=0xfe ; //LED全灭
}
void delay(unsigned int z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1