资源简介
单片机与TLC5615组成的波形发生器。能产生周期可调,幅值可调的正弦波,并通过虚拟示波器观察波形的周期是否正确。使用keil和proteus软件进行仿真实现。

代码片段和文件信息
#include //头文件
#include
#define uchar unsigned char //宏定义
#define uint unsigned int
uchar code table[]=“0123456789ABCDEF “ ; //显示的字母
uchar code table1[]=“V: T:“ ;
//LCD1602
sbit lcdrs=P3^0; //寄存器选择引脚
sbit lcdwr=P3^1; //读写引脚
sbit lcde=P3^2; //片选引脚
//TLC5615
sbit sclk=P1^0;//sclk的上升沿把数据移入输入寄存器
sbit cs=P1^1; //cs的跳变发生在sclk输入低电平
sbit din=P1^2; //cs的上升沿把数据从输入寄存器存入Dac寄存器开始转化//最高位在前
uchar Key_Value; //读出的键值
uchar code sine_tab[]={
//输出电压从0到最大值(正弦波1/4部分)
0x800x830x860x890x8d0x900x930x960x990x9c
0x9f0xa20xa50xa80xab0xae0xb10xb40xb70xba
0xbc0xbf0xc20xc50xc70xca0xcc0xcf0xd10xd4
0xd60xd80xda0xdd0xdf0xe10xe30xe50xe70xe9
0xea0xec0xee0xef0xf10xf20xf40xf50xf60xf7
0xf80xf90xfa0xfb0xfc0xfd0xfd0xfe0xff0xff
0xff0xff0xff0xff
//输出电压从最大值到0(正弦波1/4部分)
0xff0xff0xff0xff0xff0xff0xfe0xfd0xfd0xfc
0xfb0xfa0xf90xf80xf70xf60xf50xf40xf20xf1
0xef0xee0xec0xea0xe90xe70xe50xe30xe10xde
0xdd0xda0xd80xd60xd40xd10xcf0xcc0xca0xc7
0xc50xc20xbf0xbc0xba0xb70xb40xb10xae0xab
0xa80xa50xa20x9f0x9c0x990x960x930x900x8d
0x890x860x830x80
//输出电压从0到最小值(正弦波1/4部分)
0x800x7c0x790x760x720x6f0x6c0x690x660x63
0x600x5d0x5a0x570x550x510x4e0x4c0x480x45
0x430x400x3d0x3a0x380x350x330x300x2e0x2b
0x290x270x250x220x200x1e0x1c0x1a0x180x16
0x150x130x110x100x0e0x0d0x0b0x0a0x090x08
0x070x060x050x040x030x020x020x010x000x00
0x000x000x000x00
//输出电压从最小值到0(正弦波1/4部分)
0x000x000x000x000x000x000x010x020x020x03
0x040x050x060x070x080x090x0a0x0b0x0d0x0e
0x100x110x130x150x160x180x1a0x1c0x1e0x20
0x220x250x270x290x2b0x2e0x300x330x350x38
0x3a0x3d0x400x430x450x480x4c0x4e0x510x55
0x570x5a0x5d0x600x630x660x690x6c0x6f0x72
0x760x790x7c0x80};
void delay(uchar x) //延时子函数
{
uchar ij;
for(i=x;i>0;i--)
for(j=0;j<=65;j++);
}
void Delay_1ms(uint x)//1ms延时
{
uchar ij;
for(j=0;j for(i=0;i<=148;i++);
}
void write_com(uchar com) //写指令子函数
{ //根据1602液晶显示器协议编写
P0=com;
lcdrs=0;
lcdwr=0;
Delay_1ms(5);
lcde=0;
Delay_1ms(5);
lcde=1;
}
void write_dat(uchar dat) //写数据子函数
{
P0=dat;
lcdrs=1;
lcdwr=0;
Delay_1ms(5);
lcde=0;
Delay_1ms(5);
lcde=1;
}
void init() //初始化子函数
{
write_com(0x01); //清屏
write_com(0x3f); //功能设置
write_com(0x0d); //显示控制
write_com(0x06); //输入方式设置
}
/********************************************************************
* 名称 : Keyscan()
* 功能 : 实现按键的读取。
***********************************************************************/
uchar Keyscan(void)
{
uchar n;
//扫描第一行
P2=0xfe;
n=P2;
n&=0xf0;
if(n!=0xf0)
{
Delay_1ms(20);
P2=0xfe;
n=P2;
n&=0xf0;
if(n!=0xf0)
{
switch(n)
{
case(0xe0):return(7);break;
case(0xd0):retur
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 110734 2014-12-31 19:27 graph2.DSN
文件 840 2014-12-31 19:27 graph2.PWI
文件 110734 2014-12-31 19:19 Last Loaded graph2.DBK
目录 0 2014-12-27 20:36 prject\
文件 7189 2014-12-31 19:26 prject\main.c
文件 13962 2014-12-31 19:14 prject\main.LST
文件 11224 2014-12-31 19:14 prject\main.OBJ
文件 10411 2014-12-31 19:14 prject\prj
文件 2828 2014-12-31 19:14 prject\prj.hex
文件 55 2014-12-31 19:14 prject\prj.lnp
文件 17483 2014-12-31 19:14 prject\prj.M51
文件 433 2014-12-31 19:26 prject\prj.plg
文件 56080 2014-12-31 19:26 prject\prj.uvopt
文件 13397 2014-12-27 20:35 prject\prj.uvproj
文件 56084 2014-12-31 00:11 prject\prj_uvopt.bak
文件 0 2014-12-27 18:17 prject\prj_uvproj.bak
文件 6376 2009-05-07 14:37 prject\STARTUP.A51
文件 14048 2014-12-27 19:14 prject\STARTUP.LST
文件 758 2014-12-27 19:14 prject\STARTUP.OBJ
- 上一篇:DES加密解密文档
- 下一篇:stc 89c52 datasheet
相关资源
- DAC0832波形发生器幅值及频率都精确可
- 任意波形发生器
- 单片机波形发生器 lcd显示出来
- 基于FPGA的任意波形发生器硬件系统设
- 单片机课程设计多波形发生器
- FPGA波形发生器程序VHDL
- stm32 波形发生器程序
- 用VHDL语言FPGA实现波形发生器
- FPGA波形发生器
- 基于STM32和AD9850的波形发生器2012
- 基于51单片机的波形发生器带仿真
- 波形发生器 2011国赛
- 51单片机波形发生器设计,正弦波、三
- 微机接口设计实验
- 多波形发生器设计
- 波形发生器
- 基于STC12C5A60S2的波形发生器
- 对初学者有参考价值的VHDL程序UART、波
- 基于FPGA的DDS任意波形发生器
- 基于FPGA的任意波形发生器的研究与设
- AT89C51单片机波形发生器 附加论文
- 基于DDS 的可编程的波形发生器
- 任意波形发生器论文
- 波形发生器success.rar
- 基于stm32的波形发生器设计
- 微机原理波形发生器设计
- labview功率计,频谱分析仪等源程序文
- 基于STM32F407的 DMA + DAC 定时器触发实现
- 基于verilog的DDS任意波形发生器
- 基于FPGA的任意波形发生器
评论
共有 条评论