|
登录注册 |
☦ 华北水利水电大学 > 活动专区 > 浏览当前帖子 | 手机版 - 认证发帖 - 隐藏左侧栏 |
《中断程序编写》活动 | |
【返回本版】 【发表帖子】 【回复帖子】 | 浏览量 603 回帖数 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 |