HT1622(或TM1622)程序设计记录

2021.03.12 使用TM1622驱动段码液晶屏,使用了COM0-7;SEG0-SEG31,今天对这边程序进行了整理,用以记录。
硬件部分:
在硬件上只使用TM1622驱动段码液晶屏,未使用蜂鸣器和WDT,故只使用了数据接口,1脚CS(片选);4脚WR(时钟)5脚DATA(数据);注意R1的取值范围10K-15K,阻值过小会使对比度过高,段码显示会看不清楚,显白。
软件部分:
1.TM1622的RAM为32*8bit,RAM数据直接映射到LCD,COM和SEG对应的关系如下图:
2.TM1622的命令 TM1622命令主要分为命令操作和数据操作;命令操作实现TM1622的初始化,数据操作实现段码LCD的段码显示。
3.TM1622的读写时序:这里只列出了写时序,也只用到写时序。SCK的上升沿写入数据。

4.程序的具体实现:
sbit CS_1622 =P1^3;//
sbit SCK_1622 =P1^4;//
sbit DATA_1622 =P1^5;//
#define _Nop() nop();nop();
//命令定义:
#define SYSDIS 0X00 //0b1000 0000 0000 关振系统荡器和LCD偏压发生器
#define SYSEN 0X02 //0b1000 0000 0010 打开系统振荡器
#define LCDOFF 0X04 //0b1000 0000 0100 关LCD偏压
#define LCDON 0X06 //0b1000 0000 0110 打开LCD偏压
#define XTAL 0x28 //0b1000 0010 1000 外部接时钟
#define RC32 0X30 //0b1000 0011 0000 内部时钟
#define TONEON 0X12 //0b1000 0001 0010 打开声音输出
#define TONEOFF 0X10 //0b1000 0001 0000 关闭声音输出
#define WDTDIS 0X0A //0b1000 0000 1010 禁止看门狗

/******************************************************
写数据函数,cnt为传送数据位数,数据传送为高位在前
/
void Ht1622Wr_Data(uchar Data,uchar cnt)
{
uchar i;
for (i=0;i<cnt;i++)
{
SCK_1622=0;
_Nop();
DATA_1622=Data&0x80;
_Nop();
SCK_1622=1;
_Nop();
Data<<=1;
}
}
/
*
函数名称:void Ht1622WrCmd(uchar Cmd)
功能描述: HT1622命令写入函数
全局变量:无
参数说明:Cmd为写入命令数据
返回说明:无
设 计 人:
版 本:1.0
说 明:写入命令标识位100
********************************************************/
void Ht1622WrCmd(uchar Cmd)
{
CS_1622=0;
_Nop();
Ht1622Wr_Data(0x80,4); //写入命令标志100 0 :命令类型100 A5
Ht1622Wr_Data(Cmd,8); //写入命令数据 A4-A0,D0-D3
CS_1622=1;
_Nop();
}

/********************************************************
函数名称:void Ht1622WrOneData(uchar Addr,uchar Data)
功能描述: HT1622在指定地址写入数据函数
全局变量:无
参数说明:Addr为写入初始地址,Data为写入数据
返回说明:无
设 计 人:
版 本:1.0
说 明:因为HT1622的数据位8位
********************************************************/
void Ht1622WrOneData(uchar Addr,uchar Data)
{
CS_162=0;
Ht1622Wr_Data(0xa0,3); //写入数据标志101
Ht1622Wr_Data(Addr<<2,6); //写入地址数据
Ht1622Wr_Data(Data,8); //TM1622 8位数据
CS_1622=1;
_Nop();
}

/********************************************************
函数名称:void Ht1622WrAllData(uchar Addr,uchar *p,uchar cnt)
功能描述: HT1622连续写入方式函数
全局变量:无
参数说明:Addr为写入初始地址,*p为连续写入数据指针,
cnt为写入数据总数
返回说明:无
设 计 人:
版 本:1.0
说 明:HT1622的数据位8位
********************************************************/
void Ht1622WrAllData(uchar Addr,uchar *p,uchar cnt)
{
uchar i;
CS_1622=0;
Ht1622Wr_Data(0xa0,3); //写入数据标志101
Ht1622Wr_Data(Addr<<2,6); //写入地址数据
for (i=0;i<cnt;i++)
{
Ht1622Wr_Data(*p,8); //写入数据
p++;
}
CS_1622=1;
_Nop();
}

/********************************************************
函数名称:void Ht1622_Init(void)
功能描述: HT1622初始化
全局变量:无
参数说明:无
返回说明:无
设 计 人:
版 本:1.0
说 明:初始化后,液晶屏所有字段均显示
********************************************************/
void Ht1622_Init(void)
{
CS_1622=1;
SCK_1622=1;
DATA_1622=1;
DelayMS(2000); //延时使LCD工作电压稳定
Ht1622WrCmd(RC32); //使用内部振荡器
Ht1622WrCmd(SYSDIS);
Ht1622WrCmd(WDTDIS);
Ht1622WrCmd(SYSEN);
Ht1622WrCmd(LCDON);
}
//=========================================
//main函数,仅用于测试
//=========================================
void main()
{
uchar i,j;
Ht1622_Init();
// LCD清屏
Ht1622WrAllData(0,Ht1622Tab,32);
i=0;j=1;
while(1){ //test
Ht1621WrOneData(i++,j++);
if(i>=32) {i=0;j=1;}
DelayMS(5000);
} //while
}
//============================================
2021.3.13 J

TM1622的程序设计实现相关推荐

  1. gpgpu-sim卡分配程序设计实例分析

    gpgpu-sim卡分配程序设计实例分析 运行代码地址:https://github.com/gpgpu-sim/gpgpu-sim_distribution 一.概述 此文件包含有关安装.生成和运行 ...

  2. CUDA C++程序设计模型

    CUDA C++程序设计模型 本章介绍了CUDA编程模型背后的主要概念,概述了它们在C++中的暴露方式.在编程接口中给出了CUDA C++的广泛描述. 使用的矢量加法示例的完整代码可以在矢量加法CUD ...

  3. 山西农业大学c语言答案,第一章C语言及程序设计概述-东北农业大学教务处.doc...

    全国高等农林院校"十一五"规划教材 C语言程序设计 孙力 主编 中国农业出版社 内容简介 本书是全国高等农林院校"十一五"规划教材之一. 全书共11章,分别介绍 ...

  4. c语言程序设计第二版第五章课后答案甘勇,郑州工程技术学院副院长甘勇来校讲学和指导工作...

    12月12日,郑州工程技术学院副院长甘勇一行莅临我校讲学和指导工作.黄河交通学院评建办公室主任汤迪操.教务处处长贾宗璞,智能工程学院领导班子.主任及骨干教师参加了本次会议,会议由智能工程学院党总支书记 ...

  5. php面向对象程序设计,PHP面向对象程序设计类的定义与用法简单示例

    本文实例讲述了PHP面向对象程序设计类的定义与用法.分享给大家供大家参考,具体如下: class Person { private $name; private $sex; private $age; ...

  6. 《Java程序设计》第十一周学习总结

    20175334 <Java程序设计>第十一周学习总结 教材学习内容总结 第十三章 URL类 一个URL对象通常包含最基本的三部分信息:协议.地址.资源. URL对象调用 InputStr ...

  7. 20175320 2018-2019-2 《Java程序设计》第2周学习总结

    20175320 2018-2019-2 <Java程序设计>第2周学习总结 教材学习内容总结 本周学习了教材的第二章及第三章的内容.在这两章中介绍了Java编程中的基本数据类型与数组以及 ...

  8. 20172324 2018-2019-1《程序设计与数据结构》实验2报告

    20172324 2018-2019-1<程序设计与数据结构>实验2报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 曾程 学号:20172324 实验教师:王志强 ...

  9. 20172329 2017-2018-2 《程序设计与数据结构》实验五报告

    这是这学期最后一次实验了,也是学到了很多东西,希望自己可以可以善始善终,加油! 让我们开始这一篇博客吧! 20172329 2017-2018-2 <程序设计与数据结构>实验五报告 课程: ...

  10. c语言程序设教材计 乌云高娃,C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt...

    C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt 主要内容 课程概述 为什么选择C语言作为入门课程? C语言 ...

最新文章

  1. 中双目运算符_C++日志(四十)教你如何以非成员函数的形式重载运算符
  2. mysql中数字格式化_mysql中格式化数字详解
  3. boost::hana::overload用法的测试程序
  4. 常见java面试题 普通类和抽象类的区别?
  5. 有关Botton的用法(二)
  6. 互补品的交叉弹性系数_重庆事业单位综合备考:需求价格弹性和需求交叉价格弹性有何区别...
  7. 计算机的限制而被取消win7,win7系统本次操作由于这台计算机限制而被取消的解决方法...
  8. Java foreach remove问题分析
  9. 通用条形码生成 API 接口
  10. AE新知识-10月30日
  11. Shell 脚本:DDNS for aliyun
  12. selenium爬取裁判文书网
  13. 如何更改itunes备份位置_itunes备份路径是什么,如何修改itunes备份路径
  14. No operations allowed after connection closed
  15. android dropbox切换账户,在Android上自动同步Dropbox | MOS86
  16. 形容词记忆(六):ive, ile, ary后缀常用词
  17. 《网络是这样连接的》读书笔记2
  18. 无意中学到的,感谢通用
  19. $Loj10155$ 数字转换(求树的最长链) 树形$DP$
  20. 【Windows】ping ip+端口

热门文章

  1. Windows开发之VC++仿QQ迷你首页(迷你资讯)
  2. 电脑有弹窗广告怎么办?真实个人经验分享
  3. 职称计算机word中文字处理,计算机职称考试Word 2007中文字处理考试大纲
  4. [C++]一个拥有音乐播放器所有基本功能的音乐库
  5. stm32 带通滤波器_PCB设计中建立带通滤波器波特图
  6. 戴尔服务器技术响应表,戴尔PowerEdge T110 II产品技术白皮书
  7. 再谈王垠/王垠—写给清华大学的退学申请
  8. 网络工程师必备 5款网络故障排除工具
  9. 常见模拟电路设计 四 :比较器详讲
  10. javascript怎么开启详细教程