和泰单片机HT67F489段式液晶LCD扫描程序

这篇博客详细介绍了如何使用和泰单片机HT67F489来编写段式液晶LCD的扫描程序。通过分析`LCD.H`、`LCD.C`和`MAIN.C`三个关键文件,揭示了单片机控制LCD显示的原理和步骤,为读者提供了宝贵的实践经验和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LCD.H

#ifndef __LCD__H__
#define __LCD__H__

#define u8 unsigned char
#define u16 unsigned int

typedef struct {
    volatile unsigned char b0 : 1;//bit
    volatile unsigned char b1 : 1;
    volatile unsigned char b2 : 1;
    volatile unsigned char b3 : 1;
    volatile unsigned char b4 : 1;
    volatile unsigned char b5 : 1;
    volatile unsigned char b6 : 1;
    volatile unsigned char b7 : 1;
}bits;//8bit char

typedef union{
    bits b;
    u8 data;        
}LCD;

void dispindex(u8 index,u8 num);
void dispnum(u16 data);
void dispmark(u8 obj,u8 on);
void setlcd(u8 data);
void lcdinit();
void LcdScan();

void RefreshLcd(void);
void LcdSet(void);
void LcdReset(void);

#endif

LCD.C

#include <HT67F489.H>
#include "lcd.h"

#define u8 unsigned char
#define
### HT32F52352 单片机延时函数示例代码 对于HT32F52352单片机,定义了用于实现毫秒级微秒级延迟的函数。这些函数被封装在一个头文件`delay.h`中[^2]。 #### 头文件 `delay.h` 此头文件包含了必要的宏定义以及对外部可见的延时函数声明: ```c #ifndef __DELAY_H #define __DELAY_H #include "ht32_cm0plus_misc.h" void delay_s(u16 s); void delay_ms(u16 ms); void delay_us(u32 us); #endif /* __DELAY_H */ ``` 为了展示如何具体实现上述延时功能,在源文件`delay.c`里可以找到对应的函数体。下面给出的是基于循环计数器来模拟时间流逝从而达到指定延时效果的一种常见做法。请注意实际应用中可能还需要考虑系统频率等因素的影响以确保延时精度。 #### 源文件 `delay.c` 这里提供了一个简单的例子说明怎样编写这三个延时函数: ```c #include "delay.h" #include "ht32_board.h" // 定义一个忙等待的延时函数 static void _Delay_Cycles(vu32 nCount) { vu32 index; while (nCount--) for(index=0;index<8;index++); } void delay_s(u16 s) { u16 i; for(i = 0; i < s; i++) Delay_ms(1000); // 使用已经定义好的ms级别延时完成s级别的延时 } void delay_ms(u16 ms) { SystemCoreClockUpdate(); SysTick_Config(SystemCoreClock / 1000 * ms); } void delay_us(u32 us) { _Delay_Cycles(us * (SystemCoreClock / 1000000)); } ``` 在这个实现版本中,通过调用`SysTick_Config()`配置定时器产生精确的时间间隔;而对于更短时间尺度下的us级别延时,则采用了一种较为粗略的方式——即利用CPU指令执行周期来进行估算并形成相应的延时期间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值