河南工业职业技术学院
图中键盘引出的线分别接单片机的P2.4-P2.7口,因此在程序初始化时P2.7脚给低电平。如图开关1用来切换输出波形、开关2和3用来调节频率的加减。当按开关2时输出波形的频率增加,按开关3时输出波形的频率减小。开关4是用来显示波形的种类和频率的。
3.5 显示模块
本次设计要求对输出波形的频率,幅值和波形进行输出,所以要扩展显示模块,常用的显示模块LCD有7端数码管,LCD1602和12864等液晶显示屏。 为了降低设计的成本和扩展的难度,本次设计选择使用7段数码管。
VCC109854237abcdefgDPGNDGND16abcdefgdp图3-5-1.数码管原理图
abcdefgdp
常用的数码管包括共阴极和共阳极两种。 其中共阴极数码管的编码方式如下:
0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d , 0 1 6 7
2 3 4 5 8
9 A B
0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 0x39 , 0x5e , 0x79 , 0x71 , 0x00 C D E F 无显示
LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪
- 16 -
河南工业职业技术学院
一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
abcdefgDPKKabcdefgDPKKabcdefgDPKKabcdefgDPKKabcdefgDPKKabcdefgDPKK VCC1918P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P1.0/T2P1.1/T2EXP1.2/ECIP1.3/CEX0P1.4/CEX1P1.5/CEX2P1.6/CEX3P1.7/CEX4P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A1512345678212223242526272840OELED1D2D3D4D5D6D7D8GND74LS373VCCOELED1D2D3D4D5D6D7D8GND74LS373VCCXTAL1XTAL29312930Q1Q2Q3Q4Q5Q6Q7Q8Q1Q2Q3Q4Q5Q6Q7Q8RSTEA/VPPPSENALE/PROG1011121314151617P3.0/RxDP3.1/TxDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD20VSSAT89C51 图3-5-2.7段数码管动态显示电路图
3.6 I/V转化模块
由于DA转化器输出的是电流信号,所以还需要将其转化为电压信号,为了各种波形的双极性输出还需要连接双极性转化电路。
- 17 -
河南工业职业技术学院
12181917765416151413310CSWR1WR2ILEXFERDI0DI1DI2DI3DI4DI5DI6DI7GNDGNDDAC0832VDD20VREFR1R3VREFRFBIOUT1IOUT28891112231LM358D1R22318LM358D1OUT44 图3-6.双极性转化电路
如图为常用的双极性转化电路,第一个运算放大器将电流信号转变为电压信号,第二个运算放大器和电阻R1,R2共同组成方向加法器,由于电流输出接的是第一个运算放大器的反相输出端,所以当满足2*R2=R1且R2=R3的时候输出电压为
Vout=Vi-(Vref/2)
当要实现双极性输出的时候幅值的二进制码要转为偏移二进制码,即将二进制码对应的零值偏移到80H,在偏移之后,只有幅值二进制码大于128的输出才为正,后则为负。
通常要得到偏移二进制码,可以通过求原有二进制的补码,再加上80H,并舍弃其进位,使得其成为偏移二进制码。
- 18 -
河南工业职业技术学院
第四章 电路软件设计
4.1系统总框图
图4-1.系统总的框
4.2 显示子程序
显示部分采用动态输出的方式,通过控制两个锁存器来控制实现单个I/O分时控制输出输出数码管的段选(字形的选择)和位选(位权的选择)。如图3-5-2显示电路图中P0用于输出数据,而P2^0和P2^1用来控制寄存器的通断来控制是输出字段信息还是位权信息。
- 19 -
河南工业职业技术学院
中断入口 定时器重转初值 打开锁存器,送段 选信号,然后关闭 打开锁存器送位选 信号,然后关闭 位选标志位左移一位 返回
图4-2:显示流程图
通常的数码管动态显示程序都要进行延时,然后靠人眼的余光实现数据的输出,当延时时间太小的时候会出现数码闪烁甚至乱码,当延时时间设定的太大的时候,有可能出现输出断续的可能,通常需延时5ms,6位数据显示就是30ms,而按键的消抖时间不过10ms,所以时间片轮法的话会大大影响电路的正常工作,甚至不能检测出按键输入,或则按键输入的时候出现显示断续的情况,所以本才设计采用了中断显示的方法,利用定时器进行延时,设定好定时器的初值,在固定的延时时间上溢出,然后调用显示子程序显示当前的输出情况,由于定时器中断程序 执行一次只能显示一位数据,所以要设定一个全局变量的显示缓冲区和全局变量的位选标志。
- 20 -