单片机数模转换程序将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
很实用的Verilog实例!目录:王金明:《VerilogHDL程序设计教程》程序例子,带说明。
【例3.1】4位全加器【例3.2】4位计数器【例3.3】4位全加器的仿真程序【例3.4】4位计数器的仿真程序【例3.5】“与-或-非”门电路【例5.1】用case语句描述的4选1数据选择器【例5.2】同步置数、同步清零的计数器【例5.4】用initial过程语句对测试变量A、B、C赋值【例5.5】用begin-end串行块产生信号波形【例5.6】用fork-join并行块产生信号波形【例5.7】持续赋值方式定义的2选1多路选择器【例5.8】阻塞赋值方式定义的2选1多路选择器【例5.9】非阻塞赋值【例5.10】阻塞赋值【例5.11】模为60的BCD码加法计数器【例5.12】BCD码—七段数码管显示译码器【例5.13】用casez描述的数据选择器【例5.15】用for语句描述的七人投票表决器【例5.16】用for语句实现2个8位数相乘【例5.17】用repeat实现8位二进制数的乘法【例5.18】同一循环的不同实现方式【例5.19】使用了`include语句的16位加法器【例5.20】条件编译举例【例6.1】加法计数器中的进程【例6.2】任务举例【例6.3】测试程序【例6.4】函数【例6.5】用函数和case语句描述的编码器(不含优先顺序)【例6.6】阶乘运算函数【例6.7】测试程序【例6.8】顺序执行模块1【例6.9】顺序执行模块2【例6.10】并行执行模块1【例6.11】并行执行模块2【例7.1】调用门元件实现的4选1MUX【例7.2】用case语句描述的4选1MUX【例7.3】行为描述方式实现的4位计数器【例7.4】数据流方式描述的4选1MUX【例7.5】用条件运算符描述的4选1MUX【例7.6】门级结构描述的2选1MUX【例7.7】行为描述的2选1MUX【例7.8】数据流描述的2选1MUX【例7.9】调用门元件实现的1位半加器【例7.10】数据流方式描述的1位半加器【例7.11】采用行为描述的1位半加器【例7.12】采用行为描述的1位半加器【例7.13】调用门元件实现的1位全加器【例7.14】数据流描述的1位全加器【例7.15】1位全加器【例7.16】行为描述的1位全加器【例7.17】混合描述的1位全加器【例7.18】结构描述的4位级连全加器【例7.19】数据流描述的4位全加器【例7.20】行为描述的4位全加器【例8.1】$time与$realtime的区别【例8.2】$random函数的使用【例8.3】1位全加器进位输出UDP元件【例8.4】包含x态输入的1位全加器进位输出UDP元件【例8.5】用简缩符“?”表述的1位全加器进位输出UDP元件【例8.6】3选1多路选择器UDP元件【例8.7】电平敏感的1位数据锁存器UDP元件【例8.8】上升沿触发的D触发器UDP元件【例8.9】带异步置1和异步清零的上升沿触发的D触发器UDP元件【例8.12】延迟定义块举例【例8.13】激励波形的描述【例8.15】用always过程块产生两个时钟信号【例8.17】存储器在仿真程序中的使用【例8.18】8位乘法器的仿真程序【例8.19】8位加法器的仿真程序【例8.20】2选1多路选择器的仿真【例8.21】8位计数器的仿真【例9.1】基本门电路的几种描述方法【例9.2】用bufif1关键字描述的三态门【例9.3】用assign语句描述的三态门【例9.4】三态双向驱动器【例9.5】三态双向驱动器【例9.6】3-8译码器【例9.7】8-3优先编码器【例9.8】用函数定义的8-3优先编码器【例9.9】七段数码管译码器【例9.10】奇偶校验位产生器【例9.11】用if-else语句描述的4选1MUX【例9.12】用case语句描述的4选1MUX【例9.13】用组合电路实现的ROM【例9.14】基本D触发器【例9.15】带异步清0、异步置1的
2020/10/10 20:05:56 127KB Verilog 实例 经典
1
《数字电子技术基础:系统方法》是世界著名优秀教材,结合数字电子技术的发展趋势,从数字电子技术系统性的角度,对数字技术和数字系统内容进行重新组织,系统阐述数字电子技术的基础知识。
次要内容包括:数字电子技术的基本概念、组合逻辑、锁存器、触发器、定时器、计数器、移位寄存器、数据传输、信号处理等。
本版本是文字完整版。
2021/10/27 16:33:41 12.8MB digital 弗洛伊德 系统方法 文字版
1
本书是在第3版《MCS:51单片机应用设计》一书的基础上,从应用的角度,详细地引见了MCS:51单片机的硬件结构、指令系统、各种硬件接口设计、各种常用的数据运算和处理程序、接口驱动程序以及MCS:51单片机应用系统的设计,并对MCS:51单片机应用系统设计中的抗干扰技术以及各种新器件也作了详细的引见。
本书突出了选取内容的实用性、典型性。
书中的应用实例,大多来自科研工作及教学实践,且经过检验。
内容丰富、详实。
本书可作为工科院校的本科生、研究生、专科生单片机课程的教材以及毕业设计的参考资料,也可供从事自动控制、智能、仪器、仪表、电力、电子、机电一体化以及各类MCS:51单片机应用的工程技术人员参考。
第1章单片机概述1.1什么是单片机1.2单片机的历史及发展概况1.38位单片机的主要生产厂家和机型1.4单片机的发展趋势1.5单片机的应用1.6MCS-51系列单片机思考题及习题第2章MCS—51单片机的硬件结构2.1MCS-51单片机的硬件结构2.2MCS-51的引脚2.2.1电源及时钟引脚2.2.2控制引脚2.2.3I/O引脚2.3MCS-51的微处理器2.3.1运算器2.3.2控制器2.4MCS-51存储器的结构2.4.1程序存储器2.4.2内部数据存储器2.4.3特殊功能寄存器(SFI{)2.4.4位地址空间2.4.5外部数据存储器2.5并行L/O端口2.5.1P0口2.5.2P1口2.5.3p2口2.5.4P3口2.5.5PO-P3口电路小结2.6时钟电路与时序2.6.1时钟电路2.6.2机器周期和指令周期2.6.3MCS-51的指令时序2.7MCS-51的复位和复位电路2.7.1复位操作2.7.2复位电路思考题及习题第3章MCS—51单片机指令系统3.1指令系统概述3.2指令格式3.3指令系统的寻址方式3.4MCS-51单片机指令系统分类引见3.4.1数据传送类指令3.4.2算术操作类指令3.4.3逻辑运算指令3.4.4控制转移类指令3.4.5位操作指令3.5MCS-51汇编语言的伪指令思考题及习题第4章MCS—51的中断系统4.1中断的概念4.2MCS-51中断系统的结构4.3中断请求源4.4扣断控制4.4.1中断允许寄存器m4.4.2中断优先级寄存器IP4.5中断响应4.6外部中断的响应时间4.7外部中断的触发方式选择4.7.1电平触发方式4.7.2跳沿触发方式4.8中断·清求的撤消4.9中断服务程序的设计4.10多外部中断源系统设计4.10.1定时器/计数器作为外部中断源的使用方法4.10.2中断和查询结合的方法4.10.3用优先权编码器扩展外部中断源思考题及习题第5章MCS—51的定时器/计数器5.1定时器/计数器的结构5.1.1工作方式寄存器TMOD5.1.2定时器/计数器控制寄存器TCON5.2定时器/计数器的4种工作方式5.2.1方式05.2.2方式15.2.3方式25.2.4方式35.3定时器卅数器对外部计数输入信号的要求5.4定时器卅数器编程和应用5.4.1方式0应用5.4.2方式1应用5.4.3方式2的应用5.4.4方式3的应用5.4.5门控制位CATE的应用—测量脉冲宽度5.4.6实时时钟的设计5.4.7运行中读定时器/计数器思考题及习题第6章MCS—51的串行口6.1串行口的结构6.1.1串行口控制寄存器SCON6.1.2特殊功能寄存器PCON6.2串行口的4种工作方式6.2.1方式06.2.2方式16.2.3方式26.2.4方式36.3多机通讯6.4波特率的设定6.4.1波特率的定义6.4.2定时器T1产生波特率的计算6.5串行口的编程和应用6.5.1串行口方式1应用编程(双机通讯)6.5.2串行口方式2应用编程6.5.3串行口方式3应用编程(双机通讯)思考题及习题第7章MCS—51扩展存储器的设计7.1概述7.2系统总线及总线构造7.2.1系统总线7.2.2构造系统总线7.2.3单片机系统的串行扩展技术7.3读写控制、地址空间分配和外部地址锁存器7.3.1存储器扩展的读写控制7.3.2存储器地址空间分配7.3.3外部地址锁存器7.4程序存储器EPROM的扩展7.4.1EPROM芯片引见7.4.2程序存储器的操作时序7.4.3典型的EPRO
1
用D锁存器锁存再通过一个8线—3线优先编码器4532对模仿病房号编码,再通过译码器4511译出模仿的最高级病房号,当有病房呼叫时信号通过译码器和逻辑门触发由555构成的单稳态触发器从而发出5秒钟的呼叫声。
由呼叫信号控制晶闸管从而控制对应病房报警灯的关亮。
以上按触发器复位键S可复位。
整个系统可拆分成三个部分:5秒呼叫模块,优先编码显示模块,呼叫显示模块,这些可完成本实验基本功能。
2018/5/24 7:44:51 781KB 医院病人紧急呼叫系统
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡