资源简介
基于唐都微机实验箱
利用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
- 下一篇:计算机网络系统方法--课后答案
相关资源
- SPWM脉宽数计算器
- 单片机和LCD1602实现的简易计算器
- 多项式相乘一元稀疏多项式简单计算
- 三国杀武将张昌蒲技能计算器
- Ansoft场计算器
- proteus8086 8255AB口多种花色流水灯
- 汇编秒表设计应用于唐都仪器上
- xcode 简易计算器
-
ob
jective-c的计算器 - fpga vhdl计算器
- linux下的设计QT计算器
- OC 简单计算器(修改版)
- 浮点数转换器,浮点数计算器
- 微机原理 发光二极管按一定规律轮流
- xcode计算器源代码
- MacOS版计算器
- 基于51单片机的计算器Proteus仿真.rar
- 计算器含源码
- sm2/sm3算法验证工具,预运算、大数计
- 计算器类,实现四则运算
- 计算器 实现复数、有理数、矩阵和集
- 安卓开发计算器源代码
- 基于 CLR Windows Forms 的标准型计算器源
- LM2596计算器,用于计算分压电阻
- 51单片机定时器初值计算器
- PID 整定计算器 EXCEL版
- 二阶Stokes波波长计算器
- 微机原理课程设计 基于8253、8255A、
- RC滤波器计算器
- QT初学者手动界面代码实现简单运算的
评论
共有 条评论