第一章:AVR单片机C语言程序设计概述1.1AVR单片机简介1.2AVRStudio+WinAVR开发环境安装及应用1.3AVR-GCC程序设计基础1.4程序与数据内存访问1.5I/O端口编程1.6外设相关寄存器及应用1.7中断服务程序1.8GCC在AVR单片机应用系统开发中的优势第二章:PROTEUS操作基础2.1PROTEUS操作界面简介2.2仿真电路原理图设计2.3元件选择2.4仿真运行2.5PROTEUS与AVRStudio的联合调试2.6PROTEUS在AVR单片机应用系统开发中的优势第三章:基础程序设计3.1闪烁的LED3.2左右来回的流水灯3.3花样流水灯3.4LED模拟交通灯3.5单只数码管循环显示0~93.68只数码管滚动显示单个数字3.78只数码管显示多个不同字符3.8K1~K4控制LED移位3.9数码管显示4×4键盘矩阵按键3.10数码管显示拨码开关编码3.11继电器控制照明设备3.12开关控制报警器3.13按键发音3.14INT0中断计数3.15INT0及INT1中断计数3.16TIMER0控制单只LED闪烁3.17TIMER0控制的流水灯3.18TIMER0控制数码管扫描显示3.19TIMER1控制交通指示灯3.20TIMER1与TIMER2控制十字路口秒计时显示屏3.21用工作于计数方式的T/C0实现100以内的按键计数3.22用定时器设计的门铃3.23报警器与旋转灯3.24100000秒以内的计时程序3.25用TIMER1输入捕获功能设计的频率计3.26用工作于异步模式的T/C2控制的可调式数码管电子钟3.27TIMER1定时器比较匹配中断控制音阶播放3.28用TIMER1输出比较功能调节频率输出3.29TIMER1控制的PWM脉宽调制器3.30数码管显示两路A/D转换结果3.31模拟比较器测试3.32EEPROM读写与数码管显示3.33Flash程序空间中的数据访问3.34单片机与PC机双向串口通讯仿真3.35看门狗应用第四章:硬件应用4.174HC138与74HC154译码器应用4.274HC595串入并出芯片应用4.3用74LS148与74LS21扩展中断4.462256扩展内存4.5用8255实现接口扩展4.6可编程接口芯片8155应用4.7可编程外围定时计数器8253应用4.8数码管BCD解码驱动器7447与4511应用4.98×8LED点阵屏显示数字4.108位数码管段位复用串行驱动芯片MAX6951应用4.11串行共阴显示驱动器MAX7219与7221应用4.1216段数码管演示4.1316键解码芯片74C922应用4.141602字符液晶测试程序4.151602液晶显示DS1302实时时钟4.161602液晶工作于四位模式实时显示当前时间4.172×20串行字符液晶演示4.18LGM12864液晶显示程序4.19PG160128A液晶图文演示4.21TG126410液晶串行模式演示4.21用带SPI接口的MCP23S17扩展16位通用IO端口4.22用TWI接口控制MAX6953驱动4片5×7点阵显示器4.23用TWI接口控制MAX6955驱动16段数码管显示4.24用DAC0832生成多种波形4.25用带SPI接口的数模转换芯片MAX515调节LED亮度4.26正反转可控的直流电机4.27正反转可控的步进电机4.28DS18B20温度传感器测试4.29SPI接口温度传感器TC72应用测试4.30SHT75温湿度传感器应用4.31用SPI接口读写AT25F10244.32用TWI接口读写24C044.33MPX4250压力传感器测试4.34MMC存储卡测试4.35红外遥控发射与解码仿真第五章:综合设计5.1多首电子音乐的选播5.2电子琴仿真5.3普通电话机拨号键盘应用5.4手机键盘仿真5.5数码管模拟显示乘法口诀5.6用DS1302与数码管设计的可调电子钟5.7用DS1302与LGM12864设计的可调式中文电子日历5.8用PG12864LCD设计的指针式电子钟5.9高仿真数码管电子钟5.101602LC
2025/1/1 11:28:29 5.27MB 单片机 c语言 AVR
1
用C/C++语言实现如下函数:1. boollu(double*a,int*pivot,intn);矩阵的LU分解。
假设数组anxn在内存中按行优先次序存放。
此函数使用高斯列选主元消去法将其就地进行LU分解。
pivot为输出参数,pivot[0,n)中存放主元的位置排列。
函数成功时返回false,否则返回true。
2. boolguass(doubleconst*lu,intconst*p,double*b,intn);求线代数方程组的解设矩阵Lunxn为某个矩阵anxn的LU分解,在内存中按行优先次序存放。
p[0,n)为LU分解的主元排列。
b为方程组Ax=b的右端向量。
此函数计算方程组Ax=b的解,并将结果存放在数组b[0,n)中。
函数成功时返回false,否则返回true。
3. voidqr(double*a,double*d,intn);矩阵的QR分解假设数组anxn在内存中按行优先次序存放。
此函数使用HouseHolder变换将其就地进行QR分解。
d为输出参数,d[0,n)中存放QR分解的上三角对角线元素。
4. boolhouseholder(doubleconst*qr,doubleconst*d,double*b,intn);求线代数方程组的解设矩阵qrnxn为某个矩阵anxn的QR分解,在内存中按行优先次序存放。
d[0,n)为QR分解的上三角对角线元素。
b为方程组Ax=b的右端向量。
函数计算方程组Ax=b的解,并将结果存放在数组b[0,n)中。
函数成功时返回false,否则返回true。
1
主要介绍了结构分析常用的各类单元,包括单元特点、输入参数、输出数据、单元特性、单元选项及单元使用注意事项。
为与有限元基本原理衔接,介绍了典型单元的单元矩阵,如单元刚度矩阵、应力刚度矩阵及质量矩阵等。
为说明单元特性和使用方法,每个单元均给出了应用算例及其命令流文件,且这些算例与ANSYS的HELP算例均不重复,全书有近200个应用算例,可供读者参考或套用。
可供土木工程、机械工程、力学、材料科学与工程、水利工程、矿业工程、交通运输工程、船舶与海洋工程、航空宇航科学与技术和农林工程等学科的科技人员进行力学分析作参考,也可作为大学本科和研究生学习有限元课程及ANSYS的参考书。
2024/12/31 19:08:58 56.34MB ANSYS 单元 应用
1
整理最全资料:并行计算大作业:矩阵乘法,排序算法,代码+课件+报告超详细
2024/12/30 20:21:41 80.76MB pa
1
某推销员要从城市v1出发,访问其它城市v2,v3,…,v6各一次且仅一次,最后返回v1。
D为各城市间的距离矩阵。
问:该推销员应如何选择路线,才能使总的行程最短?
2024/12/30 11:19:24 2KB C++ 动态规划 TSP 旅行商
1
现在有很多粒子群算法不规范,国外有些工具包过于复杂,功能太大而无从下手,国内的一些文档上的方法多数都是一个粒子式地简单循环,不能够全面地发挥Matlab基于矩阵计算的能力,本程序中的主程序及目标函数均基于向量形式,另外,很多具体程序中缺乏对约束问题进行考虑,本程序可以针对约束问题给出结果以查看约束处理情况,另外还可以选择是否显示离线和在线性能等,再者,本工具包里包含有全局算法及局部算法,试验后发现,局部算法的性能要好得多(可能针对不同问题吧),最后,本算法模块化层次条理清晰,说明具体,可以简单改造成各种改进型算法。
1
使用R语言完成关联规则分析的脚本,其中可生成的图形有关系矩阵图、(sup、conf、lift)关系图
2024/12/30 7:56:32 2KB R apriori
1
小波变换的图像处理%MATLAB2维小波变换经典程序%FWT_DB.M;%此示意程序用DWT实现二维小波变换%编程时间2004-4-10,编程人沙威%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear;clc;T=256;%图像维数SUB_T=T/2;%子图维数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1.调原始图像矩阵loadwbarb;%下载图像f=X;%原始图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2.进行二维小波分解l=wfilters('db10','l');%db10(消失矩为10)低通分解滤波器冲击响应(长度为20)L=T-length(l);l_zeros=[l,zeros(1,L)];%矩阵行数与输入图像一致,为2的整数幂h=wfilters('db10','h');%db10(消失矩为10)高通分解滤波器冲击响应(长度为20)h_zeros=[h,zeros(1,L)];%矩阵行数与输入图像一致,为2的整数幂fori=1:T;%列变换row(1:SUB_T,i)=dyaddown(ifft(fft(l_zeros).*fft(f(:,i)'))).';%圆周卷积FFTrow(SUB_T+1:T,i)=dyaddown(ifft(fft(h_zeros).*fft(f(:,i)'))).';%圆周卷积FFTend;forj=1:T;%行变换line(j,1:SUB_T)=dyaddown(ifft(fft(l_zeros).*fft(row(j,:))));%圆周卷积FFTline(j,SUB_T+1:T)=dyaddown(ifft(fft(h_zeros).*fft(row(j,:))));%圆周卷积FFTend;decompose_pic=line;%分解矩阵%图像分为四块lt_pic=decompose_pic(1:SUB_T,1:SUB_T);%在矩阵左上方为低频分量--fi(x)*fi(y)rt_pic=decompose_pic(1:SUB_T,SUB_T+1:T);%矩阵右上为--fi(x)*psi(y)lb_pic=decompose_pic(SUB_T+1:T,1:SUB_T);%矩阵左下为--psi(x)*fi(y)rb_pic=decompose_pic(SUB_T+1:T,SUB_T+1:T);%右下方为高频分量--psi(x)*psi(y)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3.分解结果显示figure(1);colormap(map);subplot(2,1,1);image(f);%原始图像title('originalpic');subplot(2,1,2);image(abs(decompose_pic));%分解后图像title('decomposedpic');figure(2);colormap(map);subplot(2,2,1);image(abs(lt_pic));%左上方为低频分量--fi(x)*fi(y)title('\Phi(x)*\Phi(y)');subplot(2,2,2);image(abs(rt_pic));%矩阵右上为--fi(x)*psi(y)title('\Phi(x)*\Psi(y)');subplot(2,2,3);image(abs(lb_pic));%矩阵左下为--psi(x)*fi(y)title('\Psi(x)*\Phi(y)');subplot(2,2,4);image(abs(rb_pic));%右下方为高频分量--psi(x)*psi(y)title('\Psi(x)*\Psi(y)');%%%%%%%
2024/12/29 6:42:54 2KB 小波变换 matlab
1
用邻接矩阵作为存储方式,C++实现的无向图的建立,广度遍历和深度遍历,以及求顶点的度数和邻接点
2024/12/27 11:35:56 7KB 广度遍历 深度遍历 求顶点的度数
1
这是opencvsvm图像分类的整个工程代码,在VS2010下打开即可。
整个工程文件以及我的所有训练的图片存放在这里,需要的可以下载,自己在找训练图片写代码花了很多时间,下载完后自行解压,训练图片和测试图片可以从这免费下载http://download.csdn.net/detail/always2015/8944959,projectdata文件夹直接放在D盘就行,里面存放训练的图片和待测试图片,以及训练过程中生成的中间文件,现在这个下载object_classfication_end则是工程文件,我用的是vs2010打开即可,下面工程里有几个要注意的地方:1、在这个模块中使用到了c++的boost库,但是在这里有一个版本的限制。
这个模块的代码只能在boost版本1.46以上使用,这个版本以下的就不能用了,直接运行就会出错,这是最需要注意的。
因为在1.46版本以上中对比CsSVM这个类一些成员函数做了一些私有化的修改,所以在使用该类初始化对象时候需要注意。
2、我的模块所使用到的函数和产生的中间结果都是在一个categorizer类中声明的,由于不同的执行阶段中间结果有很多个,例如:训练图片聚类后所得到单词表矩阵,svm分类器的训练的结果等,中间结果的产生是相当耗时的,所以在刚开始就考虑到第一次运行时候把他以文件XML的格式保存下来,下次使用到的时候在读取。
将一个矩阵存入文本的时候可以直接用输出流的方式将一个矩阵存入,但是读取时候如果用输入流直接一个矩阵变量的形式读取,那就肯定报错,因为输入流不支持直接对矩阵的操作,所以这时候只能对矩阵的元素一个一个进行读取了。
3、在测试的时候,如果输入的图片太小,或者全为黑色,当经过特征提取和单词构造完成使用svm进行分类时候会出现错误。
经过调试代码,发现上述图片在生成该图片的单词的时候所得到的单词矩阵会是一个空矩阵,即该矩阵的行列数都为0,所以在使用svm分类器时候就出错。
所以在使用每个输入图片的单词矩阵的时候先做一个判断,如果该矩阵行列数都为0,那么该图片直接跳过。
2024/12/26 7:01:54 37.36MB SVM图像分类
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡