基于单片机的labview信号发生器课设内容摘要:
{ SBUF=0xff。 while(!TI)。 delayms(10)。 TI=0。 } for(i=0xff。 i0。 i) { SBUF=0x00。 delayms(10)。 while(!TI)。 TI=0。 } ES=1。 flag=0。 } void juchi() //锯齿波 { for(i=0xff。 i0。 i) { SBUF=i。 while(!TI)。 TI=0。 } ES=1。 flag=0。 } void sin() //正弦波 { for(i=0。 i255。 i++) { SBUF=SinTab[i]。 while(!TI)。 TI=0。 ES=1。 flag=0。 } } void init() { TMOD=0x20。 //设置定时器工作方式 TH1=0xfd。 TL1=0xfd。 //启动定时器 TR1=1。 REN=1。 //允许串行接入 SM0=0。 SM1=1。 EA=1。 //开全局中断允许位 ES=1。 //开串口中断允许位 } void main() { init()。 while(1) { if(flag==1) //说明已收到数据 { ES=0。 //关串口中断允许位 if(S0==0) { delayms(10)。 //按键消抖 if(S0==0) m++。 if(m2) m=0。 while(!S0)。 //松手检测 } switch(m) //选择波形 { case 0: fangbo()。 //方波 break。 case 1: juchi()。 //锯齿波 break。 case 2: sin()。 //正弦波 break。 default:sin()。 } } } } void ser() interrupt 4 { RI=0。 flag=1。 } ( 2)硬件模块设计 一.电路连接详解 图 1 串行通信实验电路图 下面就对图 1 所示电路进行详细说明: 可以看到,在电路图中,有 TXD 和 RXD 两个接收和发送指示状态灯,此外用了一个叫 MAX3232 的芯片,那它是用来实现什么的呢。 首先我们要知道计算机上的串口是具 RS232 标准的串行接口,而 RS232 的标准中定义了其电气特性:高电平“ 1”信号电压的范围为 15V~3V,低电平“ 0” 信号电压的范围为 +3V~+15V。 可能有些读者会问,它为什么要以这样的电气特性呢。 这是因为高低电平用相反的电压表示,至少有 6V 的压差,非常好的提高了数据传输的可靠性。 由于单片机的管脚电平为 TTL,单片机与 RS232 标准的串行口进行通信时,首先要解决的便是电平转换的问题。 一般来说,可以选择一些专业的 集成电路 芯片,如图中的 MAX3232。 MAX3232 芯片内部集成了电压倍增 电路,单电源供电即可完成电平转换,而且工作电压宽, 3V~ 间均能正常工作。 其典型应用如图中所示,其外围所接的电容对传输速率有影响,在试验套件中采用的是 F。 值得一提的是 MAX3232 芯片拥有两对电平转换线路,图中只用了一路,因此浪费了另一路,在一些场合可以将两路并联以获得较强的驱动抗干扰能力。 此外,我们有必要了解图中与计算机相连的 DB9 型 RS232 的引脚结构(见图 2)。 图 2 DB9 连接器接口图 其各管脚定义如下(见表 4)。 表 4 DB9 型接口管脚定义 与单片机串口相关的寄存器 SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对 SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。 从而控制外部两条独立的收发信号线 RXD( )、 TXD( ),同时发送、接收数据,实现全双工。 串行口控制寄存器 SCON(见表 1)。 表 1 SCON 寄存器 表中各位(从左至右为从高位到低位)含义如下。 SM0 和 SM1 :串行口工作方式控制位, 其定义如表 2 所示。 表 2 串行口工作方式控制位 其中, fOSC 为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。 SM2 :多机通信控制位。 该仅用于方式 2 和方式 3 的多机通信。 其中发送机 SM2 = 1(需要程序控制设置)。 接收机的串行口工作于方式 2 或 3, SM2=1 时,只有当接收到第 9 位数据( RB8)为 1 时,才把接收到的前 8 位数据送入SBUF,且置位 RI 发出中断申请引发串行接收中断,否则会将接受到。基于单片机的labview信号发生器课设
相关推荐
示方式极大的缩减了发光单元的信号线数量,因此在 LED 显示技术中被广泛使用。 以 88 点阵模块为例,说明一下其使用方法及控制过程。 图 中,红色水平线 Y0、 Y1„„Y7 叫做行线,接内部发光二极管的阳极,每 一行 8 个 LED 的阳极都接在本行的行线上。 相邻两行线间绝缘。 同样,蓝色竖直线 X0、 X1„„X7 叫做列线,接内部每列 8个 LED 的阴极,相邻两列线间绝缘。
级管,是一种固态的半导体器件,它能够 直接把电能转化为光能。 LED的核心部分由 P 型半导体和 N 型半导体 而组成的 晶片。 在 P 型半导体, 空穴 的数量比自由电子的数量大得多,多数载流子 为 空穴 ,少数载流子是自由电子 ;在 N 型半导体,自由电子的数量比孔学的数量大的多,载体中大多数为自由电子,少数载流子为空 穴。 半导体的它们之间的连接将是一个 “ PN 结 ”。
*/ void time0(void) interrupt 1 { count++。 if(count==CYCLE) { count=0。 databuf=plus。 plus=0。 if(tt!=2) tt++。 } TH0=0xDC。 TL0=0x00。 //定时 10mS } /* 转速数据处理显示子程序 */ void datamake(unsigned int th) {
度信号,以“一线总线”串行送给 CPU,同时可传送 CRC校验码,具有极强的抗干扰纠错能力。 9) 负压特性。 电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 9 1) 冷冻库、粮仓、储罐 、电信机房、电力机房、电缆线槽等测温和控制领域。 2) 轴瓦、缸体、纺织、空调等狭小空间工业设备测温和控制。 3) 汽车空调、冰箱、冷柜以及中低纬度干燥箱等。 4) 供热、制冷管道热量计量
输给液晶现实器进行显示。 液晶显示模块 该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块做比较的话,不仅硬件电路结构简洁,且该模块的价格也略低于相同点阵的图形液晶模块, LCD1602 的程序流程图如图 所示。 L C D 初始化开始清显示 R A M 区置显示行初值 , 显示指针指向第一行待显示数据送入缓冲区预设数据显示在指定区域中调整指针 , 指向 L C D
EA=1。 //开总中断 EX0=0。 //禁止外部中断 delayms(10)。 WP_IC_CARD =1。 ES=1。 i=10。 while(flag1)。 //当子程序传输数据终了时控制 Flag跳出循环 flag1=1。 WP_IC_CARD =1。 for(i=10。 i15。 i++){wr_24c01(i,display_buffer[i])。 delay(250)。 }