版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、51单片机的编程学习1数码管动态显示2中断3单片机的定时器中断4中断和数码管动态显示程序5键盘6A/D与D/A7串行口通信8液晶(LCD)显示9IIC总线和AT24C0210 52单片机定时器2介绍11TTL电平通信、RS232通信、RS422A通信、RS485通信、远程无线通信12看门狗、PLL锁相环13 DS18B20温度传感器1、 数码管动态显示共阴极数码管的断码:void code table=/共阴极数码管代码0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 ;2、中断51单
2、片机共5个中断源,分别如下:INT0外部中断0,由P3.2端口引入,低电平或下降沿引起INT1外部中断1,由P3.3端口引入,低电平或下降沿引起T0定时器/计数器0中断,由T0计数器计满回零引起T1定时器/计数器1中断,由T1计数器计满回零引起TI/RI串行口中断,串行口完成一帧字符发送或接收后引起中断允许寄存器IE:EA、(ET2)、ES、ET1、EX1、ET0、EX0中断优先级寄存器IP:PS、PT1、PX1、PT0、PX03、单片机的定时器中断定时器/计数器的实质是加1计数器(16位),由高八位和低八位两个寄存器组成。TMOD是定时器、计数器的工作方式寄存器,确定工作方式和功能;TCON
3、是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。TMOD位序号D76543210位符号GATEC/TM1M0GATEC/TM1M0TCON位序号D76543210位符号TF1TR1TF0TR0IE1IT1IE0IT0THX和TLX的初值设定:THX=(65536-N)/256,TLX=(65536-N)%256中断服务程序的写法:C51的中断函数格式如下:Void 函数名()interrupt 中断号using 工作组 中断服务程序内容其中中断号为:INT00 T01 INT12 T13 TI/RI4 T254、 中断和数码管动态显示程序#include #define uchar u
4、nsigned char#define uint unsigned intsbit dula=P26;sbit wela=P27;void delayms(uint xms)uint x,y;for (i=xms;i0;i-) for(j=110;j0;j-);void code table=/共阴极数码管代码0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 ; void disp(uchar,uchar); uchar num=0,num1=0,shi,ge; void main()
5、 TMOD=0x10;/ 设定定时器为工作方式1 TH1=(65535-45872)/256; TL1=(65535-45872)%256; EA=1; ET1=1; TR1=1; while(1) disp(shi,ge); void disp(uchar shi,uchar ge) P0=tableshi;dula=1;dula=0;P0=0xff;P0=0xfe; wela=1;wela=0;delayms(100);P0=tablege;dula=1;dula=0;P0=0xff;P0=0xfd;wela=1;wela=0;delayms(100); void T1_time() in
6、terrupt 3 TH1=(65535-45872)/256; /重装初值TL1=(65535-45872)%256;num1+;if(num1=20) num1=0; num+; if(num=60) num=0; shi=num/10; ge=num%10; 5、 键盘(注意要防止抖动)矩阵键盘原理:检测时,先送一列为低电平,其余几列全为高电平(此时我们确定了列数),然后立即轮流检测一次各行是否有低电平,若检测到某一行有低电平,则可确定当前被按下的键是哪一行哪一列的,用同样的方法轮流送各列一次低电平。void matrixkeyscan() uchar temo,key; P3=0xfe
7、;/temp=P3;temp=temp&0xf0;if(temp!=oxf0)delayms(10);temp=P3;temp=temp&0xf0;if(temp!=oxf0)temp=P3;switch(temp) case 0xee: key=0; break; case 0xde: key=1; break; case 0xbe: key=2; break; case 0x7e: key=3; break; . . .6、 A/D与D/AA/D:1)采样定理:fs=2fi 2)量化和编码 3)直接AD转换:并行比较型、反馈比较型、间接 4)AD转换参数:分辨率、转换误差、转换时间ADC0
8、804的工作原理和方法 ADC0804:逐次比较型,CMOS工艺,20引脚,分辨率为8位,转换时间为100us,输入电压范围为0-5vADC启动转换:CS先为低电平,WR随后置低,经过至少tw时间后,WR拉高,随后转换器被启动,并经过一段时间后,模数完成转换,转换结果存入数据锁存器,同时INTR自动变为低电平。ADC0804读取数据:当INTR变为低电平时,将CS先置低,接着再将RD置低,至少经过tcc时间后,数据输出口上的数据达到稳定状态,此时直接读取数字输出口数据便可得到结果,然后将RD拉高,再将CS拉高。参考程序:sbit adwr=P36;sbit adrd=P37;wela=1;P0
9、=0x7f;/置CSAD为0 wela=0;while (1) adwr=1; _nop_(); adwr=0;/启动AD _nop_();/一个机器周期的延迟 adwr=1; P1=0xff; adrd=1; /AD读使能 _nop_(); adrd=0; _nop_(); adval=P1;/结果传给P1 adrd=1;D/A:DAC0832,8位,转换时间为1us,工作电压为5-15v,主要由两个8位寄存器和一个8位DA转换器组成,以电流形式输出,当输出要转换为电压时,可外接运算放大器相关计算:DAC0832操作时序图可以看出,当CS为低电平后,数据总线上数据才开始保持有效,然后再将WR
10、置低,从Iout线上看出,在WR置低ts后DA转换结束,Iout输出稳定。若只控制一次转换,接下来将WR和CS拉高即可,若连续转换则只需要改变数字端输入数据7、 串行口通信串行通信方式:异步和同步制式:单工、半双工、全双工RS232电平与TTL电平的转换:MAX232芯片RS232串行总线适用于:设备之间的通讯距离不大于15m,传输距离最大为20kBps。RS232协议以-515v为逻辑1,以+5-+15v为逻辑0波特率:每秒传输二进制代码的位数串行口的四种工作方式对应的波特率方式0的波特率:方式1的波特率:方式2的波特率:方式3的波特率:相关寄存器:PCON51串行口是一个可编程全双工的通信
11、接口,具有UART(通用异步接发器),能同时进行数据的发送和接收。主要由两个独立的串行数据缓冲寄存器SBUF和发送控制器、接受寄存器、输入移位寄存器和若干控制门电路组成。串行口控制寄存器SCON位序号D76543210位符号SM0SM1SM2RENTB8RB8TIRI串行口四种工作方式由SM0、SM1控制SM2多机通信REN允许串行接收位TB8、RB8方式2、3中发送、接收的第九位,作为地址帧、数据帧的标志位TI、RI发送、接收中断标志位串行口方式一编程:#include #define uchar unsigned char#define uint unsigned intuchar fla
12、g,a,i;uchar code table=i get;void init() TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;REN=1;SM1=1;Sm0=0;EA=1;ES=1;void main() init(); while (1) if (flag=1) ES=0; for(i=0;i5;i+) SBUF=tablei;while(!TI);TI=0; SBUF=a; while (!TI); TI=0; ES=1; flag=0; void ser() interrupt 4 RI=0; a=SBUF; flag=1; 8、 液晶(LCD)显示常用液晶160
13、2、12232、12864三种。并行操作方式和串行操作方式1602:5V电压驱动,带背光,显示两行,每行16个字符,不能显示汉字,内置128个字符ASCII码,只有并行接口1602的接口说明#include#define uchar unsigned char#define uint unsigned intsbit rs=P35;sbit lcden=P34;sbit dula=P26;sbit wela=P27;uchar table1=hello everyone!;uchar table2=welcome to here!;void delay(uint x)uint a,b;for(
14、a=x;a0;a-)for(b=10;b0;b-); void delay1(uint x)uint a,b;for(a=x;a0;a-)for(b=100;b0;b-); void write_com(uchar com)P0=com;rs=0;lcden=0;delay(10);lcden=1;/高脉冲delay(10);lcden=0;void write_date(uchar date)P0=date;rs=1;lcden=0;delay(10);lcden=1;/高脉冲delay(10);lcden=0;void init()dula=0;wela=0;write_com(0x38)
15、;delay(20);write_com(0x0c);delay(20);write_com(0x06);delay(20);write_com(0x01);delay(20);void main()uchar a;init();write_com(0x80+17);delay(20);for(a=0;a16;a+)write_date(table1a);delay(20);write_com(0xc0+17);delay(50);for(a=0;a16;a+)write_date(table2a);delay(40);for(a=0;a16;a+)write_com(0x18);delay1
16、(200);while(1);12232液晶操作:12232液晶,5V电压驱动,带背光,内置8192个汉字的16*16点汉字库和128个字符的16*8点ASCII字符集。该液晶主要由行驱动、列驱动、128*32全点阵液晶显示器组成, 采用并行或串行两种控制方式。12864 汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。128X64HZ 引脚说明引脚号引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信
17、号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位 低电平有效18NC空脚19LED_A(LED+5V)背光源正极20LED_K(LED-OV)背光源负极接口时序模块有并行和串行两种连接方法(时序如下):8位并行连接时序图MPU写资料到模块MPU从模块读出资料2、串行连
18、接时序图串行数据传送共分三个字节完成:第一字节:串口控制格式 11111ABC A为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCD B为数据类型选择:H表示数据是显示数据,L表示数据是控制指令 C固定为0第二字节:(并行)8位数据的高4位格式 DDDD0000第三字节:(并行)8位数据的低4位格式 0000DDDD由于没有专门的移屏指令,可使用for循环来实现移屏效果i_data=command_dataCS=1;SCLK=0;for(i=0;i8;i+)SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data1;9、 II
19、C总线与AT24C02芯片IIC总线:由数据线SDA和时钟线SCL两条线构成通信线路,既可发又可收,在CPU和被控IC之间、IC与IC之间都可以进行双向传送,最高传送速率为400kps,各种被控器件均并联在总线上,但每一个器件都有唯一的地址。CPU发出的控制信号分为地址码和数据码。IIC总线支持多主和主从两种工作方式,通常为主从方式。IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。 起始和终止信号 :SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA
20、线由低电平向高电平的变化表示终止信号。数据传送格式(1)字节传送与应答每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。如果一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到数据。 IIC总线通信过程中几个关键程序:总线初始化、启动信号、应答信号、停止信号、写一个字节、读一个字节。void init()/初始化SCL=1;delay();SDA=1; delay();void start() /启动信号SDA=1;delay();SCL=1;delay();SDA=0;delay();void respon
21、s()/应答信号uchar i=0;SCL=1;delay(); while(SDA=1)&(i255)i+;SCL=0;delay();void stop()/停止信号SDA=0;delay();SCL=1;delay();SDA=1;delay();void writebyte(uchar date)/写一个字节uchar i,temp;temp=date;for(i=0;i8;i+)temp=temp1;SCL=0;delay();SDA=CY;delay();SCL=1;delay();SCL=0;delay();SDA=1;delay();uchar read_add(uchar a
22、ddress)/指定地址读一个字节数据uchar dd;start();writebyte(0xa0);respons();writebyte(address);respons();start();writebyte(0xa1);respons();dd=readbyte();stop();return dd;uchar readbyte()/读一个字节uchar i,j,k;SCL=0;delay();SDA=1;for(i=0;i8;i+)SCL=1;delay();if(SDA=1) j=1;else j=0;k=(k1)|SDA;SCL=0;delay();delay();return
23、 k;void write_add(uchar address,uchar info)/指定地址写一个字节数据start();writebyte(0xa0);respons();writebyte(address);respons();writebyte(info);respons();stop();AT24C02:芯片地址如下图,1010为固定,A0,A1,A2正好与芯片的1,2,3引角对应,为当前电路中的地址选择线,三根线可选择8个芯片同时连接在电路中,当要与哪个芯片通信时传送相应的地址即可与该芯片建立连接,最后一位R/W为告诉从机下一字节数据是要读还是写,0为写入,1为读出。存储结构与寻
24、址:存储容量为2Kb,分32页,每页8B,分芯片寻址和片内子地址寻址 芯片寻址:at24c02芯片地址为1010,其地址控制字格式为1010A2A1A0R/W 片内子地址寻址:对内部256B中任一个进行读写操作。串行EEPROM一般有两种写入方式:字节写入和页写入方式、指定地址读操作=指定地址连续读。10、52单片机定时器2介绍定时器2是一个16位定时器/计数器,通过设定特殊功能寄存器T2CON中的C/T2位,可将其设定为定时器或计数器,通过设定T2CON中的工作模式选择位可将定时器2,设定为三种工作方式:捕获、自动重新装载(递增或递减计数)、波特率发生器。捕获:捕捉某一瞬间的值,用它来测量外部某个脉冲的宽度或周期。工作原理是:单片机内有两组寄存器,其中一组的内部数值是按固定机器周期递增或递减,当与捕或功能引脚相关的外部某引脚有一个负跳变时,捕获便会立即将此时第一组寄存器中的数值准确的获取,并且存入到另一组寄存器中,这组寄存器称为陷阱寄存器(RCAPXL,RCAPXH),同时向CPU申请中断,当引脚下一次来临时,便会产生另一个捕获。定时器2控制寄存器T2CON位序号D76543210位符号TF2EXF2RCLKTCLKEXEN2TR2C/T2CP/R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026河南漯河市临颍县公益性岗位招聘53人备考题库附参考答案详解(达标题)
- 2026江西萍乡市融资担保集团有限公司招聘员工4人备考题库附参考答案详解【模拟题】
- 2026广东佛山三水区白坭镇岗头中心幼儿园春季招聘1人备考题库附参考答案详解(满分必刷)
- 2026北京大学教育学院全球人才招聘备考题库【名校卷】附答案详解
- 中考生物核心考点总结与模拟试题
- 2026河南洛阳商业职业学院招聘7人备考题库完整附答案详解
- 2026广东云浮市新兴县招募见习岗位人员2人备考题库带答案详解(培优a卷)
- 2026重庆永川区中山路街道办事处中山路社区招聘全日制公益性岗位人员1人备考题库【原创题】附答案详解
- 双螺杆挤出机性能参数及维护技巧
- 2026清华大学基础医学院彭敏实验室招聘科研助理2人备考题库ab卷附答案详解
- 2026年吉安职业技术学院单招综合素质考试题库含答案详解
- 2026年安徽林业职业技术学院单招综合素质考试题库含答案解析
- 薄抹灰施工方案
- 2026年餐饮服务标准操作流程培训
- 2026年南京交通职业技术学院单招职业技能考试题库及答案详解(基础+提升)
- 卫生院防雷安全生产制度
- 绍兴2025年浙江绍兴市政务服务办公室招聘政务服务专员6人笔试历年参考题库附带答案详解
- 来访车辆登记表
- DB32∕T 3916-2020 建筑地基基础检测规程
- 更换风口操作规程
- SMED快速换模教程
评论
0/150
提交评论