资源简介
数控电压源设计
1.输出电压:范围0~+9.9V,步进0.1V,纹波不大于10mV;
2.输出电流:100mA;
3.输出电压值由数码管或液晶显示;
4.由“+”、“-”两键分别控制输出电压步进增减;
代码片段和文件信息
//#include
#include “AT89X51.h“
#include //包含对片外存储器地址进行操作的头文件
#define uchar unsigned char
#define uint unsigned int
int val=0;
uchar code table0[]=“Voltage:“;
uchar code table1[]=“DC=.V“;
sbit up_key=P3^0;
sbit down_key=P3^1;
sbit CS=P2^7; //将CS位定义为P2.7引脚
sbit WR12=P3^6; //将WR12位定义为P3.6引脚
sbit rs=P3^3;
sbit rw=P3^4;
sbit lcden=P3^5;
void delayms(int x);
void up();
void down();
void start();
void write(uchar com);
void date(uchar date);
void lcd1602();
int count=0;
main()
{
uint k;
P1=0X00;
rw=0;
start();
XBYTE[0x7fff]=0;
write(0x84);
for(k=0;table0[k]!=‘\0‘;k++)
{
date(table0[k]);
delayms(2);
}
write(0x80+0x44);
date(table1[0]);
date(table1[1]);
date(table1[2]);
while(1)
{
up();
down();
lcd1602();
}
}
void delayms(int x)
{
int ij;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void up()
{
if(up_key==0)
{
delayms(20);
if(up_key==0)
{
if(count<100)
{
count=count+1;
XBYTE[0x7fff]=count;//将数据i送入片外地址07FFFH ,实际上就是通过P0口将数据送入DAC0832
}
while(up_key==0);
}
}
}
void down()
{
if(down_key==0)
{
delayms(20);
if(down_key==0)
{
if(count>0)
{
count=count-1;
XBYTE[0x7fff]=count;//将数据i送入片外地址07FFFH ,实际上就是通过P0口将数据送入DAC0832
}
while(down_key==0);
}
}
}
void start()//初始化
{
lcden=0;
write(0x38);
write(0x0f);
write(0x06);
write(0x01);
}
void write(uchar com)//写命令
{
rs=0;
P1=com;
delayms(1);
lcden=1;
delayms(1);
lcden=0;
}
void date(uchar date)//写数据
{
rs=1;
P1=date;
delayms(1);
lcden=1;
delayms(1);
lcden=0;
}
void lcd1602()
{
uint t;
t=5*5.12/256.0*count*100;
write(0x80+0x47);
date(t/100+48);
date(table1[3]);
date(t/10%10+48);
date(t%10+48);
date(table1[4]);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-06-04 12:16 CNC_final\
目录 0 2012-06-04 21:52 CNC_final\KEIL\
文件 9504 2012-06-04 21:49 CNC_final\KEIL\CNC
文件 1961 2012-06-04 21:49 CNC_final\KEIL\CNC.c
文件 3191 2012-06-04 21:49 CNC_final\KEIL\CNC.hex
文件 39 2012-06-04 21:49 CNC_final\KEIL\CNC.lnp
文件 5689 2012-06-04 21:49 CNC_final\KEIL\CNC.LST
文件 11468 2012-06-04 21:49 CNC_final\KEIL\CNC.M51
文件 9001 2012-06-04 21:49 CNC_final\KEIL\CNC.OBJ
文件 704 2012-06-04 21:52 CNC_final\KEIL\CNC.plg
文件 156451 2012-06-01 11:55 CNC_final\KEIL\CNC.uvgui.CPL
文件 153733 2012-05-31 11:18 CNC_final\KEIL\CNC.uvgui_CPL.bak
文件 56615 2012-06-04 21:52 CNC_final\KEIL\CNC.uvopt
文件 13415 2012-06-04 21:52 CNC_final\KEIL\CNC.uvproj
文件 33 2012-06-04 21:49 CNC_final\KEIL\CNC.__i
文件 6986 2012-06-01 11:55 CNC_final\KEIL\CNC_uvopt.bak
文件 13445 2012-05-30 08:44 CNC_final\KEIL\CNC_uvproj.bak
文件 19 2012-05-30 07:54 CNC_final\KEIL\ExtDll.iex
文件 6376 2010-09-03 17:12 CNC_final\KEIL\STARTUP.A51
文件 14048 2012-06-04 21:15 CNC_final\KEIL\STARTUP.LST
文件 749 2012-06-04 21:15 CNC_final\KEIL\STARTUP.OBJ
目录 0 2012-06-06 21:34 CNC_final\Proteus\
文件 105054 2012-06-05 08:56 CNC_final\Proteus\CNC.DSN
文件 768 2012-06-06 21:34 CNC_final\Proteus\CNC.PWI
文件 103853 2012-06-04 21:52 CNC_final\Proteus\Last Loaded CNC.DBK
- 上一篇:OV7670+FIFO
- 下一篇:B树第三节学习插入与删除的思路与理论
评论
共有 条评论