资源简介
使用C51语言进行在51单片机的设计
代码片段和文件信息
#include
#include
#include
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit pinRS=P2^0;
sbit pinRW=P2^1;
sbit pinE=P2^2;
#define pindata P0
#define clearscreen() writeinstruc(0x01)
#define cursorreturn() writeinstruc(0x02)
#define inputmode(temp) writeinstruc(temp)
//temp取值如下:
//0x04:减量方式,不移位
//0x05:减量方式,移位
//0x06:增量方式,不移位
//0x07:增量方式,移位
#define dispcontrol(temp) writeinstruc(temp)
//temp取值如下:
//0x08:显示关,光标关,闪烁关
//0x0c:显示关,光标关,闪烁关
//0x0d:显示开,光标关,闪烁开
//0x0e:显示开,光标开,闪烁关
//0x0f:显示开,光标开,闪烁开
#define dispshift(temp) writeinstruc(temp)
//temp取值如下:
//0x10:光标左移
//0x14:光标右移
//0x18:显示整体左移
//0x1c:显示整体右移
#define functionset(temp) writeinstruc(temp)
//temp取值如下:
//0x20:4位,1行,5*7
//0x24:4位,1行,5*10
//0x28:4位,2行,5*7
//0x2c:4位,2行,5*10
//0x30:8位,1行,5*7
//0x34:8位,1行,5*10
//0x38:8位,2行,5*7
//0x3c:8位,2行,5*10
#define setCGRAM_Add(address) writeinstruc(0x40|address)
#define setDDRAM_Add(address) writeinstruc(0x80|address)//短延时
//void shortdelay(uchar i);
//长延时
//void longdelay(uint i);
//P2口初始化
//void initP2(bit i);
//寄存器选择信号
//void setRS(bit i);
//读写操作控制
//void setRW(bit i);
//使能信号
//void setE(bit i);
//读BF以及AC的值
//uint read_BF_AC();
//判忙
//bit statuscheck();
//写指令函数
//void writeinstruc(uint instruc);
//写数据到RAM
//void writedata(uint data1);
//从RAM中读数据函数
//uint readdata(void);
//显示程序 X为行号,Y为列号,date为要显示的数据
//void dispcharacter(int xuint yuint data1);
//LCD复位函数
//void LCDreset();
#define uchar unsigned char
uchar k=0result1;
void shortdelay(uchar i)//短延时
{
for(;i>0;i--);
}
//长延时
void longdelay(uint i)
{
uint j;
for(;i>0;i--)
{for(j=100;j>0;j--);}
}
//延时程序
void delay(int i)
{int j;
for(;i>0;i--)
for(j=0;j<100;j++);
}
//初试状态
void io_init()
{P1=0xff;
}
//?---------------------------键盘扫描部分-----------------------------//
unsigned char key_scan()
{ unsigned char key;
unsigned char temp;
uint flag;
io_init();
P1=0xf0;
flag=0;
loop: temp=P1^0xf0;
while(temp)
{
P1=0xfe;
delay(1);
if((P1&0xfe)!=0xfe)
switch(P1)
{
case 0xee: key=0x11;flag=1;break;//读7键和值
case 0xde: key=0x12;flag=1;break;
case 0xbe: key=0x13;flag=1;break;
case 0x7e: key=0x14;flag=1;break;//读除键的值
}
if(flag)
goto exit;
else
P1=0xfd;
delay(1);
if((P1&0xfd)!=0xfd)
switch(P1)
{
case 0xed: key=0x21;flag=1;break;
case 0xdd: key=0x22;flag=1;break;
case 0xbd: key=0x23;flag=1;break;
case 0x7d: key=0x24;flag=1;break; //读4到乘的键值
}
if(flag)
goto exit;
else
P1=0xfb;
delay(1);
if((P1&0xfb)!=0xfb)
switch(P1)
{
case 0xeb: key=0x31;flag=1;break;
case 0xdb: key=0x32;flag=1;break;
case 0xbb: key=0x33;flag=1;break;
case 0x7b: key=0x34;flag=1;break;//读1到减的键值
}
if(flag)
goto exit;
else
P1=0xf7;
delay(1);
if((P1&0xf7
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-14 16:18 简易计算器\
文件 9306 2012-10-14 22:10 简易计算器\0
文件 8704 2012-10-14 22:10 简易计算器\0.c
文件 157 2012-10-14 22:11 简易计算器\0.cfg
文件 11859 2012-10-14 22:10 简易计算器\0.hex
文件 31 2012-10-14 22:10 简易计算器\0.lnp
文件 27044 2012-10-14 22:10 简易计算器\0.M51
文件 152953 2012-10-14 22:11 简易计算器\000.png
文件 958 2018-06-14 16:18 简易计算器\2.0.Opt
文件 163 2018-06-14 16:13 简易计算器\2.0.plg
文件 2070 2018-06-14 15:54 简易计算器\2.0.Uv2
文件 1196 2018-06-14 15:50 简易计算器\2_0_Opt.Bak
文件 0 2018-06-14 15:50 简易计算器\2_0_Uv2.Bak
文件 90223 2018-06-14 09:25 简易计算器\Last Loaded 计算器.DBK
文件 5115 2002-04-16 15:32 简易计算器\STARTUP.A51
文件 11760 2018-06-14 15:54 简易计算器\STARTUP.lst
文件 856 2018-06-14 15:54 简易计算器\STARTUP.obj
文件 90223 2018-06-14 09:28 简易计算器\计算器.DSN
文件 768 2018-06-14 15:47 简易计算器\计算器.PWI
- 上一篇:步进电机控制(源码+文档)
- 下一篇:51单片机交通灯设计
相关资源
- 51单片机交通灯设计
- 深入理解计算机系统-复习-清华课件
- 计算机二级C语言真题.docx
- C++ SHA256加密计算
- 基于51单片机多路超声波报警设计
- 51单片机红外智能小车
- 电力系统潮流计算-牛顿拉夫逊法
- QT 计算文件夹内所有代码行数
- qt上位机采集51单片机温湿度数据
- 北邮高级计算机体系结构记分牌程序
- 银行计算机专业笔试题目+答案
- 基于51单片机射频RFID卡考勤上课上班
- 多功能计算器实现C++代码以及代码详
- [BUPT]面向对象程序设计C++ - 平时作业
- 循环冗余校验码(CRC)计算源代码合
- 车站计算机联锁vc++6.0程序代码
- 通用弹道仿真计算程序(简版)V1.0
- C++简单计算器的实现
- C++ AMP 用Visual C++加速大规模并行计算
- 可以在单片机上计算的BP神经网络C语
- 潮流计算C++程序
- 计算机二级C语言机考题库
- vc++课程设计 让计算机来猜测用户“暗
- 基于51单片机的888光立方设计.rar
- 东北大学考研计算机真题初试.rar
- 常用数值计算方法c++源代码实现
- word2vec词向量训练及中文文本相似度计
- C++版计算器带括号dos版本
- 计算机等级考试题库系统
- 51单片机DS18B20温度计C语言程序附详解
评论
共有 条评论