/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
简单设计拔河游戏机包含六个模块 1. 按键模块:定义输入输出及按键模块。 2. 按键消抖模块:给每个按键两个状态,保证按键产生的信号可以消除抖动稳定,给所定按键两个状态,一个前状态,一个后状态,当时钟时钟的脉冲沿来临时,将按键状态赋值给前状态,设置定时器,当计数计满后,前状态值赋给后状态,按键输出值为前状态和后状态的取反的并。 3. 时钟分频模块:将Basys3的100M系统时钟分频成为周期为10ms,100Hz频率 4. 比较模块:由分频后的时钟信号模块控制按键信号模块,之后进入比较模块,若A的脉冲数大于B,则Led向A代表方向移动,反之则向B代表方向移动,若相等则不动。由Led的位置决定使能端的开启与关闭,若移动至A或B的顶端,则使能端控制Led无法再移动。除此还要设计计数器并可以显示在数码管上记下获胜者的盘数。 5. LED移动模块:在选定一定的时间周期内,检测按键A与按键B的产生的脉冲个数,进行比较,若A的脉冲数量大于B,则Led向A方向移动,反之则向B方向移动,若相等则不动。 6. 译码模块:将得到的信号t转化为Led的显示,最后赋值给Led输出端口,并且由数码管显示胜利的一方 。
标签: verilog
上传时间: 2020-05-19
上传用户:lzj007
随着光通信的蓬勃发展,光纤通信技术广泛应用于电信、电力、广播等领域,对整个信息产业产生了深远影响,光纤已成为当前最有前景的传输媒介。与此同时,光纤測试技术在光纤生产、现场铺设与后期维护等工程领域中得到广泛应用。光时域反射仪(Optical Time Domain Reflectometer),又称背向散射仪,是一种用于表征光纤链路物理特性的精密光学测试仪器,主要用于测试光纤链路长度,精确定位断点事件,计算光纤损耗,并提供与长度有关的衰减细节。光纤链路中待测光纤的测量长度范围和测量精度,取决于OTDR的激光出纤功率和光脉宽。因此,需要设计合适的激光脉冲驱动电源及配套的控制和探测系统,研究激光出纤功率和脉宽对测量长度和测量精度的影响,从而获得能满足不同光纤链路测量需求的OTDR系统解决方案。文章在具体描述了光时域反射仪的工作机理以及影响其主要性能的关键参数的基础上,提出以设计能提供大功率、窄脉冲电流信号的激光驱动电源作为提高OTDR性能的主要手段。在掌握半导体激光驱动原理的基础上,经过细致地比较与方案论证提出以 MOSFET作为激光脉冲驱动电源的开关器件,以能量储存法作为窄脉冲产生机制的脉冲电源设计方案,设计实现基于FPGA的触发脉冲信号,并通过 Multisim对系统硬件电路仿真优化,实现激光脉冲驱动大功率、窄脉宽输出。以雪崩二极管作为光电探测系统关键响应转换器件验证驱动电源性能,并完成光纤测距。最终成功研制出一套基于纳秒脉冲激光和对应光电探测系统的OTDR系统,并进行了实际测试测试和研究结果显示:所研制的脉冲激光电源能输出的最小脉宽为33n,最小输出峰值电流为1A,且峰值电流及频率大小可调。大电流窄脉宽驱动电源信号输出可极大地增强光时域反射仪的动态范围以及分辨率,探测器分时调控测量技术可以极大地提高系统的测量精度和信噪比。
上传时间: 2022-03-11
上传用户:
研究以MCS-96系列80C196KB单片机为基础,结合外围器件来实现对可控硅三相全控桥的触发控制。采用锁相环技术及过零触发的方法,实现触发脉冲与电源信号(线电压)的同步,提高了触发器的抗干扰能力,
上传时间: 2013-04-24
上传用户:fredguo
特点: 精确度0.1%满刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT类比输出功能 输入与输出绝缘耐压2仟伏特/1分钟(input/output/power) 宽范围交直流兩用電源設計 尺寸小,穩定性高
上传时间: 2014-12-23
上传用户:ydd3625
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230
#include<iom16v.h> #include<macros.h> #define uint unsigned int #define uchar unsigned char uint a,b,c,d=0; void delay(c) { for for(a=0;a<c;a++) for(b=0;b<12;b++); }; uchar tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
上传时间: 2013-10-21
上传用户:13788529953
摘要: 串行传输技术具有更高的传输速率和更低的设计成本, 已成为业界首选, 被广泛应用于高速通信领域。提出了一种新的高速串行传输接口的设计方案, 改进了Aurora 协议数据帧格式定义的弊端, 并采用高速串行收发器Rocket I/O, 实现数据率为2.5 Gbps的高速串行传输。关键词: 高速串行传输; Rocket I/O; Aurora 协议 为促使FPGA 芯片与串行传输技术更好地结合以满足市场需求, Xilinx 公司适时推出了内嵌高速串行收发器RocketI/O 的Virtex II Pro 系列FPGA 和可升级的小型链路层协议———Aurora 协议。Rocket I/O支持从622 Mbps 至3.125 Gbps的全双工传输速率, 还具有8 B/10 B 编解码、时钟生成及恢复等功能, 可以理想地适用于芯片之间或背板的高速串行数据传输。Aurora 协议是为专有上层协议或行业标准的上层协议提供透明接口的第一款串行互连协议, 可用于高速线性通路之间的点到点串行数据传输, 同时其可扩展的带宽, 为系统设计人员提供了所需要的灵活性[4]。但该协议帧格式的定义存在弊端,会导致系统资源的浪费。本文提出的设计方案可以改进Aurora 协议的固有缺陷,提高系统性能, 实现数据率为2.5 Gbps 的高速串行传输, 具有良好的可行性和广阔的应用前景。
上传时间: 2013-11-06
上传用户:smallfish
摘要: 串行传输技术具有更高的传输速率和更低的设计成本, 已成为业界首选, 被广泛应用于高速通信领域。提出了一种新的高速串行传输接口的设计方案, 改进了Aurora 协议数据帧格式定义的弊端, 并采用高速串行收发器Rocket I/O, 实现数据率为2.5 Gbps的高速串行传输。关键词: 高速串行传输; Rocket I/O; Aurora 协议 为促使FPGA 芯片与串行传输技术更好地结合以满足市场需求, Xilinx 公司适时推出了内嵌高速串行收发器RocketI/O 的Virtex II Pro 系列FPGA 和可升级的小型链路层协议———Aurora 协议。Rocket I/O支持从622 Mbps 至3.125 Gbps的全双工传输速率, 还具有8 B/10 B 编解码、时钟生成及恢复等功能, 可以理想地适用于芯片之间或背板的高速串行数据传输。Aurora 协议是为专有上层协议或行业标准的上层协议提供透明接口的第一款串行互连协议, 可用于高速线性通路之间的点到点串行数据传输, 同时其可扩展的带宽, 为系统设计人员提供了所需要的灵活性[4]。但该协议帧格式的定义存在弊端,会导致系统资源的浪费。本文提出的设计方案可以改进Aurora 协议的固有缺陷,提高系统性能, 实现数据率为2.5 Gbps 的高速串行传输, 具有良好的可行性和广阔的应用前景。
上传时间: 2013-10-13
上传用户:lml1234lml
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
上传时间: 2015-01-08
上传用户:lifangyuan12