ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:16.54KB ,
资源ID:7668246      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7668246.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(STM32的1602程序.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

STM32的1602程序.docx

1、STM32的1602程序#ifndef LCD1602_STM32_H#define LCD1602_STM32_H#define LCD_RS_1 GPIOE-BSRR=GPIO_Pin_0 7-(LCD)D0D7#ifndef uchar#define uchar unsigned char#endif#ifndef uint#define uint unsigned int#endifextern void delay_nms(unsigned long n);extern void delay_nus(unsigned long n);uint8_t LCD_busy(void); ;

2、 /插入小数点 LCD_DispString(str);/显示浮点小数/*名 称:LCD_Setpos_DispDecimal()*功 能:在指定位置显示一个有效位不超过8位的浮点数*入口参数:row:待显示的行 1,2* col:待显示的列 015* num:待显示的浮点数放大10的整数倍后得到的整数,不超过8位* dot:小数点的位数*出口参数:无*/void LCD_Setpos_DispDecimal(uchar row,uchar col,uint32_t num,uchar dot) LCD_Setpos(row,col); LCD_DispDecimal(num,dot);/*名

3、 称:LCD_DispDateTime()*功 能:显示日历,显示日期与时间*入口参数:year:年,可以是任意值* month:月,112* day:日,131* hour:时,124 或 112* min:分,059* sec:秒,059*出口参数:无*说 明:使用前必须先宏定义USE_LCD_DISP_DATE,在包含文件之前定义有效*显示格式:Date:yyyy-mm-dd * Time:hh:mm:ss */void LCD_DispDateTime(uint32_t year,uchar month,uchar day,uchar hour,uchar min,uchar sec)

4、 LCD_Setpos(1,0); LCD_DispString(Date:); LCD_Dispnum(uint32_t)year); LCD_DispChar(-); LCD_Dispnum(uint32_t)month); LCD_DispChar(-); LCD_Dispnum(uint32_t)day); LCD_Setpos(1,15); LCD_DispChar(*); /第一行结束符显示 LCD_Setpos(2,0); LCD_DispString(Time:); LCD_Dispnum(uint32_t)hour); LCD_DispChar(:); LCD_Dispnum

5、(uint32_t)min); LCD_DispChar(:); LCD_Dispnum(uint32_t)sec); LCD_Setpos(2,15); LCD_DispChar(*); /第二行结束符显示/*名 称:LCD_DispStopWatch()*功 能:显示秒表,显示时,分,秒,10毫秒,精确到10ms*入口参数:hour:时,124 或 112* min:分,059* sec:秒,059* tenms:10ms计数值,如3表示30ms*出口参数:无*显示格式:Current Time: * hh:mm:ss:tt */void LCD_DispStopWatch(uchar h

6、our,uchar min,uchar sec,uchar tenms) LCD_Setpos(1,0); LCD_DispString(Current Time:); LCD_Setpos(1,15); LCD_DispChar(*); /第一行结束符显示 LCD_Setpos(2,2); LCD_Dispnum(uint32_t)hour); LCD_DispChar(:); LCD_Dispnum(uint32_t)min); LCD_DispChar(:); LCD_Dispnum(uint32_t)sec); LCD_DispChar(:); LCD_Dispnum(uint32_t

7、)tenms); LCD_Setpos(2,15); LCD_DispChar(*); /第二行结束符显示/*名 称:LCD_DispFreq()*功 能:显示频率计,动态自动调整频率显示*入口参数:freq:可以显示8位整数表示的频率值,频率范围1Hz99MHz*出口参数:无*说 明:入口的频率值单位是Hz,显示函数自动选择合适的显示方式* freq=1000000显示成6位小数的MHz* else freq=1000 显示成3位小数的KHz* else freq=0 默认显示单位是Hz (三个区间互斥)*/void LCD_DispFreq(uint32_t freq) LCD_Setpo

8、s(1,0); LCD_DispString(Current Freq:); LCD_Setpos(2,1); /显示位置 if(freq=1000000) LCD_DispDecimal(freq,6); LCD_DispString(MHz); else if(freq=1000) LCD_DispDecimal(freq,3); LCD_DispString(KHz); else LCD_Dispnum(freq); LCD_DispString(Hz); LCD_Setpos(2,14); LCD_DispString(OK);/屏幕整体左移一格,用于滚动显示void LCD_Shif

9、tLeft() LCD_Writecmd(0x18);/屏幕整体右移一格,用于滚动显示void LCD_ShiftRight(void) LCD_Writecmd(0x1C);/清屏,清除显示void LCD_Clear(void) LCD_Writecmd(0x01);/使光标还回原点位置void LCD_Return(void) LCD_Writecmd(0x02);/关显示void LCD_Close(void) LCD_Writecmd(0x08);/开显示void LCD_Open(void) LCD_Writecmd(0x0C);/*名 称:LCD_FlickerChar()*功

10、能:使指定位置字符闪烁,不显示光标*入口参数:row:行 1,2 * col:列 015*出口参数:无*说 明:写命令0x0D不显示光标的闪烁,写命令0x0F是显示光标的闪烁* 一旦设定闪烁后,会根据位置变化闪烁,关闪烁写命令0x0C*/void LCD_FlickerChar(uchar row,uchar col) LCD_Writecmd(0x0D); LCD_Setpos(row,col);/关闭字符闪烁void LCD_CloseFlicker(void) LCD_Writecmd(0x0C);/屏幕秒闪烁一次void LCD_FlickerScreen(void) LCD_Writ

11、ecmd(0x08);/关显示 delay_nms(500); LCD_Writecmd(0x0C);/开显示 delay_nms(500);/*名 称:LCD_Init()*功 能:初始化LCD1602*入口参数:无*出口参数:无*常用命令:0x38:16*2显示,5*&点阵显示字符,8位数据;指令执行时间40us* 0x0C:开显示,关光标 40us* 0x08:关显示,关光标 40us* 0x0D:字符闪烁,关光标,接着设定位置,闪烁周期左右* 0x0F:字符闪烁,开光标* 0x06:写完数据自动右移光标,普通情形,从左向右显示 40us* 0x04:写完数据自动左移光标,可以从右向左显

12、示 40us* 0x01:清除显示内容,即清屏 * 0x02:使光标还回起始位置 * 0x18:屏幕上所有字符同时左移一格,适合滚动显示 40us* 0x1C:屏幕上所有字符同时右移一格,适合滚动显示 40us*/void LCD_Init(void) delay_nms(200); /延时20ms LCD_WriteInitcmd(0x38); /16*2显示,5*7点阵,8位数据 delay_nms(10); LCD_WriteInitcmd(0x38); /16*2显示,5*7点阵,8位数据 delay_nms(5); LCD_WriteInitcmd(0x38); /16*2显示,5*

13、7点阵,8位数据 delay_nms(5); LCD_WriteInitcmd(0x08); /先关显示,后开显示 delay_nms(5); LCD_WriteInitcmd(0x06); /自动右移光标,0x04为左移光标 delay_nms(5); LCD_WriteInitcmd(0x01); /清除LCD的显示内容 delay_nms(6); LCD_WriteInitcmd(0x0c); /显示开,关光标;0x08为关显示 delay_nms(5);#endif /防止多次编译/* LCD1602驱动显示实验*by 追梦 2011-4-3、5*/#include #include

14、#define PE00 (uint32_t *)0x/时钟配置函数 8MHz*9=72MHzvoid RCC_Configuration() RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON);/使能HSE if(RCC_WaitForHSEStartUp()=SUCCESS) RCC_HCLKConfig(RCC_SYSCLK_Div1); /HCLK=SYSCLK RCC_PCLK2Config(RCC_HCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div2); RCC_PLLConfig(RCC_PLLSource_HSE_Div

15、1,RCC_PLLMul_9); RCC_PLLCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)=RESET); RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); while(RCC_GetSYSCLKSource()!=0x08); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC| RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE,

16、ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);/延时n usvoid delay_nus(unsigned long n) unsigned long j; while(n-) j=8; while(j-); /延时n msvoid delay_nms(unsigned long n) while(n-) delay_nus(1100);/GPIO配置函数void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; = GPIO_Pin_All;

17、 = GPIO_Speed_10MHz; = GPIO_Mode_Out_OD; GPIO_Init(GPIOD, &GPIO_InitStructure); /PD口OD输出 = (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2); = GPIO_Mode_Out_OD; /2 OD输出 GPIO_Init(GPIOE, &GPIO_InitStructure);/int main() /uint32_t i=0; char str=happy!; RCC_Configuration(); GPIO_Configuration(); LCD_Init(); LCD_Setpos_DispString(1,3,str); LCD_DispFreq(123456); LCD_FlickerChar(2,3); LCD_FlickerScreen(); LCD_FlickerScreen(); LCD_FlickerScreen(); delay_nms(2000); LCD_CloseFlicker(); while(1) ;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1