资源简介
基于唐都微机实验箱
利用8255a led数码管 4*4键盘实现加减乘除

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
void dis(void);
void key(void);
void clear(void);
void ccscan(void);
void putbuf(void);
void getkey(void);
void TheFirstOptr(void);
void TheSecondOptr(void);
void initial(void);
int reset(void);
void dierr(void);
void Operate(void);
void proceed(void);
void Output(void);
void delay(int time);
//****************根据查看配置信息修改下列符号值*******************
#define IOY0 0x3000
//****************小数点标志位*************************************
#define SIXTH 0x20
#define FIFTH 0x10
#define FOURTH 0x08
#define THIRD 0x04
#define SECOND 0x02
#define FIRST 0x01
//*****************运算符定义**************************************
#define DDIV 0x03
#define DMUL 0x07
#define DSUB 0x0B
#define DADD 0x0F
#define EQUAL 0x0E
#define DOT 0x0D
//*****************************************************************
#define MY8255_A IOY0 + 0x00*4
#define MY8255_B IOY0 + 0x01*4
#define MY8255_C IOY0 + 0x02*4
#define MY8255_MODE IOY0 + 0x03*4
//*****************************************************************
//*****************************************************************
char a[] = {0x3f 0x06 0x5b 0x4f 0x66 0x6d 0x7d 0x07 0x7f 0x6f 0x77 0x7c 0x39 0x5e 0x79 0x71};
char b[] = {0x00 0x00 0x00 0x00 0x00 0x00};
char c[] = {0x40 0x79 0x40}; //-E-错误标志
char Reset; //AC键
char ERR; //错误标志
char op; //运算符
char op1; //第一次输入的运算符
char op2; //第二次输入的运算符
char yiWan; //第一个操作数处理完
char erWan; //第二个操作数处理完
char minor; //结果为负数
int cc; //没有任何按键按下时cc全0
int b_n; //当前输入数字个数
int n; //按下键的位置0-15
unsigned short int flag = 0; //小数点标志
double exp1;
double exp2;
double result;
int xiao[6] = {FIRSTSECONDTHIRDFOURTHFIFTHSIXTH};
//*****************************************************************
void key(void)
{
if (bioskey(1) != 0)
{
exit(0);
}
}
//*****************************************************************
void clear(void)
{
outp(MY8255_B 0x00);
}
//*****************************************************************
void ccscan(void)
{
outp(MY8255_A 0x00);
cc = inp(MY8255_C);
cc = (~cc) & 0x0F; //00001111取反屏蔽高位没有任何按键按下时cc全0
}
//*****************************************************************
void delay(int time)
{
int i;
int j;
for(i=0;i<=time;i++)
{
for(j=0;j<=0x100;j++)
{ }
}
return;
}
//*****************************************************************
void dis(void)
{
int i;
int j = 0xdf; //11011111选通位数从右往左第一位
int k = b_n;
char tmp[6] = {0};
if(minor == 1)
{
tmp[0] = 0x40; //负号
for(i=0;i<=b_n;i++)
{
tmp[i+1] = a[b[i]];
}
b_n++; //多了负号e.g. -123
k = b_n;
}
else
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 15335 2011-01-04 14:26 3.c
----------- --------- ---------- ----- ----
15553 2
- 上一篇:联想启天M6900原版BIOS
- 下一篇:计算机网络系统方法--课后答案
相关资源
- MCS_51单片机与8255A的接口设计
- 电脑卡西欧计算器 fx-991CN X Emulator19中
- 卡西欧工程计算器模拟器Casio FX
- PIC 单片机定时器初值计算器
- 湍流k-e经验值计算器
- PIC单片机延时计算器
- MVC模式实现的计算器
- powerbuilder 计算器小程序
- 简单计算器的实现(数据结构)
- 简单计算器的实现(数据结构 修正版
- 基于51单片机的计算器(C51编写,有
- labview计算器实例.vi88218
- EGM2008重力模型计算器
- 基于AT89S52单片机简易计算器的设计
- 中兴电视盒ADB密码计算器
- 微机原理 十字路口交通灯控制 prot
- 实验1.zip arduino跑马灯led灯实验,串口
- 汇率计算器
- 微机原理 8086 十字路口交通灯控制
- 色坐标计算器
- 词法分析器 -计算器版
- 课程设计简易计算器设计
- proUSB注册计算器
- 金融计算器tvm、npv、现金流、简单计
- 基于算符优先分析表的计算器
- 安卓微积分计算器
- 计算器.zip
- 仿小米计算器
- 多功能矩阵计算器珍藏版
- QT实战项目五--计算器
评论
共有 条评论