2进制与10进制转换LCD显示程序
需积分: 1 63 浏览量
更新于2024-09-09
收藏 11KB TXT 举报
"该代码段是一个基于51单片机的程序,用于控制1602液晶显示器显示二进制与十进制之间的转换,并伴有流水灯效果。"
在给定的程序中,开发者使用了51系列单片机的寄存器定义和控制引脚,以及1602液晶显示屏的操作函数。以下是对主要知识点的详细说明:
1. **头文件#include<reg52.h>**:这是51系列单片机的标准头文件,包含了对51内核寄存器的定义,如P0、P1、TMOD等,方便编程时直接引用。
2. **数据类型定义**:使用`#define`预处理器定义了`uint`(无符号整型)和`uchar`(无符号字符型),通常在51单片机编程中用于节省内存。
3. **全局变量声明**:`num`, `temp`, `num1`, `num2`, `num3`, `num4`等是用于存储数值的变量,`cishu`, `tl`, `tt2`, `qi`, `liu`, `wu`, `si`, `san`, `er`, `yi`, `tt`, `tt1`, `i`等变量用于计数或临时存储中间结果。
4. **控制引脚定义**:`lcden`, `lcdrs`, `lcdrw`, `led4`, `led3`, `led2`, `led1`, `led0`分别定义了液晶显示屏和流水灯的控制引脚,这些引脚通过P0口进行操作。
5. **字符串常量**:如`codetable[]`, `codetable1[]`等,用于存储显示在液晶屏上的文本,例如欢迎信息和提示用户输入二进制数字的提示。
6. **延时函数`delay(uint z)`**:这是一个简单的延时函数,通过两个嵌套循环实现,用于控制程序执行的节奏,比如液晶显示和流水灯效果的间隔。
7. **按键扫描函数`keyscan()`**:虽然未给出具体实现,但通常这个函数会检测连接到单片机的按键状态,以便用户输入或交互。
8. **液晶写入函数`write()`, `write_com(uchar com)`, `write_data(uchardate)`**:这些函数用于向液晶显示屏发送命令和数据,`write_com`用于发送指令,`write_data`用于发送要显示的数据。
9. **二进制到十进制转换函数`jinzhi10()`**:虽然没有给出完整代码,但根据程序描述,这个函数应该是将接收到的二进制数转换成十进制。
10. **其他辅助函数**:如`shuzi()`, `shizi1()`, `saimiao()`等,可能涉及数字处理或液晶显示的其他逻辑。
11. **初始化函数`init()`**:设置定时器0(TMOD=0x11)用于产生定时中断,设置初始计数值以达到10ms的周期(用于更新显示或控制流水灯)。同时初始化液晶显示屏和开启中断。
12. **定时器配置**:`TH0`和`TL0`设置为65536-10000的一半,是为了产生10ms的中断周期,`ET0`=1和`TR0`=1开启定时器0中断。
综上,这段程序是一个结合了1602液晶显示和流水灯效果的二进制与十进制转换应用,通过51单片机实现,具有用户交互功能。
103 浏览量
2011-08-17 上传
2011-08-26 上传
2016-12-28 上传
2009-08-14 上传
2013-01-16 上传
103 浏览量
2009-03-28 上传
qq_27296985
- 粉丝: 0
- 资源: 1
最新资源
- CVS与配置管理.ppt
- linux命令大全~~~~~~
- 软件测试规范使你更加了解软件测试的规则
- sql语法帮助大全sql
- CISCO IOS名称意义详解
- Measurement technique for characterizing memory effects in RF power amplifiers
- Eclipse中文教程
- Microsoft Introducing Silverlight 2.0
- MyEclipse6 中文教程
- Java水晶报表教程
- Linux菜鸟过关(赠给初学者)
- Test.Driven.TDD.and.Acceptance.TDD.for.Java.Developers
- 编写高效简洁的C语言代码
- AIX 5L 安装手册
- Linux下的shell与make
- C#.Net函数方法集