《单片机C语言通用万能编程模板》由会员分享,可在线阅读,更多相关《单片机C语言通用万能编程模板(30页珍藏版)》请在人人文库网上搜索。

1、8051单片机C语言编程模板 1.函数头文件22.毫秒级CPU延时函数43.定时/计数器初始化函数54.定时/计数器1中断处理函数65.定时/计数器0中断处理函数76.PWM初始化函数87.PWM0占空比设置函数98.UART串口初始化函数109.UART串口接收中断处理函数1110.UART串口发送函数1211.UART串口发送字符串函数1312.外部中断INT初始化函数1413.外部中断INT1中断处理程序1514.外部中断INT0中断处理程序1515.普通I/O口模拟PWM生成程序1616.LCD驱动1617.DS18B20温度传感器驱动1918.LCM2402(1602也适用)驱动程序。

2、2119.主函数2520. 8个独立式键盘驱动程序2721. 16个阵列式键盘驱动程序281.函数头文件/*程序名: 编写人: 编写时间:20 年 月 日硬件支持:接口说明:修改日志:NO.1-/*说明:/*/#include /通用89C51头文件(只留下实际使用的单片机所对应的头文件)#include /设定插入点#include /字符处理#include /定义错误码#include /浮点数处理#include /文件输入输出#include /参数化输入输出#include /数据流输入输出#include /定义各种数据类型最值常量#include /定义本地化函数#includ。

3、e /定义数学函数#include /定义输入输出函数#include /定义杂项函数及内存分配函数#include /字符串处理#include /基于数组的输入输出#include /定义关于时间的函数#include /宽字符处理及输入输出#include /宽字符分类#include /51基本运算(包括_nop_空函数)sfr 自定义名 = SFR地址 ; /按字节定义SFR中的存储器名。例:sfr P1 = 0x90;sbit 自定义名 = 系统位名 ; /按位定义SFR中的存储器名。例:sbit Add_Key = P3 1;bit 自定义名 ; /定义一个位(位的值只能是0或1。

4、)例:bit LED;#define 代替名 原名 /用代替名代替原名。例:#define LED P1 / #define TA 0x25#define KEY P1 /键盘所连接的I/O接口组定义sbit SPEAKER = P37; /扬声器连接定义sbit DQ = P2 5; /ds18B20sbit RS = P10; /模式位,为0输入指令,为1输入数据sbit RW = P11; /读写位,为0读,为1写sbit E = P12; /使能位#define Lcd_Bus P0 /数据总线unsigned char 自定义名 ; /定义一个0255的整数变量。unsigned i。

5、nt 自定义名 ; /定义一个065535的整数变量。data 字节寻址片内RAM,片内RAM的128字节 (例:data unsigned char a;)bdata可位寻址片内RAM,16字节,从0x20到0x2F (例:bdata unsigned char a;)idata 所有片内RAM,256字节,从0x00到0xFF (例:idata unsigned char a;)pdata片外RAM,256字节,从0x00到0xFF (例:pdata unsigned char a;)xdata片外RAM,64K字节,从0x00到0xFFFF (例:xdata unsigned char 。

6、a;)code ROM存储器,64K字节,从0x00到0xFFFF (例:code unsigned char a;)2.毫秒级CPU延时函数/*函数名:毫秒级CPU延时函数调 用:DELAY_MS (?);参 数:165535(参数不可为0)返回值:无结 果:占用CPU方式延时与参数数值相同的毫秒时间备 注:应用于1T单片机时i头文件支持。/*/void UART_TC (unsigned char *str)while(*str != 0)UART_T(*str);*str+;*str = 0;/*/中断入口说明中断入口说明interrupt 0 外部中断0(ROM入口地址:0x03)in。

7、terrupt 1 定时/计数器中断0(ROM入口地址:0x0B)interrupt 2 外部中断1(ROM入口地址:0x13)interrupt 3 定时/计数器中断1(ROM入口地址:0x1B)interrupt 4 UART串口中断(ROM入口地址:0x23)(更多的中断依单片机型号而定,ROM中断入口均相差8个字节)using 0 使用寄存器组0using 1 使用寄存器组1using 2 使用寄存器组2using 3 使用寄存器组312.外部中断INT初始化函数/*函数名:外部中断INT初始化函数调 用:INT_init();参 数:无返回值:无结 果:启动外部中断INT1、INT0。

8、中断,设置中断方式备 注:/*/void INT_init (void)EA = 1; /中断总开关EX1 = 1; /允许外部中断1中断 EX0 = 1; /允许外部中断0中断IT1 = 1; /1:下沿触发 0:低电平触发IT0 = 1; /1:下沿触发 0:低电平触发/*/13.外部中断INT1中断处理程序/*函数名:外部中断INT1中断处理程序调 用:外部引脚INT1中断处理参 数:无返回值:无结 果:用户处理外部中断信号备 注:/*/void INT_1 (void) interrupt 2 using 2 /切换寄存器组到2 /用户函数内容/*/14.外部中断INT0中断处理程序/。

9、*函数名:外部中断INT0中断处理程序调 用:外部引脚INT0中断处理参 数:无返回值:无结 果:用户处理外部中断信号备 注:/*/void INT_0 (void) interrupt 0 using 2 /切换寄存器组到2 /用户函数内容/*/15.普通I/O口模拟PWM生成程序/*函数名:普通I/O口模拟PWM生成程序调 用:display (?)备 注:/*/void display (unsigned int a) /显示程序(50ms的PWM宽度) DY_PORT = 0x00; /LED小灯亮delay (a); /延时a的长度DY_PORT = 0xff; /LED小灯灭del。

10、ay (DY_PWM-a); /延时总PWM长度减a/*/16.LCD驱动/*/LCD驱动(DY12864CBL液晶显示屏并口驱动程序)/*/void chk_busy() /检查忙位(底层)RS=0;RW=1;E=1;Lcd_Bus=0xff;while(Lcd_Bus&0x80)=0x80);E=0;/*/void write_com(unsigned char cmdcode) /写命令到LCD(底层)chk_busy();RS=0;RW=0;E=1;Lcd_Bus=cmdcode;E=0;/*/void write_data(unsigned char Dispdata) /写数据到L。

11、CD(底层) chk_busy();RS=1;RW=0;E=1;Lcd_Bus=Dispdata;E=0;/*/void lcm_init() /初始化LCD屏(被调用层) write_com(0x30); /选择8bit数据流write_com(0x0c); /开显示(无游标、不反白)write_com(0x01); /清除显示,并且设定地址指针为00H/*/void lcm_w_word(unsigned char *s) /向LCM发送一个字符串,长度64字符之内。(被调用层)while(*s0) /应用:lcm_w_word(您好!);write_data(*s); s+;/*/voi。

12、d lcm_w_test(bit i,unsigned char word) /写指令或数据(被调用层)if(i = 0)write_com(word); /写指令或数据(0,指令)elsewrite_data(word); /写指令或数据(1,数据)/*/void lcm_clr(void) /清屏函数lcm_w_test(0,0x01);/*/17.DS18B20温度传感器驱动/*/DS18B20温度传感器驱动(显示0至60度)/*/void Delay(int num) /延时函数while(num-) ;/*/void Init_DS18B20(void) /初始化ds1820unsi。

13、gned char x=0;DQ = 1; /DQ复位Delay(8); /稍做延时DQ = 0; /单片机将DQ拉低Delay(80); /精确延时 大于 480usDQ = 1; /拉高总线Delay(14);x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败Delay(20);/*/unsigned char ReadOneChar(void) /读一个字节unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-)DQ = 0; / 给脉冲信号dat=1;DQ = 1; / 给脉冲信号if(DQ)dat|=0x80;Delay(4);return(dat);/*/void WriteOneChar(unsigned char dat) /写一个字节unsigned char i=0;for (i=8; i0; i-)DQ = 0;DQ = dat&0x01;Delay(5);DQ = 1;dat=1;。

单片机的字节寻址c语言,单片机C语言通用万能编程模板相关推荐

  1. 单片机c语言中void key(void),STC单片机C语言通用万能编程模板

    <STC单片机C语言通用万能编程模板>由会员分享,可在线阅读,更多相关<STC单片机C语言通用万能编程模板(23页珍藏版)>请在人人文库网上搜索. 1.8051 单片机 C 语 ...

  2. c语言万能编程模板_8051单片机C语言通用万能编程模板

    .........word 文档 ... 完美整理 ... 范文范例 ...... 专业资料 ... 仅供学习 . 参考 . 分享 < 8051 单片机 C 语言编程模板> 1. 函数头文 ...

  3. c语言万能编程模板_51、STC单片机C语言通用万能编程模板

    . . < 8051 单片机 C 语言编程模板> 1. 函数头文件 ............................................................ ...

  4. c语言万能编程模板_51-STC单片机C语言-普遍通用万能编程模板

    \\ < 8051 单片机 C 语言编程模板> 1. 函数头文件 ............................................................. ...

  5. 单片机的字节寻址c语言,单片机中位寻址和字节寻址的区别?

    一.作用不同: 字节寻址:把数据直接写入当前地址,或者把当前地址的内容读出. 位寻址是位操作命令,写入和读出的是一个位bit变量. 二.传递不同: MOV A,00H和MOV C,00H,前者是将RA ...

  6. 通用编程c语言,STC单片机C语言通用万能编程.docx

    <8051单片机C语言编程模板> TOC \o "1-5" \h \z \o "Current Document" 毫秒级CPU延时函数 4 \o ...

  7. c语言万能编程模板_C语言程序设计50例(经典收藏)

    本篇文章是对C语言程序设计的50个小案例进行了详细的分析介绍,需要的朋友参考下 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位 ...

  8. 杜洋单片机C语言编程组成,8051单片机C语言编程模板

    c语言 本文由fan159147贡献 doc文档可能在WAP端浏览体验不佳.建议您优先选择TXT,或下载源文件到本机查看. <8051 单片机 C 语言编程模板> 杜洋 2009.7 [程 ...

  9. 8051单片机c语言编程模板,完美的8051单片机C语言编程模板.doc

    完美的8051单片机C语言编程模板.doc <8051单片机C语言编程模板> [程序开始处的程序说明] /***************************************** ...

最新文章

  1. java海康sdk_java 集成 海康 SDK
  2. 洛谷P1265 公路修建
  3. C盘下什么文件能删除?
  4. 安卓获取手机网络强度_USB调试和USB网络共享,安卓有线投屏究竟选哪个?
  5. seg代码配置的踩坑记录
  6. ng-zorro-antd引入less时错误解决记录
  7. 转发:关于数据权限设计的思考
  8. opc读取ab的plc数据_使用OPC的模式去连接PLC进行AB SLC-5_04数据的采集
  9. UVA457 Linear Cellular Automata【模拟】
  10. kmeans算法和kmeans++
  11. 音视频常见播放器框架分析
  12. 鸿基酒店应收应付报表生成系统
  13. STM32单线串口对总线舵机的控制
  14. android怎么测试网速,怎样用手机测网速 安卓手机测网速的方法推荐
  15. 怎么进计算机更新失败,系统更新失败无法进入系统怎么办?
  16. Canvas监测雷达
  17. 深入理解内存:原理简介
  18. 苏宁家电召开O2O购物节动员会 平台六方位支持迎战双十一
  19. 【示波器专题】示波器探头不同的衰减比对测量的影响
  20. Java中的偏向锁是什么

热门文章

  1. 一种简易网络传输数据格式【替代json/xml】
  2. sparkmllib关联规则算法(FPGrowth,Apriori)
  3. C语言:输出一组数的最大值与最小值
  4. 单片机(AT89C51)按钮控制LED灯实现流水灯,闪烁流水灯
  5. 美和易思荣获3A级信用企业称号
  6. 精选微软等公司数据结构+算法经典面试100题及答案
  7. 【ML】TensorFlow 图
  8. XVF3600-熙光技术
  9. 计算机 我们一起学猫叫歌词,抖音短视频我们一起学猫叫是什么歌
  10. 记一个与第三方企业对接的身份验证流程