📄 机械a型液晶显示.c
字号:
#include <absacc.h>
#include <reg52.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <intrins.h>
/*定义字型字位口*/
#define zoma 500
#define N 5
#define uchar unsigned char
#define uint unsigned int
/*定义P1口个管脚*/
sbit SERCONTROL=P3^4;
sbit DOG=P3^5;
sbit busy=P2^0;
sbit req=P2^1;
sbit bell=P2^2;
sbit IN1=P3^3;
bit specur;
bit shake;
/*显示缓存变量定义*/
uchar data keychoose=0; //菜单标志
uchar data menunum=0; //主菜单选项标志
uchar data gbnum=0; //光标位置参数
uchar data gblcnum=0;
uchar controlstyle; //动态=0x2a、静态=0xe3负载标志
bit bellvalue; //按键声音
bit altra; //已通讯
bit keydd;
bit pause;
uint sdspeed;
uint sdlc;
uchar sw[3]; //设定速度值 数位
uchar lc[3]; //设定励磁数位
uchar loadnum;
uchar data speed=0;
uchar keystore;
uchar connum;
uchar bellnum;
uchar keydownnum;
uchar num;
uchar digh1;
uchar digl1;
uchar digh2;
uchar digl2;
uchar gbit;
uchar shbit;
uchar bbit;
uchar qbit;
uchar wbit;
float xiaoyu;
float dig1;
float dig2;
float huaca;
uchar ana1[N];
uchar ana2[N];
float analog1;
float analog2;
uchar keyvalue;
uchar code tab1[]={ //主菜单显示
"1.设定电机转速"
"2.设置励磁电流"
"3.实验项目选择"
"4.设定按键声音"
};
uchar code tab11[]={
"请选择实验项目"
"1.传动效率测试"
"2.动态负载测试"
};
uchar code tab112[]={
"转速"
"转矩"
};
uchar code tab22[]={
"speed "
"current"
};
uchar code tab2[]={
"请输入励磁电流级 "
"between 0 and 100"};
uchar code tab3[]={
"请输入电机转速级 "
"between 0 and 80 "};
uchar code tab4[]={
"设定按键声音"
"1.有声音"
"2.无声音"};
uchar code tab5[]={
"输入转速"
"输出转速"
"输入转矩"
"输出转矩"
"0000.0rpm"
"00.000Nm"
};
uchar code tab6[]={
"效率"
"速比"
"00.0"
"000.0"};
uchar code tab7[]={"0123456789 ."};
uchar code tab8[]={"*"};
uchar code tab9[]={
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x84, 0x40, 0x48, 0x3F, 0x88, 0x04, 0x20, 0x22, 0x21, 0x04, 0x42, 0x20, 0x00, 0x00, 0x02, 0x01, 0xE0, 0x00, 0x24, 0x00, 0x80, 0x00,
0x00, 0x1D, 0x03, 0xB8, 0x8A, 0x49, 0x08, 0x82, 0x20, 0xFC, 0x55, 0x0B, 0x42, 0x20, 0x50, 0x3F, 0x1F, 0xE2, 0x20, 0x00, 0x4F, 0x89, 0x00, 0x00,
0x00, 0x25, 0xE1, 0x29, 0x7C, 0x49, 0x0B, 0x03, 0xB8, 0x84, 0x6F, 0x88, 0x47, 0xF0, 0x88, 0x7F, 0x04, 0x82, 0x20, 0x00, 0x55, 0x17, 0xE0, 0x00,
0x00, 0x1A, 0x85, 0x29, 0xAA, 0x7F, 0x0C, 0x07, 0x20, 0xFC, 0xA8, 0x9E, 0x42, 0x20, 0x84, 0x01, 0x05, 0x01, 0xC0, 0x00, 0xCD, 0x16, 0x20, 0x00,
0x00, 0x0C, 0x85, 0x2A, 0xAA, 0x49, 0x1B, 0xE3, 0x20, 0x48, 0x28, 0x8D, 0x43, 0xD1, 0x22, 0x3D, 0x1A, 0xE0, 0x00, 0x00, 0x54, 0x95, 0x20, 0x00,
0x00, 0x0D, 0x84, 0xE8, 0xBC, 0x7F, 0x09, 0x04, 0x30, 0xB6, 0x37, 0x1C, 0x26, 0x50, 0x40, 0x25, 0x10, 0x07, 0x78, 0x00, 0x5C, 0x1C, 0xA0, 0x00,
0x00, 0x11, 0x44, 0x30, 0xB0, 0x49, 0x08, 0x84, 0x21, 0xFC, 0x26, 0x2B, 0xC2, 0x60, 0x48, 0x3D, 0x10, 0x05, 0x49, 0x80, 0x55, 0x14, 0x20, 0x00,
0x00, 0x22, 0x4B, 0x00, 0x90, 0x49, 0x0B, 0x64, 0x40, 0xB4, 0x2A, 0x88, 0x42, 0x60, 0x84, 0x01, 0x10, 0x07, 0x39, 0x80, 0x50, 0x94, 0x20, 0x00,
0x00, 0x04, 0x20, 0xF8, 0xEF, 0x81, 0x04, 0x05, 0x81, 0x68, 0x11, 0x80, 0x43, 0x98, 0x7C, 0x01, 0x20, 0x04, 0x00, 0x00, 0x1F, 0x18, 0x40, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x07, 0xFE, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x40, 0x7C, 0x01, 0x03, 0x02, 0x80, 0x08, 0x3F, 0x00, 0x00, 0x80, 0x88, 0x00, 0x01, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x00, 0x00,
0x00, 0x1F, 0xC2, 0x30, 0x88, 0x79, 0x0D, 0x42, 0x78, 0x90, 0x3F, 0x02, 0x00, 0x88, 0x8A, 0x00, 0x07, 0xC7, 0xC0, 0x7C, 0x0F, 0xC0, 0x00, 0x00,
0x00, 0x0F, 0xE0, 0x90, 0xF8, 0x91, 0x09, 0x05, 0x89, 0x7E, 0x21, 0x02, 0x23, 0xF0, 0xFC, 0x00, 0x0F, 0x07, 0x81, 0xF1, 0xC3, 0xE0, 0x00, 0x00,
0x00, 0x11, 0x46, 0x90, 0x88, 0x5F, 0x8F, 0xE5, 0x09, 0x62, 0x1E, 0x8F, 0xC0, 0x80, 0xC2, 0x00, 0x0E, 0x07, 0x83, 0xCF, 0xC3, 0xE0, 0x00, 0x00,
0x00, 0x2F, 0xC4, 0x61, 0xFE, 0x25, 0x0B, 0x4D, 0x09, 0x52, 0x69, 0x83, 0x03, 0x60, 0x88, 0x00, 0x1C, 0x0F, 0x87, 0x0F, 0x81, 0xE0, 0x00, 0x00,
0x00, 0x19, 0x04, 0x20, 0x60, 0x31, 0x0D, 0x85, 0x09, 0xCA, 0x5F, 0x03, 0x01, 0x41, 0xFE, 0x00, 0x1C, 0x0F, 0x0E, 0x07, 0x81, 0xE0, 0x00, 0x00,
0x00, 0x0F, 0xC5, 0x20, 0xBC, 0x51, 0x18, 0x85, 0x09, 0x42, 0x6B, 0x04, 0x80, 0xC0, 0xA8, 0x60, 0x1E, 0x0F, 0x0E, 0x0F, 0x81, 0xE0, 0x00, 0x00,
0x00, 0x09, 0x02, 0xD1, 0x60, 0x81, 0x0B, 0x63, 0x09, 0x42, 0xFF, 0x08, 0x40, 0xA0, 0x88, 0x60, 0x1E, 0x0F, 0x1C, 0x0F, 0x03, 0xE0, 0x00, 0x00,
0x00, 0x37, 0xE1, 0x08, 0x1E, 0x01, 0x08, 0x22, 0x09, 0x84, 0x0C, 0x90, 0x27, 0x18, 0x88, 0x00, 0x1E, 0x1E, 0x18, 0x0F, 0x03, 0xC0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x1E, 0x18, 0x0F, 0x07, 0xC0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x18, 0x1F, 0x1F, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x18, 0x1F, 0xFE, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x1C, 0x1F, 0xF8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x1E, 0x3E, 0xF0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x1F, 0x3E, 0xF8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0F, 0x3C, 0xF8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x07, 0x3C, 0x78, 0x00, 0x00, 0x00,
0x00, 0x10, 0x82, 0x20, 0x00, 0x00, 0x00, 0x84, 0x00, 0x44, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x7C, 0x7C, 0x00, 0x00, 0x00,
0x00, 0x0F, 0xC2, 0x00, 0xFF, 0xFF, 0xF0, 0xFF, 0x1F, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x78, 0x7C, 0x00, 0x00, 0x00,
0x00, 0x04, 0x87, 0xF8, 0x7A, 0xB5, 0x21, 0x1F, 0x89, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x78, 0x3C, 0x00, 0x00, 0x00,
0x00, 0x1F, 0xF3, 0x40, 0x7B, 0xB5, 0x21, 0xB5, 0x09, 0x0B, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0xF8, 0x3E, 0x00, 0x00, 0x00,
0x00, 0x13, 0xC2, 0xF0, 0x7A, 0xAD, 0x20, 0xDF, 0x1F, 0xCA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x03, 0xF8, 0x1E, 0x00, 0x00, 0x00,
0x00, 0x13, 0xC6, 0x90, 0x6A, 0x2D, 0x20, 0xB4, 0x09, 0x14, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x0F, 0xFF, 0x1F, 0x00, 0x00, 0x00,
0x00, 0x1E, 0x42, 0x60, 0x6A, 0x2D, 0x20, 0x9E, 0x09, 0x0E, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x0F, 0xFF, 0x0F, 0x00, 0x00, 0x00,
0x00, 0x0B, 0xC2, 0x30, 0xFF, 0xFD, 0xC0, 0x74, 0x11, 0x08, 0x93, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03, 0xC0, 0x00, 0x00, 0x0F, 0x81, 0xC0, 0x00,
0x00, 0x02, 0x47, 0xC8, 0x00, 0x00, 0x00, 0x4F, 0x21, 0x10, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x83, 0xC0, 0x00, 0x00, 0x07, 0x81, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC7, 0x80, 0x00, 0x00, 0x03, 0xC3, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xEF, 0x00, 0x00, 0x00, 0x01, 0xE3, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
void send (uchar dat);
void delay1 (uint ms);
void vbell(uint us);
void wr_zb1 (uchar comm,uchar addr_x,uchar addr_y);
void dis_star(uchar starnum);
void clear_star(uchar starnum);
void clearmark(uchar clnum);
void dismark(uchar disnum);
void disp_speed(uchar code *chn);
void disp_cz(uchar code *chn,uchar lnum);
void disp_chn (uchar code *chn);
void disp_chn1 (uchar code *chn);
void digkey(uchar num);
/*--------延时1ms函数----------*/
void delays(void)
{uchar i;
for(i=0;i<176;i++){ }
}
/*延时200ms函数*/
void delay200(void)
{ uint i;
for(i=45000;i>0;i--)
{}
}
/*---------------延时子程序----------------*/
void delay (uint us)
{
while(us--);
}
/*-----------响铃子程序---------------------*/
void vbell(uint us)
{ bell=bellvalue;
while(us--);
bell=0;
}
/*------------写命令或数据到LCD--------------*/
void wr_zb (uchar comm,uchar addr_x,uchar addr_y) reentrant
{
send(comm);
send(addr_x);
send(addr_y);
}
void wr_zb1 (uchar comm,uchar addr_x,uchar addr_y)
{
send(comm);
send(addr_x);
send(addr_y);
}
void send (uchar dat) //写命令或数据
{
while(busy);
P0=dat;
req=1;
while(busy==0);
req=0;
}
/*键盘扫描程序*/
char keyscan(void)
{
uchar sccode;
uchar recode;
DOG=~DOG;
P1=0xf0;//发全0扫描行,列线输入
if((P1&0xf0)!=0xf0)//查看读入的列线是否有0
{
delays();
if((P1&0xf0)!=0xf0)
{
sccode=0xfe;
while((sccode&0x10)!=0)//是否四行都扫描完了
{
P1=sccode;
if((P1&0xf0)!=0xf0)//本行有键按下
{shake=0;
recode=(P1&0xf0);
P1=0xf0;
return((~sccode)+(recode));//返回键的特征字符 交叉点行为1其他为0,交叉点列为0其它为1
}
else
sccode=(sccode<<1)|0x01;//如果本行没有键按下,则左移一位,扫描下一行
}
}
}
shake=1;
P1=0xf0;
return(0);
}
//************初始化
void init(void)
{
uchar i;
shake=0;
busy=1;
req=0;
keystore=0;
analog1=0;
keydd=0;
controlstyle=0; //11为开环,0为闭环;
bellvalue=1; //按键声音
altra=0; //已通讯
sdspeed=0;
sdlc=0;
for(i=0;i<3;i++)
{ sw[i]=0;
lc[i]=0;} //设定速度值 数位
loadnum=0;
specur=0;
keystore=0;
connum=0;
bellnum=0;
keydownnum=0;
num=0;
pause=0;
digh1=0;
digl1=0;
digh2=0;
digl2=0;
gbit=0;
shbit=0;
bbit=0;
qbit=0;
wbit=0;
xiaoyu=0;
dig1=0;
dig2=0;
huaca=0;
for(i=0;i<N;i++)
{ ana1[i]=0;
ana2[i]=0;
}
analog1=0;
analog2=0;
keyvalue=0;
DOG=1;
P1=0xf0;
P0=0xff;
SERCONTROL=0; //默认为接收状态
RCAP2H=0xff;
RCAP2L=0xfa;
T2CON=0x34;
SCON=0x50;
IT1=0;
IT0=0;
ES=1;
EX0=1;
EA=1;
}
void consend(void) //发实验项目
{DOG=~DOG;
SBUF=0xff;
while(TI==0);
TI=0;
SBUF=0x2a;
while(TI==0);
TI=0;
SBUF=controlstyle;
while(TI==0);
TI=0;
}
void sendspeed(void) //发速度指令
{
DOG=~DOG;
SBUF=0xfc;
while(TI==0);
TI=0;
SBUF=0xcf;
while(TI==0);
TI=0;
SBUF=sdspeed;
while(TI==0);
TI=0;
}
void sendlc(void) //发加载指令
{DOG=~DOG;
SBUF=0xab;
while(TI==0);
TI=0;
SBUF=0xba;
while(TI==0);
TI=0;
SBUF=sdlc;
while(TI==0);
TI=0;
}
void sendzero(void)
{DOG=~DOG;
SBUF=0xff;
while(TI==0);
TI=0;
SBUF=0x88;
while(TI==0);
TI=0;
}
void sendrnew(void)
{DOG=~DOG;
SBUF=0xff;
while(TI==0);
TI=0;
SBUF=0x11;
while(TI==0);
TI=0;
}
//****-----------------------显"*"
void dis_star(uchar starnum)
{wr_zb(0xf9,9+starnum,48);
send(tab8[0]);
}
//*-------------------------清"*"
void clear_star(uchar starnum)
{uchar j;
for(j=48;j<64;j++)
{wr_zb(0xf3,9+starnum,j);
send(0x00);
}
}
//*-----------------清选择标志---------------
void clearmark(uchar clnum)
{uchar i,j;
for(j=clnum*16;j<clnum*16+16;j++)
{for(i=0;i<2;i++)
{wr_zb(0xf3,i,j);
send(0x00);
}
}
}
/*-----------------显示选择标志---------------*/
void dismark(uchar disnum)
{wr_zb(0xf0,0,disnum);
send(0xa1-0xa0);
send(0xf4-0xa0);
}
/*-----------------显示图形-----------------*/
void disp_img (uchar code *img) reentrant
{
uchar i,j;
for(j=0;j<64;j++)
{
for(i=0;i<24;i++)
{
wr_zb(0xf3,i,j);
send(img[j*24+i]);
}
}
}
//*----------------------------------------显"请输入电机转速值"
void disp_speed(uchar code *chn)
{uchar i;
for(i=0;i<9;i++)
{ wr_zb(0xf0,i+1,0);
send(chn[i*2]-0xa0);
send(chn[i*2+1]-0xa0);
}
for (i=0;i<17;i++)
{wr_zb(0xf1,i+2,16);
send(chn[18+i]);
}
sw[0]=sdspeed/10;
sw[1]=sdspeed-sw[0]*10;
//sw[2]=(sdspeed-sw[0]*1000-sw[1]*100)/10;
//sw[3]=sdspeed-sw[0]*1000-sw[1]*100-sw[2]*10;
for(i=0;i<2;i++)
{ wr_zb(0xf9,i+9,32);
send(tab7[sw[i]]);
}
}
//*----------------------------------------显"请输入励磁电流值"
void disp_lc(uchar code *chn)
{uchar i;
for(i=0;i<9;i++)
{ wr_zb(0xf0,i+1,0);
send(chn[i*2]-0xa0);
send(chn[i*2+1]-0xa0);
}
for (i=0;i<17;i++)
{wr_zb(0xf1,i+2,16);
send(chn[18+i]);
}
lc[0]=sdlc/100;
lc[1]=(sdlc-lc[0]*100)/10;
lc[2]=sdlc-lc[0]*100-lc[1]*10;
//sw[3]=sdspeed-sw[0]*1000-sw[1]*100-sw[2]*10;
for(i=0;i<3;i++)
{ wr_zb(0xf9,i+9,32);
send(tab7[lc[i]]);
}
}
//*-----------------------------------显测量数值
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -