单片机数模转换程序将da#include//52系列单片机头文件#include#defineucharunsignedchar#defineuintunsignedintsbitdula=P2^6;//申明U1锁存器的锁存端sbitwela=P2^7;//申明U2锁存器的锁存端sbitadwr=P3^6;//定义AD的WR端口sbitadrd=P3^7;//定义AD的RD端口sbitled=P2^5;sbitDAC0832_CS=P3^2;sbitDAC0832_WR=P3^6;sbitAD_CS=P0^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucharweima[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};voiddelayms(uintxms){uinti,j;for(i=xms;i>0;i--)//i=xms即延时约xms毫秒for(j=110;j>0;j--);}voiddisplay(ucharbai,ucharshi,ucharge)//显示子函数{dula=1;P0=table[bai]|0x80;//送段选数据dula=0;P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时wela=1;//原来段选数据通过位选锁存器形成混乱P0=0x7e;//送位选数据wela=0;delayms(1);//延时dula=1;P0=table[shi];dula=0;P0=0xff;wela=1;P0=0x7d;wela=0;delayms(1);dula=1;P0=table[ge];dula=0;P0=0xff;wela=1;P0=0x7b;wela=0;delayms(1);}/*voiddisplays(uchara,ucharb,ucharc)//显示子函数{dula=1;P0=table[a];//送段选数据dula=0;P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时wela=1;//原来段选数据通过位选锁存器形成混乱P0=0x77;//送位选数据wela=0;delayms(1);//延时dula=1;P0=table[b];dula=0;P0=0xff;wela=1;P0=0x6f;wela=0;delayms(1);dula=1;P0=table[c];dula=0;P0=0xff;wela=1;P0=0x5f;wela=0;delayms(1);}*/voiddisplays(ucharshuzi,ucharweizhi,bitdp){dula=1;if(dp)P0=table[shuzi]|0x80;elseP0=table[shuzi];dula=0;wela=1;P0=weima[weizhi];wela=0;}voidmain()//主程序{uintad;ucharA1,A2,A3,adval;AD_CS=1;//置CSAD为0,选通ADCS以后不必再管ADCSDAC0832_CS=0;DAC0832_WR=0;while(1){wela=1;P0=0x7f;wela=0;adwr=1;_nop_();adwr=0;//启动AD转换_nop_();adwr=1;P1=0xff;//读取P1口之前先给其写全1adrd=1;//选通ADCS_nop_();adrd=0;//AD读使能_nop_();
2019/5/4 18:48:13 3KB 51数模转换
1
普中51单片机开辟教程
2015/8/2 5:20:08 21.24MB 51单片机开发攻略
1
台达A2伺服MODBUS通讯调试工具,开辟工具,台达A2伺服MODBUS通讯调试工具测试OK。
2021/10/26 15:46:54 1.08MB 台达A2
1
//给定一个正整数N,其中//N=A1+A2+...+An其中A1,A2,...,An为斐波那契数列不重复的正整数(不会有2个1这种结果)//请实现下面的function(function格式请勿修改)//其中输入参数为N,前往值为A1,A2,...,An.的递减数组//若找不到结果则前往空数组//斐波那契数列定义如下://F1=1//F2=1//Fn=Fn-1+Fn-2//->斐波那契数列的值为:1,1,2,3,5,8,13,21,34,....//Exinput11->output[8,3]//Exinput31->output[21,8,2]
2017/4/25 13:52:36 2KB 斐波那契数列 正整数分解 算法
1
C++典型例题分析C++理论基础题目C++上机题对象的多态性题目给学生的期末复习题函数题目类的承继和派生类与对象题目面向对象试卷答案A2
2020/10/8 20:54:12 423KB C++ 期末考试 试题 上机题
1
AnalogtoDigital库将模仿引脚A0-A3转换为数字引脚,不包括I2C引脚A4和A5引脚A0=14引脚A1=15引脚A2=16引脚A3=17引脚A4=18->I2CSDA引脚A5=19->I2CSCLConvert_All()->转换所有引脚(A0-14,A1-15,A2-16,A3-17)Select_Pin()->选择引脚进行转换(0/1/14、0/1/15、0/1/16,0/1/17)0-模仿/1-数字/14-15-16-17-数字N_Pins()->要转换的引脚数(1-4)
2022/10/23 21:38:44 3KB C++
1
STA313-A2A2_Rmd_Code.Rmd中的RMD文章code.r中的探究性代码自行车数据:从作业网站下载自动数据::
2015/11/23 2:23:39 7KB R
1
•Alpha-Beta剪枝(Alpha-Betapruning)对于一般的最大最小搜索,即使每一步只有很少的下法,搜索的位置也会增长非常快;
在大多数的中局棋形中,每步平均有十个位置可以下棋,于是假设搜索九步(程序术语称为搜索深度为九),就要搜索十亿个位置(十的九次方),极大地限制了电脑的棋力。
于是采用了一个方法,叫“alpha-beta剪枝”,它大为减少了检测的数目,提高电脑搜索的速度。
各种各样的这种算法用于所有的强力Othello程序。
(同样用于其他棋类游戏,如国际象棋和跳棋)。
为了搜索九步,一个好的程序只用搜索十万到一百万个位置,而不是没用前的十亿次。
•估值这是一个程序中最重要的部分,如果这个模块太弱,则就算算法再好也没有用。
我将要叙述三种不同的估值函数范例。
我相信,大多数的Othello程序都可以归结于此。
棋格表:这种算法的意思是,不同的棋格有不同的值,角的值大而角旁边的格子值要小。
忽视对称的话,棋盘上有10个不同的位置,每个格子根据三种可能性赋值:黑棋、白棋和空。
更有经验的逼近是在游戏的不同阶段对格子赋予不同的值。
例如,角在开局阶段和中局开始阶段比终局阶段更重要。
采用这种算法的程序总是很弱(我这样认为),但另一方面,它很容易实现,于是许多程序开始采用这种逼近。
基于举动力的估值:这种更久远的接近有很强的全局观,而不像棋格表那样局部化。
观察表明,许多人类玩者努力获得最大的举动力(可下棋的数目)和潜在举动力(临近对手棋子的空格,见技巧篇)。
如果代码有效率的话,可以很快发现,它们提高棋力很多。
基于模版的估值:正如上面提及的,许多中等力量的程序经常合并一些边角判断的知识,最大举动力和潜在举动力是全局特性,但是他们可以被切割成局部配置,再加在一起。
棋子最少化也是如此。
这导致了以下的概括:在估值函数中仅用局部配置(模版),这通常用单独计算每一行、一列、斜边和角落判断,再加在一起来实现。
估值合并:一般程序的估值基于许多的参数,如举动力、潜在举动力、余裕手、边角判断、稳定子。
但是怎么样将他们合并起来得到一个估值呢?一般采用线性合并。
设a1,a2,a3,a4为参数,则估值s:=n1*a1+n2*a2+n3*a3+n4*a4。
其中n1,n2,n3,n4为常数,术语叫“权重”(weight),它决定了参数的重要性,它们取决于统计值。
2017/8/17 10:01:12 884KB 黑白棋 算法 论文
1
基于opencv官网opencv-2.4.13.exe编译出来的Qt可用的opencv库。
使用阐明:Qtcreator为例,1.在.pro配置文件中添加:头文件路径和lib路径:INCLUDEPATH+=C:\Qt\opencvfile\include\opencv\C:\Qt\opencvfile\include\opencv2\C:\Qt\opencvfile\includeLIBS+=-LC:\Qt\opencvfile\lib\libopencv_*.a2.在环境变量path中添加dll路径:C:\Qt\opencvfile\bin即可。
/*authorJackLi*/
2016/8/10 16:24:29 13.63MB opencv2
1
#include#includeusingnamespacestd;intchoice;inta=0,b=0,c=0,d=0;intuser_input;voidS(intColor){HANDLEhCon=GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hCon,Color);}voidwait(){Sleep(100);user_input=getchar();}voidcls(){Sleep(100);system("cls");}intmain(intargc,char*argv[]){S(172);start:cls();gotoa1;gameover:printf("游戏结束。
");printf("按回车键继续");user_input=getchar();gotostart;a1:printf("现在游戏开始。
");user_input=getchar();printf("一天,你正在开飞机经过一片雪山区。
");wait();printf("忽然你的操作系统失控了,飞机直直地坠入山中。
");wait();printf("你朝两旁看了看,左边是雪地,右边是树林。
而你正前方是悬崖,所以你不得不转弯。
\n1-左转。
\n2-右转。
\n");s1:wait();switch(user_input){case'1':gotoa8;case'2':gotoa13;default:gotos1;}a2:cls();printf("你下了飞机,走向树林。
");wait();printf("过了一会儿,你感到又饿又冷,就喝了一点威士忌,坐下休息。
");wait();printf("但是,威士忌并没有让你觉得温暖。
你只是觉得很冷、很冷。
\n");gotogameover;a3:cls();printf("你吃了一些果实,还摘了一些放在口袋,想晚一点吃。
");wait();printf("过了一会儿,你的肚子剧烈的痛起来。
这时,你才意识到,果子有毒!\n");gotogameover;a4:cls();printf("你能否要继续往隧道里走?\n1-是。
\n2-不了。
\n");s4:wait();switch(user_input){case'1':gotoa18;case'2':gotoa22;default:gotos4;}a5:cls();printf("你能带三件东西下飞机。
请选择:\n1-香蕉、打火机、外套。
\n2-威士忌、外套、匕首。
\n");s5:wait();switch(user_input){case'1':gotoa10;case'2':gotoa2;default:gotos5;}a6:cls();printf("你走到了隧道里,隧道里很黑,忽然你被一个东西绊倒了。
\n");wait();printf("你爬起来,看了看地上的东西,原来是一条麻绳。
\n1-捡起来。
\n2-置之不理。
\n");s6:wait();switch(user_input){case'1':gotoa11;case'2':gotoa23;default:gotos6;}a7:cls();printf("你呆在飞机里,感到越来越冷,你不得不离开了飞机。
\n");gotoa5;a8:cls();printf("随着“噗”地一声闷响,你的飞机安全降落在雪地上。
");wait();printf("你要离开飞机去找东西吗?\n1-离开。
\n2-待着。
\n");s8:wait()
2020/2/14 7:27:53 1.84MB C++ 代码类 游戏 生存
1
共 42 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡