/**************************************************************** 外部晶振8M PA0~3:四位数码管的位选 PB0~7:数码管的8位段选 外部中断0用于计数 定时器0溢出中断的定时为1ms 说明 :检测到水流较小时,继电器延时1秒关闭 ******************************************************************/ #include<iom16v.h> #include<macros.h> #define uchar unsigned char #define uint unsigned int char led_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //数码管段选 char position[4]={0xfe,0xfd,0xfb,0xf7};//数码管位选 uint sumnum=0; //用于记录1000ms内进入中断的次数 uint time=0; //记录进入比较定时器0的次数 uint num=0; //记录1ms内进入中断的次数 uint count=0; //进入外部中断0的次数 uchar flag; uint sumnum1; //记录100ms内的数目 /***************************函数声明***************************/ void delay(); void display(uint m ); void init(); void init_0(); void init_2(); void _delay_us(uint l) { unsigned int i; for(i=0;i<l;i++) { asm("nop"); } } /**************************主函数***********************************/ void main() { init(); init_0(); init_2(); while(sumnum<5) { PORTD=0XBF; segdisplay(sumnum1); } while(1) { segdisplay(sumnum1); } } /*************************扫描数码管时的延时函数*********************/ void delay() { uchar i,j; for(i=6;i>0;i--) for(j=225;j>0;j--); } /************************数码管显示函数*****************************/ void segdisplay( int temp) { int seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int temp1,temp2,temp3,temp4; temp1=temp/1000; temp2=(temp/100)%10; temp3=(temp/10)%10; temp4=temp%10; DDRB=0xff; DDRA|=0x0f; PORTA=~BIT(3); PORTB=seg[temp1]; _delay_us(100); PORTA=~BIT(2); PORTB=seg[temp2]; _delay_us(100); PORTA=~BIT(1); PORTB=seg[temp3]; _delay_us(100); PORTA=~BIT(0); PORTB=seg[temp4]; _delay_us(100); } /***********************管脚初始化函数*********************/ void init() { DDRD|=0X40; //PD4 设置为输出 PORTD=0XBF; DDRA=0XFF; DDRB=0XFF; PORTA=0XFF; PORTB=0XFF; } /***********************外部中断0初始化*********************/ void init_0() { MCUCR=0X02; //INT0为下降沿触发 GICR=0X40; //使能INT0中断 SREG=0X80; //使能总中断 } /**********************定时器2初始化***********************/ void init_2() { TCCR0=0x03; // 内部时钟,64 分频(8M/64=125KHz) TCNT0=0x83; //装初值 TIMSK=0x01; // 允许 T/C0溢出中断中断 } /***********************外部中断0子函数********************/ #pragma interrupt_handler int0_isr:2 void int0_isr(void) { count++; } /*********************定时计数器0溢出中断子函数*****************/ #pragma interrupt_handler int0_over:10 void int0_over(void) { TCNT0=0x83; //重装初值 if((time%100) == 0) sumnum1 = num; if(time == 1000) { sumnum=num; if(sumnum<10) { if((flag==1)&&(sumnum<10)) { PORTD=0XFF; flag=0; } flag++; } else PORTD=0XBF; num=0; time=0; } num+=count; count=0; ++time; }
标签: C语言
上传时间: 2016-03-09
上传用户:彦 yan
台达plc人机控制器,HMC系列软件使用手册。 现今产业朝向高度自动化的趋势发展, 自动化设备追求高精,高速与更高的性价比, 因此台达提出了分布式运动控制架构. 在此分布式架构中将逻辑控制器与运动计算控制器区隔开来, 借着将原本集中式的大量计算负载分散开来, 因而能使用多个较低阶处理器(整体而言较低价)来达成原本需要高阶处理器计算的运动效能与逻辑控制效果. 在台达提出的分布式架构中, 我们将逻辑思考控制与人机操作整合工作交由HMC 负责, 将运动计算的控制工作交由ASDA 驱动器负责, 两者间透过DMCNet 高速通讯可完美结合HMC 与伺服驱动器.这样的分散计算概念能实现多轴精准的运动控制, 同时也能使整体设备的建置成本大幅降低. 台达HMC (Human Machine Interface & Control)整合了人机操作接口(HMI)与逻辑计算(控制器)的功能, 实现操作接口与逻辑控制的高效能整合. 台达HMC 在现今工业设备系统与分散控制架构中将担任举足轻重之角色, 带给用户更加强大功能与缩短开发工时等效益.
标签: 台达人机使用手册
上传时间: 2016-03-29
上传用户:bjweilin
大名鼎鼎的嵌入式操作系统vxworks的完整的源代码,支持多种体系结构的嵌入式处理器,如arm,x86,i960,mc68k,mips,ppc,sparc等,包含完整的实时多任务处理及网络tcpip,dhcp,rip等协议,tffs文件系统,以及各种硬件驱动程序如usb--All the source code of Famous vxwork Embedded operating system , it supports the Embedded processor of many kinds of systems architecture, such as arm,x86,I9600,mc68k,Mips,ppc,sparc etc, it includes entire Real-Time & multi_tasks processing and some network protocols of tcpip,dhcp,rip, tfffs file system,and various kinds of hardware drivers (eg usb) etc
标签: vxworks
上传时间: 2016-04-01
上传用户:dragonman
DSP集成开发环境CCS开发指南
标签: DSP;CCS
上传时间: 2016-04-10
上传用户:qwerdf
频道 劲爆,看《欢乐颂》第二季 上传 书房 登录 注册 菜单 收藏到书房下载文档 上一页 /386 下一页 全屏 < 返回首页 CNC初级教程/FANUC学校讲义 顶 8 踩 0 浏览 1,196 收藏 89 评论 1 加入豆单 举报 手机观看
上传时间: 2016-05-16
上传用户:kim123
对[1]的matlab实现,有所改动,在计算新的点是否属于平面时用点到平面的距离替换MSE,亲测精度不变计算时间大大减少。 referenece [1]Junhao Xiao, Jianhua Zhang and Jianwei Zhang,'Fast Plane Detection for SLAM from Noisy Range Images in Both Structured and Unstructured Environments',IEEE International Conference on Mechatronics & Automation,2011:1768-1773
上传时间: 2016-06-01
上传用户:李先生的大香港
I=imread('fig1.jpg');%从D盘名为myimages的文件夹中读取。格式为jpg的图像文件chost J=imnoise(I,'salt & pepper',0.02);%给图像加入均值为0,方差为0.02的淑盐噪声 subplot(2,4,1); imshow(I); title('原始图像'); subplot(2,4,2); imshow(J); title('加入椒盐噪声之后的图像'); %h=ones(3,3)/9; %产生3 × 3的全1数组 %B=conv2(J,h); %卷积运算 %采用MATLAB中的函数对噪声干扰的图像进行滤波 Q=wiener2(J,[3 3]); %对加噪图像进行二维自适应维纳滤波 P=filter2(fspecial('average',3),J)/255; %均值滤波模板尺寸为3 K1=medfilt2(J,[3 3]); %进行3 × 3模板的中值滤波 K2= medfilt2(J,[5 5]); %进行5 × 5模板的中值滤波 K3= medfilt2(J,[7 7]); %进行7 × 7模板的中值滤波 K4= medfilt2(J,[9 9]); %进行9 × 9模板的中值滤波 %显示滤波后的图像及标题 subplot(2,4,3); imshow(Q); title('3 × 3模板维纳滤波后的图像'); subplot(2,4,4); imshow(P); title('3 × 3模板均值滤波后的图像'); subplot(2,4,5); imshow(K1); title('3 × 3模板的中值滤波的图像'); subplot(2,4,6); imshow(K2); title('5 × 5模板的中值滤波的图像'); subplot(2,4, 7); imshow(K3); title('7 × 7模板的中值滤波的图像'); subplot(2,4,8); imshow(K4); title('9 × 9模板的中值滤波的图像');
上传时间: 2016-06-02
上传用户:wxcr_1
STB_DRIVE_L; for(k=0;k<8;k++) { CLK_DRIVE_L; if(a&0x01){DIO_DRIVE_H;} else {DIO_DRIVE_L;} a>>=1; CLK_DRIVE_H; }
上传时间: 2016-06-14
上传用户:lhx117yy
电子萤火虫电路图&PCB,亲测可用,华丽美观,可做毕业设计用
上传时间: 2016-06-15
上传用户:sjr88
实验源代码 //Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("请输入矩阵第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可传递闭包关系矩阵是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元关系的可传递闭包\n"); void warshall(int,int); int k , n; printf("请输入矩阵的行数 i: "); scanf("%d",&k); 四川大学实验报告 printf("请输入矩阵的列数 j: "); scanf("%d",&n); warshall(k,n); }
上传时间: 2016-06-27
上传用户:梁雪文以