断码屏驱动程序Word文件下载.docx
- 文档编号:5930955
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:16
- 大小:19.68KB
断码屏驱动程序Word文件下载.docx
《断码屏驱动程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《断码屏驱动程序Word文件下载.docx(16页珍藏版)》请在冰点文库上搜索。
write_com(ucharcom)
/*写命令到HT1621*/
uchari,k;
_CS=0;
//片选,低电平有效
k=0x80;
i!
=3;
i++)
/*WriteCMDcode:
100,写命令代码*/
{
if(k&
0x80==0)
_DAT=0;
else
_DAT=1;
_WR=0;
//发出写时钟脉冲
_WR=1;
k=k<
<
1;
//准备下一位数据
}
k=com;
//命令字节
=9;
/*WriteCMD(HT1621的命令一般是9位,且最后一个任意取值)*/
_DAT=1;
_WR=0;
_WR=1;
_CS=1;
//取消片选信号
/*------------------*/
write_dat(ucharaddr,uchardat)/*写显示数据到LCD*/
k=0xa0;
i=!
3;
101,写命令代码*/
k=addr<
2;
//内存地址
=6;
/*WriteRAMaddress:
xxA5~A0*/
k=dat<
4;
//四位显示数据
=4;
/*WriteDisplaydata:
xxxxC0~C3*/
DISP_NUM(uchardat)
/*Writeanumber*/
uchari,j,addr;
for(i=8;
=28;
write_dat(i,dat<
4);
//一个字节要分两次传送
write_dat(++i,dat);
DIS(uchardat)
uchari,j;
write_dat(i,dat);
setup_lcd(void)
delay(100);
write_com(0x01);
/*Enablesystem,SYSEN命令*/
write_com(0x18);
/*CLOCKSOURCEIS256kRCONCHIP,RC256K*/
write_com(0x29);
/*BIAS=1/3DUTY=1/4,LCD1/3偏置,4个COM*/
write_com(0x03);
/*Displayon,打开LCD偏置发生器*/
DIS(0x00);
/*ClearLCD,清屏(用全0填显示内存)*/
delay(20);
main()
uchari,j,temp;
setup_lcd();
//初始化LCD驱动IC
delay(10);
while
(1)
delay(200);
DIS(0x0f);
//显示黑白条纹
//清屏
temp=0xf8;
=8;
/*DisplayICONs*/
for(j=0;
j=4;
write_dat(i,temp>
>
1);
write_dat(13,0x01);
write_dat(19,0x01);
write_dat(23,0x01);
DISP_NUM(0xbe);
/*0*/
//七段数码显示
DISP_NUM(0x06);
/*1*/
DISP_NUM(0x7c);
/*2*/
DISP_NUM(0x5e);
/*3*/
DISP_NUM(0xc6);
/*4*/
DISP_NUM(0xda);
/*5*/
DISP_NUM(0xfa);
/*6*/
DISP_NUM(0x0e);
/*7*/
DISP_NUM(0xfe);
/*8*/
DISP_NUM(0xde);
/*9*/
}<
/t;
另一个程序
1621lcd液晶的51单片机驱动程序分享
[复制链接]
#include<
reg51.h>
intrins.h>
absacc.h>
#defineucharunsignedchar
#defineuintunsignedint
#define_Nop()_nop_()
#defineBIAS0x52
//0b100001010010
1/3duty4com
#defineSYSDIS0X00
//0b100000000000
关振系统荡器和LCD偏压发生器
#defineLCDOFF0X04
//0b100000000100
关LCD偏压
#defineLCDON0X06
//0b100000000110
打开LCD偏压
#defineSYSEN0X02
//0b100000000010打开系统振荡器
#defineXTAL0x28
//0b100000101000外部接时钟
#defineRC2560X30
//0b100000110000
内部时钟
#defineTONEON0X12
//0b100000010010
打开声音输出
#defineTONEOFF0X10
//0b100000010000关闭声音输出
#defineWDTDIS0X0A
//0b100000001010
禁止看门狗
//HT1621控制位
sbitHT1621_DAT=P2^5;
sbitHT1621_CS=P2^6;
sbitHT1621_WR=P2^7;
ucharcodeHt1621Tab[]={0xf5,0x05,0xb6,0x57,0x53,0xd3,0xf3,0x85,0xf7,0xd7};
//0,1,...8,9
ucharcodeHt1621Tab1[]={0xeb,0x0a,0xad,0x8f,0x4e,0xc7,0xe7,0x8a,0xef,0xcf};
//delayus
voidDelay(ucharus)
while(--us);
//delayms
voidDelayMS(uintiMs)
uinti,j;
for(i=0;
iMs;
65;
j++)Delay
(1);
//完成写一个命令包括头(100)
voidHt1621WrCmd(ucharucTmpCmd)
uchardatai,ucCmdByte=0x80;
HT1621_CS=0;
_Nop();
for(i=0;
if(ucCmdByte&
0x80)HT1621_DAT=1;
else
HT1621_DAT=0;
HT1621_WR=0;
HT1621_WR=1;
ucCmdByte<
=1;
8;
if(ucTmpCmd&
elseHT1621_DAT=0;
ucTmpCmd<
HT1621_CS=1;
//写命令+地址
voidHt1621WrDataCmd(ucharucAddr)
uchardatai,ucDataCmd=0x05;
//101
ucDataCmd<
=5;
if(ucDataCmd&
ucAddr<
=2;
6;
if(ucAddr&
//完成写一个字节数据
voidHt1621WrByte(ucharucTmpData)
uchardatai;
if(ucTmpData&
ucTmpData<
voidCPU_Init()
P0=0XFF;
P1=0xf8;
P2=0XFF;
P3=0XFF;
voidHt1621_Init()
HT1621_DAT=1;
DelayMS(2000);
//延时使LCD工作电压稳定
Ht1621WrCmd(BIAS);
Ht1621WrCmd(RC256);
//使用内部振荡器
Ht1621WrCmd(SYSDIS);
Ht1621WrCmd(WDTDIS);
Ht1621WrCmd(SYSEN);
Ht1621WrCmd(LCDON);
voidmain()
SP=0X60;
CPU_Init();
Ht1621_Init();
//上电初始化LCD
while
(1)
10;
Ht1621WrDataCmd(4);
//往RAM的地址4写数据
这里的参数范围为:
0-31
Ht1621WrByte(Ht1621Tab[i]);
//2S
案例
双十二解锁赚钱新姿势
这个逻辑图到底怎么编辑显示数组啊?
下面是原理图
下面是网上找的代码,运行后液晶可以显示,就是不知道怎么做到显示自己要的显示值
STC15F2k60s2.h>
clude<
sbitBL=P5^4;
//原来代码没有这个IO口操作,就是液晶背光源
//sbitCS=P3^5;
stdio.h>
/*standardI/O.h-file*/
stdlib.h>
/*standardlibrary.h-file*/
ctype.h>
/*characterfunctions*/
#define_Nop()_nop_();
_nop_();
_nop_()
#defineBIAS0x52//1/3偏压,4背极100001010010
#defineSYSDIS0X00//关闭系统时钟和偏压发生器
#defineSYSEN0X02//打开系统时钟
#defineLCDOFF0X04
#defineLCDON0X06
#defineXTAL0x28
#defineRC2560X30//系统时钟选择为片内RC振荡器
#defineTONEON0X12//打开音频输出
#defineTONEOFF0X10//关闭音频输出
#defineWDTDIS0X0A//禁止WDT溢出标志输出
sbitHT1621_DAT=P3^7;
sbitHT1621_CS=P3^5;
sbitHT1621_WR=P3^6;
//sbitcs_sda=P3^5;
//dog
//constcharnum[]={0x};
ucharcode
Ht1621Tab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
voidDelay(ucharus)//5,7,9
for(j=0;
voidHt1621Wr_Data(ucharData,ucharcnt)//cnt是从运行函数传送来的COM数。
uchari;
cnt;
i++)//cnt=4然后=8
//P3.6口
HT1621_DAT=Data&
0x80;
//P3.7口//10000000数据移动到高位10100000
Data<
voidHt1621WrCmd(ucharCmd)
Ht1621Wr_Data(0x80,4);
//写入命令的ID:
100
Ht1621Wr_Data(Cmd,8);
//写入实际命令的高8位(CMD.):
C8-C1
voidHt1621WrOneData(ucharAddr,ucharData)
Ht1621Wr_Data(0xa0,3);
//写入数据标志101//写入写数据的ID101高3位有效
Ht1621Wr_Data(Addr<
2,6);
//将实际地址挪到高位//写入地址数据//写入6个位初始地址高6位有效
Ht1621Wr_Data(Data<
4,4);
//将实际数据挪到高位//写入数据//写入4个位数据高4位有效
voidHt1621WrAllData(ucharAddr,uchar*p,ucharcnt)
//10100000//写入写数据的ID101高3位有效
////将实际地址挪到高位//写入6个位初始地址高6位有效
Ht1621Wr_Data(*p,8);
p++;
voidHt1621_Init(void)
DelayMS(500);
//cs_sda=~cs_sda;
//
uchari,j,t;
//上电初始化LCD
//原来的这个不知道是什么,我注释掉了
BL=0;
if(i==111111)
Ht1621WrAllData(0,Ht1621Tab,16);
//清屏,这里的16是什么意思还没搞懂。
。
32;
t=0x01;
for(j=0;
Ht1621WrOneData(i,t);
t<
t++;
DelayMS(100);
//还有这里也有,不知道原来是做什么用的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 断码屏 驱动程序
![提示](https://static.bingdoc.com/images/bang_tan.gif)