📄 显示.c
字号:
#include<reg51.h>
#include<stdio.h>
#include<absacc.h>
#define uint unsigned int
#define uchar unsigned char
extern void delay(uchar ntime);
sbit LOAD=P1^0;//CS
sbit DAT=P1^1;
sbit CLK=P1^2;//WR
uchar code tab[16]={0xb7,0x06,0xe5,0xc7,0x56,0xd3,0xf3,0x07,0xf7,0xd7,
0x76,0x75,0xb0,0x40,0x00,0xff};
void wrcom(uint com)
{
uchar i;
LOAD=1;
delay(1);
LOAD=0;//CS=0
for(i=12;i>=1;i--)
{
CLK=0;
if (com&0x8000) {DAT=1;}
else{DAT=0;}
com=com<<1;
CLK=1;
delay(1);
}
}
void init61a()
{
wrcom(0x8520);//初始化命令 1000 0101 0010 0000;0010 1001
wrcom(0x8280);//定义外晶振 1000 0010 1000 0000
wrcom(0x8020);//开振荡 1000 0000 0010 0000
wrcom(0x8060);//开显示 1000 0000 0110 0000
}
//==========显示模块=========
//DAT P1.1; LOAD P1.0 ; CLK P1.2
//=======地址:add====数据:dat========//
//======LCM061A 地址分配=============
//千位0x04 百位0x06 十位0x08 个位 0x0a
void cxdisp(uchar dat,uchar add)
{
uchar i,j=0xa0;
uint ads=0;
ads=add;
ads=ads<<8;
ads=ads+tab[dat];
ads=ads<<3;//高13位有效
LOAD=1;
delay(5);
LOAD=0;//CS=0
for(i=4;i>=1;i--)
{
CLK=0;
if (j&0x80) {DAT=1;}
else{DAT=0;}
j=j<<1;
CLK=1;
delay(1);
}
for(i=13;i>=1;i--)
{
CLK=0;
if (ads&0x8000) {DAT=1;}
else{DAT=0;}
ads=ads<<1;
CLK=1;
delay(1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -