#include "lcd1602.h"
void delay_uint(uint i)
{
while(i--);
}
/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/
void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay_uint(20);
e=1;
delay_uint(20);
e=0;
}
/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/
void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(20);
e=1;
delay_uint(20);
e=0;
}
/********************************************************************
* 名称 : write_sfm(uchar hang,uchar add,uchar date)
* 功能 : 设置当前行和列
* 输入 : 行,列
* 输出 : 无
***********************************************************************/
void write_sfm(uchar hang,uchar add)
{
if(hang==1) //设置当前行
write_com(0x80+add);
else
write_com(0x80+0x40+add);
}
/********************************************************************
* 名称 : write_string(uchar hang,uchar add,uchar *p)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下
write_string(1,5,"ab cd ef;")
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void write_string(uchar hang,uchar add,uchar *p)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
while(1)
{
if(*p == '\0') break;
write_data(*p);
p++;
}
}
/********************************************************************
* 名称 : init_1602()
* 功能 : 初始化1602液晶
* 输入 : 无
* 输出 : 无
***********************************************************************/
void init_1602()
{
write_com(0x38); //数据总线为8位,显示2行,5x7点阵
write_com(0x0e); //开显示,有光标,光标闪烁
write_com(0x06); //光标自动右移
delay_uint(1000); //等待设置完成
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1244-基于51单片机的高分辨率AD转换电路设计proteus、原理图、流程图、物料清单、仿真图、源代码 功能介绍: 设计一个16位AD电路,使用电子元件搭建; 单片机读取AD值并计算电压值,和真实值比较。LCD1602显示测量结果 误差大概在10%左右。因为是离散元件搭建,误差分布不均匀,器件越多误差越不好控制。 原理:电路一共分为5级,每一级都把前级的误差电压放大后再次分级。比如第一级把参考电压分成8份,每一份都和输入电压比较,然后由优先编码器输出编码。同时通过加法器把数字信号变成模拟信号,那么新生成的模拟信号肯定是那8份的每一份的整数倍,自然要比输入信号要小。再把它和输入信号相减,接着放大8倍,最后再循环前面的过程。 这是一种经典的模电+数电+编程+单片机的偏综合性的课题,值得学习研究。· 有哪些资料: 1、仿真工程文件 2、源代码工程文件 3、原理图工程文件 4、流程图 5、功能介绍 6、元件清单 7、详细介绍原理文档、说明书-10465字
资源推荐
资源详情
资源评论
收起资源包目录
1244-基于51单片机的高分辨率AD转换电路设计proteus、原理图、流程图、物料清单、仿真图、源代码.zip (42个子文件)
1244-基于51单片机的高分辨率AD转换电路设计proteus、原理图、流程图、物料清单、仿真图、源代码
QQ截图20220424222046.png 112KB
程序
lcd1602.c 2KB
lcd1602.LST 5KB
STARTUP.LST 14KB
main_uvproj.bak 13KB
main.OBJ 4KB
lcd1602.OBJ 4KB
STARTUP.A51 6KB
main.plg 174B
main.M51 10KB
main.LST 2KB
lcd1602.h 1KB
main.uvproj 13KB
main.lnp 57B
main.uvopt 56KB
STARTUP.OBJ 749B
main.hex 3KB
main 8KB
main.c 739B
main_uvopt.bak 56KB
元件清单.xlsx 9KB
QQ截图20220424222058.png 133KB
流程图.bmp 333KB
原理图
__Previews
Sheet1.SchDocPreview 157KB
Sheet1.PDF 140KB
History
Sheet1.~(18).SchDoc.Zip 158KB
Sheet1.~(17).SchDoc.Zip 27KB
Sheet1.~(1).SchDoc.Zip 1KB
Sheet1.~(16).SchDoc.Zip 27KB
Sheet1.SchDoc 1.36MB
Free Documents.OutJob 4KB
高分辨率AD转换电路设计.docx 817KB
仿真7.8
仿真.PWI 1KB
ISIS.dmp 37KB
仿真.DSN 274KB
Last Loaded 仿真.DBK 274KB
QQ截图20220424222138.png 115KB
QQ截图20220424222126.png 115KB
未命名1724831818.png 12KB
未命名1725583364.png 354KB
计算.bmp 7.44MB
QQ截图20220424222145.png 116KB
共 42 条
- 1
资源评论
cqtianxingkeji
- 粉丝: 3002
- 资源: 1610
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 小波多尺度同步压缩变换一维数据转换二维图像的方法(Matlab代码和数据)
- 小波二阶同步压缩变换一维数据转换二维图像的方法(Matlab代码和数据)
- 小波同步提取变换一维数据转换二维图像的方法(Matlab代码和数据)
- cailiaocailiaocailiaocailiao.7z.txt
- fxtrace2024111023332001.log
- C# Winform 自定义控件 TextBox
- HengCe-18900-2024-2030全球与中国IO-Link技术市场现状及未来发展趋势-样本.docx
- java课程设计-拼图游戏.zip学习资源
- qt+udp+timer
- Java课程设计你画我猜小游戏之你猜我猜不猜.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功