资源简介
单片机与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
相关资源
- 0832 微机原理的 A/D转换 波形发生器
- 多种波形发生器 的电路仿真 pcb
- 基于FPGA波形发生器和扫频信号发生器
- 基于51单片机和Proteus仿真的波形发生
- 简易波形发生器
- 基于单片机的五种波形发生器
- 51单片机_DAC0832_多波形发生器汇编频率
- 基于DAC0832的波形发生器
- 基于VHDL波形发生器
- Proteus8.6+8086+8255+DAC0832模拟波形发生器
- Proteus模拟基于51单片机的波形发生器
- 基于FPGA的DDS波形发生器
- 波形发生器设计 数电课程设计 数字电
- 基于8086的波形发生器
- 全国电子设计大赛----波形发生器设计
- 微机原理/汇编语言 多功能信号/波形
- 波形发生器 Proteus
- 模拟电路课程设计—波形发生器
- labview 波形发生器
- Proteus-基于51实现波形发生器
- 基于verilog hdl 的波形发生器
- 波形发生器含原理图、源程序、流程
- 自编labview小程序
- 2001年全国大学生电子设计竞赛一等奖
- DAC0832波形发生器
- 基于单片机的DAC0832波形发生器 源码
- 基于8086的Proteus仿真波形发生器的设计
- 基于msp430的的菜单和波形发生器的设
- 多功能波形发生器VHDL程序与仿真
- Multisim10波形发生器电路设计
评论
共有 条评论