登录注册
华北水利水电大学 > 活动专区 > 浏览当前帖子 手机版 - 认证发帖 - 隐藏左侧栏
《中断程序编写》活动
返回本版】  【发表帖子】  【回复帖子 浏览量  602      回帖数 0
yangzi223    等级  瓶子

楼主 发表于  2017/11/20 14:28:54    编 辑   


活动时间:2018.5.5
活动地点:5103
活动人员:自协成员
活动目标:学习并掌握中断程序编写与运行原理

中断程序:
#include "reg52.h"//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include "intrins.h"
外部中断定时器c语言程序详解(1)
3
#define uint unsigned int
#define uchar unsigned char
外部中断定时器c语言程序详解(1)
4
uchar led,n,i,count=0;
uchar smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f
 ,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F
uchar sm[]={0x00,0x01};//数码管扫描
uchar str[2];//显示两位数码管
外部中断定时器c语言程序详解(1)
5
/******************************************************************/
/* 延时函数声明 */
/******************************************************************/
/*void mdelay(uint t)
{
 uchar n;
for(;t>0;t--)
for(n=0;n<125;n++)
 {;}
}*/
/*大约一毫秒的延时函数*/
void mdelay(uint t)
{
 uchar n;
while(t--)
{
for(n=0;n<123;n++)
 {;}
 } 
}
外部中断定时器c语言程序详解(1)
6
void main()
{
EA=1;//开总中断开关
EX0=1;//打开外部中断0
INT0=1;//触发方式为下降沿触发
TH0=0x3c;//设置初值
TL0=0xb0;
ET0=1;//打开定时器中断
TR0=1;//启动定时器
TMOD=0x01;//设置定时器0为工作方式1
外部中断定时器c语言程序详解(1)
7
while(1)
{
for(i=0;i<2;i++)//数码管显示数据
{
P1=0xff;
P2=sm[i];
P0=smg[str[i]];
mdelay(5);
}
}
}
外部中断定时器c语言程序详解(1)
8
void int0() interrupt 0
{
 uchar c; 
led=0xfe;
 P2=0x00;
for(c=0;c<8;c++)//流水灯循环一次
{
P1=led;
led=_crol_(led,1);//左移函数
mdelay(1000);
}
}
外部中断定时器c语言程序详解(1)
9
void time0() interrupt 1
{
TH0=0x3c;
TL0=0xb0;
count++;
 if(count==20)//延时一秒0-60显示
{
count=0;
str[0]=n/10;
str[1]=n%10;
n++;
if(n==60)
{
 n=0;
 }
 }
}
希望大家都能准时到场,认真学习
@华水社联



1
表情
所有内容均为会员自愿发表,并不代表本站立场.
©ncwu.unvst.com  Processed in 0.38