2022年AVR单片机C语言库[参 .pdf

上传人:Che****ry 文档编号:27189007 上传时间:2022-07-23 格式:PDF 页数:33 大小:323.25KB
返回 下载 相关 举报
2022年AVR单片机C语言库[参 .pdf_第1页
第1页 / 共33页
2022年AVR单片机C语言库[参 .pdf_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《2022年AVR单片机C语言库[参 .pdf》由会员分享,可在线阅读,更多相关《2022年AVR单片机C语言库[参 .pdf(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、CodeVisionAVR C 库函数介绍 刘汧1CodeVisionAVR C Library Functions ReferenceCodeVisionAVR C 库函数介绍译自 CodeVisionA VR C Compiler Help目录:1. Character Type Functions 字符类型函数2. Standard C Input/Output Functions 标准输入输出函数3. Standard Library Functions 标准库和内存分配函数4. Mathematical Functions 数学函数5. String Functions 字符串函数6

2、. BCD Conversion Functions BCD 转换函数7. Memory Access Functions 存储器访问函数8. Delay Functions 延时函数9. LCD Functions LCD函数10. LCD Functions for displays with 4x40 characters 4 40 字符型 LCD 函数11. LCD Functions for displays connected in 8 bit memory mapped mode 以 8 位外部存储器模式接口的LCD 显示函数12. I2C Bus Functions I2C 总

3、线函数13. National Semiconductor LM75 Temperature Sensor Functions LM75温度传感器函数14. Dallas Semiconductor DS1621 Thermometer/Thermostat Functions DS1621 温度计函数15. Philips PCF8563 Real Time Clock Functions PCF8563 实时时钟函数16. Philips PCF8583 Real Time Clock Functions PCF8583 实时时钟函数17. Dallas Semiconductor DS1

4、302 Real Time Clock Functions DS1302 实时时钟函数18. Dallas Semiconductor DS1307 Real Time Clock Functions DS1307 实时时钟函数19. 1 Wire Protocol Functions 单线通讯协议函数20. Dallas Semiconductor DS1820/DS1822 Temperature Sensors Functions DS1820/1822温度传感器函数21. SPI Functions SPI 函数22.Power Management Functions 电源管理函数2

5、3.Gray Code Conversion Functions 格雷码转换函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 33 页 - - - - - - - - - CodeVisionAVR C 库函数介绍 刘汧2前言:如果你要使用库函数,就必须用 #include 包含相应的头文件。例子:/* 使用库函数前要先包含头文件 */#include / 有 abs 函数#include / 有 putsf 函数void main(void) int a,b;a=-9

6、9;/* 使用库函数 */b=abs(a);putsf(Hello world);1. Character Type Functions 字符类型函数这些函数的原型放在“.INC ”目录的“ctype.h”头文件中。使用这些之前必须用“#include ”包含头文件。unsigned char isalnum(char c) 如果 c 是数字或字母返回1 。unsigned char isalpha(char c) 如果 c 是字母返回1 。unsigned char isascii(char c) 如果 c 是 ASCII 码( 0127)返回 1 。unsigned char iscntr

7、l(char c) 如果 c 是控制字符(0.31 或 127)返回 1 。unsigned char isdigit(char c) 如果 c 是数字返回1 。unsigned char islower(char c) 如果 c 是小写字母返回1 。unsigned char isprint(char c) 如果 c是一个可打印字符(32127)返回 1 。unsigned char ispunct(char c) 如果 c是一个除空格、数字或字母的可打印字符返回1 。unsigned char isspace(char c) 如果 c 是空格返回1 。unsigned char isupp

8、er(char c) 如果 c 是大写字母返回1 。unsigned char isxdigit(char c) 如果 c 是 16 进制数字返回 1 。char toascii(char c) 返回 c 对应的 ASCII 。unsigned char toint(char c) 把 c 当做 16 进制字符并返回对应的10 进制数( 015) 。char tolower(char c) 如果 c 是大写字母返回对应的小写字母。char toupper(char c) 如果 c 是小写字母返回对应的大写字母。2. Standard C Input/Output Functions 标准输入输

9、出函数这些函数的原型放在 “.INC ” 目录的“stdio.h” 头文件中。使用这些之前必须用 “#include ”包含头文件。char getchar(void) 使用查询方式返回由UART 接收的一个字符。void putchar(char c) 使用查询方式由UART 发送一个字符c 。使用这些函数之前,你必须:设置 UART 的波特率,设置接收允许,设置发送允许。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 33 页 - - - - - - - - - Co

10、deVisionAVR C 库函数介绍 刘汧3例子:#include #include /* 晶振频率 Hz */#define xtal 4000000L/* 波特率 */#define baud 9600void main(void) char k;/* 设置波特率 */UBRR=xtal/16/baud-1;/* 设置 UART 控制寄存器, RX & TX 允许 , 不使用中断, 8 位数据模式 */UCR=0 x18;while (1) /* 接收 */ k=getchar();/* 发送 */ putchar(k);你也可以使用Project|Configure|C Compile

11、r菜单选项设置波特率。如果你使用其它的输入输出外设,你必须根据你的外设修改 getchar 和 putchar 函数。这些函数的源代码在stdio.h 文件里。所有高级别的输入输出函数都使用getchar 和 putchar 。void puts(char *str) 使用 putchar 把 SRAM 中的以空字符结束的字符串输出,并在后面加换行符。void putsf(char flash *str) 使用 putchar 把 FLASH 中的以空字符结束的字符串输出,并在后面加换行符。void printf(char flash *fmtstr , arg1, arg2, .) 使用 p

12、utchar 按格式说明符输出格式化文本 fmtstr 字符串。格式化文本fmtstr 字符串是常量,必须放在FLASH 中。printf 执行的是标准C 的一个子集。下面是格式化说明符:%c输出一个 ASCII 字符%d输出有符号十进制整数%i输出有符号十进制整数%u 输出无符号十进制整数%x输出小写字母的十六进制整数%X输出大写字母的十六进制整数%s输出 SRAM 中的以空字符结束的字符串%输出 % 字符所有输出的数都是右对齐的,并在左侧加空格补齐。如果在 % 和 d 、i 、u 、x 或 X 之间加入一个字符0 ,那么输出的数的左侧加0 补齐。如果在 % 和 d 、 i 、 u 、x 或

13、 X 之间加入一个字符 - ,那么输出的数左对齐。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 33 页 - - - - - - - - - CodeVisionAVR C 库函数介绍 刘汧4如果在 % 和 d 、i 、u 、x 或 X 之间加入宽度限制符(09) ,可以指定输出的数的最小宽度。如果在宽度限制符前加入字符 - ,输出的数左对齐。void sprintf(char *str, char flash *fmtstr , arg1, arg2, .)这个函数与

14、printf 类似,只是它的格式化字符放在以空字符结尾的字符串str 中。char *gets(char *str, unsigned char len) 使用 getchar 接收以换行符结束的字符串str。换行符会被0 替换。字符串的最大长度是len。如果已经收到了len 个字符后还没有收到换行符,那么字符串就以 0 结束,函数停止执行并退出。函数的返回值是指向str 的指针。signed char scanf(char flash *fmtstr , arg1 address, arg2 address, .) 使用 getchar按格式说明符接收格式化文本fmtstr 字符串。格式化文

15、本fmtstr 字符串是常量,必须放在FLASH 中。scanf 执行的是标准C 的一个子集。下面是格式化说明符:%c接收一个ASCII 字符%d接收有符号十进制整数%i接收有符号十进制整数%u 接收无符号十进制整数%x接收无符号十六进制整数%s接收以空字符结束的字符串函数返回成功接收的个数,如果返回-1 表示接收出 错。signed char sscanf(char *str, char flash *fmtstr , arg1 address, arg2 address, .)这个函数与scanf 类似,只是它的格式化字符放在SRAM 中的以空字符结尾的字符串str中。3. Standar

16、d Library Functions 标准库和内存分配函数这些函数的原型放在“.INC ”目录的“stdlib.h ”头文件中。使用这些之前必须用“#include ”包含头文件。int atoi(char *str) 转换字符串str 为整型数并返回它的值,字符串str 起始 必须是十进制数字的字符,否则 返回 0。当 碰到字符串中 第一个 非十进制数字的字符时,转换结束。long int atol(char *str) ) 转换字符串str 为长整型数并返回它的值,字符串str 起始 必须是长整型数形式字符, 否则 返回 0。void itoa(int n, char *str) 转换整

17、型数n 为字符串 str。void ltoa(long int n, char *str) 转换长整型数n 为字符串 str。void ftoa(float n, unsigned char decimals, char *str) 转换 浮点 数 n 为字符串 str。由 decimals 指定 四舍五 入保留 小数位(最 多五 位) 。例子:char *pi;ftoa(3.1415926,3,pi);/pi=”3.142 ”void ftoe(float n, unsigned char decimals, char *str) 转换 浮点 数 n 为字符串 str。字符串表示 为科 学计

18、数 法形 式,由 decimals 指定 四舍五 入保留小数位(最 多五 位) 。例子:char *pi10;ftoe(3.1415926*10,4,pi10);/pi10=”3.1416e1 ”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 33 页 - - - - - - - - - CodeVisionAVR C 库函数介绍 刘汧5float atof(char *str) 转换字符串str 为浮点 数并返回它的值,字符串str 起始 必须是数字字符或小数 点, 否

19、则 返回0。当 碰到字符串中 第 一个十进制数字和小数点以外的字符时,转换结束。int rand (void) 产生 一个 0 到 32767 之间的 伪随机 数。void srand(int seed) 设置 伪随机 数发 生器的 种子数。4. Mathematical Functions 数学函数这些函数的原型放在 “.INC ” 目录的“math.h” 头文件中。使用这些之前必须用 “#include ”包含头文件。unsigned char cabs(signed char x) 返回 x 的绝对值。unsigned int abs(int x) 返回 x 的绝对值。unsigned

20、long labs(long int x) 返回 x 的绝对值。float fabs(float x) 返回 x 的绝对值。signed char cmax(signed char a, signed char b) 返回 a和 b 的最大值。int max(int a, int b) 返回 a 和 b 的最大值。long int lmax(long int a, long int b) 返回 a 和 b 的最大值。float fmax(float a,float b) 返回 a 和 b 的最大值。signed char cmin(signed char a, signed char b) 返

21、回 a 和 b 的最小值。int min(int a, int b) 返回 a 和 b 的最小值。long int lmin(long int a, long int b) 返回 a 和 b 的最小值。float fmin(float a, float b) 返回 a 和 b 的最小值。signed char csign(signed char x) 当 x 分别 为负数、 0、正数时,返回 1 、0、1。signed char sign(int x) 当 x 分别 为负 数、 0、正数时,返回 1 、0、1。signed char lsign(long int x) 当 x 分别 为负 数、

22、 0、正数时,返回 1 、0、1。signed char fsign(float x) 当 x 分别 为负 数、 0、正数时,返回 1 、0、1。unsigned char isqrt(unsigned int x) 返回无符号整数x 的平方根。unsigned int lsqrt(unsigned long x) 返回无符号长整数x 的平方根。float sqrt(float x) 返回 正浮点 数 x 的 平方根。float floor(float x) 返回不大 于 x 的最大整数。float ceil(float x) 返回对应 x 的整数,小数部分四舍五 入。float fmod(f

23、loat x, float y) 返回 x/y 的余数。float modf(float x, float *ipart) 把浮点 数 x 分解成整数部分和小数部分。整数部分存放在 ipart 指向的 变量中,小数部分应大于或等于 0 而小于 1并作为 函数的返回值。float ldexp(float x, int expn) 返回 x 2 expn。float frexp(float x, int *expn) 把 浮点 数 x 分解成数字部分y(尾数)和以2 为底的指数 n 两个部分 即 xy 2 n ,y 要大 于等于 0.5 小于 1,y 值被函数返回 而 expn 值存放在expn

24、指向的 变量中。float exp(float x) 返回 e x的值。float log(float x) 返回 x 的自 然对数。float log10(float x) 返回以 10 为底 的 x 的对数。float pow(float x, float y) 返回 x y的值。float sin(float x) 返回 x 的正弦 函数值, x 为弧 度。float cos(float x) 返回 x 的余弦 函数值, x 为弧 度。float tan(float x) 返回 x 的正切 函数值, x 为弧 度。名师资料总结 - - -精品资料欢迎下载 - - - - - - - -

25、- - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 33 页 - - - - - - - - - CodeVisionAVR C 库函数介绍 刘汧6float sinh(float x) 返回 x 的双曲正弦 函数值, x 为弧 度。float cosh(float x) 返回 x 的双曲余弦 函数值, x 为弧 度。float tanh(float x) 返回 x 的双曲正切 函数值, x 为弧 度。float asin(float x) 返回 x 的反正弦 函数值,返回值为弧度, 范围 在-/2 到/2 之间,x 的值必须在 -1 到 1 之间

26、。float acos(float x) 返回 x 的反余弦 函数值,返回值为弧度, 范围 在 0 到之间, x 的值必须在 -1 到 1之间。float atan(float x) 返回 x 的反正弦 函数值,返回值为弧度, 范围在-/2 到 /2 之间。float atan2(float y, float x) 返回 y / x 的反正弦 函数值,返回值为弧度, 范围在-到之间。5. String Functions 字符串函数这些函数的原型放在“.INC ”目录的“string.h”头文件中。使用这些之前必须用“#include ”包含头文件。字符串函数用 于 SRAM 和 FLASH

27、中的字符串的 操作 。char *strcat(char *str1, char *str2) 拷贝 str2 到 str1 的结尾,返回str1 的指针。char *strcatf(char *str1, char flash *str2) 拷贝 FLASH 中的 str2 到 str1的结尾,返回 str1的指针。char *strncat(char *str1, char *str2, unsigned char n) 拷贝 str2(不含结束符NULL )的n 个字符到 str1 的结尾,如果str2 的长度 比 n 小, 则只拷贝 str2,返回 str1 的指针。char *str

28、ncatf(char *str1, char flash *str2, unsigned char n) 拷贝 FLASH 中的字符串str2(不含结束符NULL )的 n 个字符到str1 的结尾,如果str2 的长度 比 n 小,则只拷贝 str2,返回 str1 的指针。char *strchr(char *str, char c) 在字符串 str 中搜索第 一个出 现的 c 。如果成功,返回匹配字符的指针; 如果没有 搜索 到 匹配字符,返回NULL 。char *strrchr(char *str, char c) 在字符串 str 中搜索最后一个出 现的 c 。如果成功,返回匹

29、配字符的指针 ;如果没有 搜索 到匹配字符,返回NULL 。signed char strpos(char *str, char c) 在字符串 str 中搜索第 一个出 现的 c 。如果成功,返回 匹配字符在字符串中的位置; 如果没有 搜索 到匹配字符,返回 1 。signed char strrpos(char *str, char c) 在字符串str 中搜索 最后一个出 现的 c 。如果成功,返回 匹配字符在字符串中的位置;如果没有 搜索 到匹配字符,返回 1 。signed char strcmp(char *str1, char *str2) 比较两 个字符串。如果相同,返回 0;

30、如果str1str2,返回值 0;如果 str1str2,返回值 str2 ,返回值 0;如果 str1str2,返回值 str2,返回值 0;如果 str1str2,返回值 str2,返回值 0;如果 str1str2,返回值 0 。char *strcpy(char *dest, char *src) 拷贝 字符串 src 到字符串dest,返回 dest 的指针。char *strcpyf(char *dest, char flash *src) 拷贝 FLASH 中的字符串src 到 SRAM 中的字符串 dest,返回 dest 的指针。char *strncpy(char *des

31、t, char *src, unsigned char n) 拷贝 字符串 src 的前 n 个字符到字名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 33 页 - - - - - - - - - CodeVisionAVR C 库函数介绍 刘汧7符串 dest,返回 dest 的指针。char *strncpyf(char *dest, char flash *src, unsigned char n) 拷贝 FLASH 中的字符串src的前 n 个字符到 SRAM 中

32、的字符串dest,返回 dest的指针。unsigned char strspn(char *str, char *set) 在字符串 str 中搜索与字符串set 不匹配的 第一个字符。如果搜索 到不 匹配,返回不 匹配字符在 str 的位置 ;如果 set 的所有字符都 匹配,返回字符串str 的长度。unsigned char strspnf(char *str, char flash *set) 在 SRAM 中的字符串str 中搜索 与FLASH 中的字符串set 不匹配的 第一个字符。如果搜索到不 匹配,返回不 匹配字符在 str 的位置 ;如果 set 的所有字符都 匹配,返回字

33、符串str 的长度。unsigned char strcspn(char *str, char *set) 在字符串 str 中搜索 与字符串 set 匹配的 第一个字符。如果搜索 到匹配,返回 匹配字符在str 的位置 ;如果没有 匹配字符,返回字符串str 的长度。unsigned char strcspnf(char *str, char flash *set) 在字符串str 中搜索 与 FLASH 中的字符串 set 匹配的第一个字符。如果搜索 到匹配,返回 匹配字符在str 的位置 ;如果没有 匹配字符,返回字符串str 的长度。char *strpbrk(char *str, c

34、har *set) 在字符串str 中搜索 与字符串set 匹配的 第一个字符。如果 搜索 到匹配,返回 匹配字符的指针;如果没有 匹配字符,返回NULL 。char *strpbrkf(char *str, char flash *set) 在字符串 str 中搜索 与 FLASH 中的字符串set匹 配的 第一个字符。如果搜索 到匹 配,返回 匹 配字符的指针; 如果没有 匹 配字符,返回NULL 。char *strrpbrk(char *str, char *set) 在字符串 str 中搜索 与字符串 set匹配的最后一个字符。如果 搜索 到匹 配,返回 匹配字符的指针 ;如果没有

35、匹配字符,返回NULL 。char *strrpbrkf(char *str, char flash *set) 在 SRAM 中的字符串str 中搜索 与 FLASH中的字符串set 匹配的最后一个字符。如果搜索 到匹配,返回 匹配字符的指针;如果没有匹配字符,返回NULL 。char *strstr(char *str1, char *str2) 在字符串str1 中搜索 与字符串str2 匹配的子字符串。如果 找到匹配的子字符串,返回str1 中的子字符串的起始地址 指针 ;否则 返回 NULL 。char *strstrf(char *str1, char flash *str2) 在

36、 SRAM 中的字符串str1 中搜索与 FLASh中的字符串str2 匹配的子字符串。如果找到匹 配的子字符串,返回str1 中的子字符串的起始地址 指针 ;否则 返回 NULL 。unsigned char strlen(char *str) 返回字符串str 的长度( 范围 0255) 。unsigned int _strlen(char *str) 返回字符串str 的长度( 范围 065535) 。这个函数只能用在 SMALL 模式下。unsigned int strlenf(char flash *str) 返回 FLASH 中的字符串str 的长度。void *memcpy(vo

37、id *dest,void *src, unsigned char n) TINY模式void *memcpy(void *dest,void *src, unsigned int n) SMALL模式拷贝 src 的 n 个字 节到 dest。 Dest 与 src 不能重叠 。返回 dest 的指针。void *memcpyf(void *dest,void flash *src, unsigned char n) TINY模式void *memcpyf(void *dest,void flash *src, unsigned int n) SMALL模式拷贝 FLASH 中的字符串src

38、 的 n 个字 节 到 dest。Dest 与 src 不能重叠 。返回dest 的指针。void *memccpy(void *dest,void *src, char c, unsigned char n) TINY模式void *memccpy(void *dest,void *src, char c, unsigned int n) SMALL模式拷贝 字符串 src 的 n 个字 节到 dest,如果 碰到字符 c 就停止。 Dest 与 src 不能重叠 。如名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整

39、理 - - - - - - - 第 7 页,共 33 页 - - - - - - - - - CodeVisionAVR C 库函数介绍 刘汧8果最后一个 拷贝 的字符是 c 返回 NULL ,否则 返回指向destn 1 的指针。void *memmove(void *dest,void *src, unsigned char n) TINY模式void *memmove(void *dest,void *src, unsigned int n) SMALL模式拷贝 src 的 n 个字 节到 dest。 Dest 与 src 可以 重叠 。返回 dest 的指针。void *memchr(

40、void *buf, unsigned char c, unsigned char n) TINY模式void *memchr(void *buf, unsigned char c, unsigned int n) SMALL模式在 buf 的前 n 个字 节中搜索 字符 c。 如果 搜索 到 c, 就返回指向c 的指针 ; 否则 返回 NULL 。signed char memcmp(void *buf1,void *buf2, unsigned char n) TINY模式signed char memcmp(void *buf1,void *buf2, unsigned int n) S

41、MALL模式比较 字符串 buf1 和 buf2 的前 n 个字 节。当 buf1buf2 时分别返回 0 。signed char memcmpf(void *buf1,void flash *buf2, unsigned char n) TINY模式signed char memcmpf(void *buf1,void flash *buf2, unsigned int n) SMALL模式比较 SRAM 中的字符串buf1 和 FLASH 中的字符串buf2,最多比较 前 n 的字节。当buf1buf2 时分别返回 0 。void *memset(void *buf, unsigned

42、char c, unsigned char n) TINY模式void *memset(void *buf, unsigned char c, unsigned int n) SMALL模式用字符 c 填充 buf 的前 n 个字 节。返回指向buf 的指针。6. BCD Conversion Functions BCD 转换函数这些函数的原型放在“.INC ” 目录的“bcd.h” 头文件中。 使用这些之前必须用“#include ”包含头文件。unsigned char bcd2bin(unsigned char n) 把 BCD 码数 n 转换 为二进制。unsigned char bi

43、n2bcd(unsigned char n) 把二进制数 n 转换为 BCD 码。 n 必须为从 0到 99。7. Memory Access Functions 存储器访问函数这些函数的原型放在 “.INC ” 目录的“mem.h” 头文件中。使用这些之前必须用 “#include ”包含头文件。void pokeb(unsigned int addr, unsigned char data) 把一个字 节 data写在 SRAM 中指定的 addr 地址 。void pokew(unsigned int addr, unsigned int data) 把一个字 data写在 SRAM 中

44、指定的addr 地址 。低字节 在 addr,高字 节 在 addr1。unsigned char peekb(unsigned int addr) 在 SRAM 中指定的addr 地址读 一个字 节。unsigned int peekw (unsigned int addr) 在 SRAM 中指定的addr 地址读 一个字 节。低字节从 addr 读出,高字 节从 addr1 读出。8. Delay Functions 延时函数这些函数的原型放在 “.INC ” 目录的“delay.h” 头文件中。使用这些之前必须用 “#include ”包含头文件。这些函数使用 程序循环产生 延时。调用这

45、些函数之前要关闭 中断, 否则 会比预期 的延时要长。一定要在 Project|Configure|C Compiler 菜单中设定 正确 的时钟频率。void delay_us(unsigned int n) n 个微秒 的延时。 n 必须是常数表 达式。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 33 页 - - - - - - - - - CodeVisionAVR C 库函数介绍 刘汧9void delay_ms(unsigned int n) n 个毫秒 的

46、延时。 n必须是常数表达式。这个函数会每一个 毫秒清 一次看门狗 。例子:void main(void) /* 关闭 中断 */#asm(cli)/* 100ms 延时 */delay_us(100);/* . */* 10ms 延时 */delay_ms(10);/* 打开中断 */#asm(sei)/* . */9. LCD Functions LCD函数LCD 函数针对由 日立 HD44780 或 兼容芯片 控制的字符型LCD 模块,支持 以下类型:1x8,2x12, 3x12,1x16, 2x16,2x20,4x20,2x24,2x40 。这些函数的原型放在“.INC ”目录的“lcd

47、.h” 头文件中。 使用这些之前必须用“#include ”包含头文件。在包含头文件前你必须声明哪一个口与LCD 模块通讯。例子:/* 使用 PORTC 连接 LCD 模块 */#asm .equ _lcd_port=0 x15#endasm/* 包含头文件 */#include /* 可以使用 lcd 函数 */LCD 模块与单 片机 口线 连接方式如下:LCD AVR PortRS (pin4) - bit 0RD (pin 5) -bit 1EN (pin 6) -bit 2DB4 (pin 11) -bit 4DB5 (pin 12) -bit 5DB6 (pin 13) -bit 6

48、DB7 (pin 14) -bit 7你还 需要连接 LCD 的电源和 亮度控制电 压。低级的 LCD 函数:void _lcd_ready(void) 等待 ,直到 LCD 模块准备好接收数据。在使用 _lcd_write_data 函数向 LCD 模块写数据前必须调用此函数。void _lcd_write_data(unsigned char data) 向 LCD 模块的命令 寄存器写一个字节 data。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 33 页 -

49、- - - - - - - - CodeVisionAVR C 库函数介绍 刘汧10这个函数可以用来修改 LCD 的配置。例子:/* 显示 光标 */_lcd_ready();_lcd_write_data(0 xe);void lcd_write_byte(unsigned char addr, unsigned char data) 向 LCD 模块的字符发 生器或显存写一个字节 data。例子:/* LCD 用户定义芯片 类型: AT90S8515内存模式: SMALL数据 堆栈 :128 字节 2x16 字符 LCD连接 PORTCLCD PORTC 1 GND GND2 +5V VC

50、C3 VLC LCD HEADER Vo4 RS PC05 RD PC16 EN PC211 D4 PC412 D5 PC513 D6 PC614 D7 PC7*/* LCD 连接 PORTC */#asm.equ _lcd_port=0 x15 ;PORTC#endasm/* 包含头文件 */#include typedef unsigned char byte;/* 自定 义字符的 点阵 数据,一个指向右上角 的箭头 */flash byte char08=0b0000000,0b0001111,0b0000011,0b0000101,0b0001001,0b0010000,0b01000

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁