[计算机软件及应用]单片机c编程

[计算机软件及应用]单片机c编程

ID:40005140

大小:401.50 KB

页数:35页

时间:2019-07-17

[计算机软件及应用]单片机c编程_第1页
[计算机软件及应用]单片机c编程_第2页
[计算机软件及应用]单片机c编程_第3页
[计算机软件及应用]单片机c编程_第4页
[计算机软件及应用]单片机c编程_第5页
资源描述:

《[计算机软件及应用]单片机c编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、if-else-if形式语法结构如下:if(表达式1)处理程序1;elseif(表达式2)处理程序2;…else(表达式n)处理程序n;voidmain(){ucharsp0=0,rev_byte0,buffer0[2]={0,0},receive_frame[10];if(sp0==0) {buffer0[sp0]=RXBUF0;//接收串口数据if(buffer0[0]==0xEB)sp0++; }/*判断第二个字节*/ elseif(sp0==1) { buffer0[sp0]=RXBUF0; if((buffer0[0]==0xEB)&&(buffer0

2、[1]==0x90)) sp0++;//数据为EB90 elsesp0=0; } elseif(sp0>=2) {receive_frame[rev_byte0]=RXBUF0; rev_byte0++; }voidmain() { ucharflag=0,up=0,down=0,left=0,right=0; switch(flag){ case1:up=1;break;//置标志case2:down=1;break; case3:left=1;break; case4:right=1;break; default:error=1;break; } }本例中输

3、入一个整数,经switch判断后,选择输出是一周中的星期几,整数不在1~7的范围内时就输出“Error”。可见此类多分支程序用switch语句可以很容易实现。表8-1KEILuVision2C51编译器所支持的数据类型7.特殊功能寄存器sfrsfr类型也是一种扩充数据类型,占一个内存单元,值域为0~255。利用它可以访问51单片机内部的所有特殊功能寄存器。例如:sfrP0=0x80;//定义P0为P0端口在片内的寄存器,P0口地址为80HsfrP1=0x90;//定义P1为P1端口在片内的寄存器,P1口地址为90H8051单片机片内有21个特殊功能寄存器,它们分

4、散在片内RAM区的高128字节中,地址为80H~0FFH。对sfr的操作,只能用直接寻址方式。8.16位特殊功能寄存器sfr16sfr16类型占用两个内存单元,值域为0~65535。sfr16和sfr一样用于操作特殊功能寄存器,所不同的是它用于操作占两个字节的寄存器,如定时器T0和T1。9.可寻址位sbitsbit类型也是C51中的一个扩充类型,利用它可以访问芯片内部的RAM中的可寻址位或特殊功能寄存器中的可寻址位。例如:sbitP1_1=P1^1;//P1_1为P1中的P1.1引脚 这样在以后的程序语句中就可以用P1_1来对P1.1引脚进行读/写操作。例如:若

5、a=ABH=10101011B,则:a=a<<2,将a值左移2位,其结果为10101100B=ACH;a=a>>2,将a值右移2位,其结果为00101010B=2AH。2.电路原理图电路原理图如图8-15所示。图8-158×8点阵LED显示原理图3.硬件电路连线(1)把“单片机系统”区域中的P1端口用8芯排线连接到“点阵模块”区域中的“DR1~DR8”端口上。(2)把“单片机系统”区域中的P3端口用8芯排线连接到“点阵模块”区域中的“DC1~DC8”端口上。4.程序设计内容8×8点阵共需要64个发光二极管,且每个发光二极管是放置在行线和列线的交叉点上。当对应的某

6、一列置1电平,某一行置0电平,则相应的二极管就亮。因此要实现一根柱形的亮法,对应的一列为一根竖柱,或者对应的一行为一根横柱,则实现柱形的亮法如下 所述:  一根竖柱:对应的列置1,而行则采用扫描的方法来实现。  一根横柱:对应的行置0,而列则采用扫描的方法来实现。5.C语言源程序#include//定义字形字位码unsignedcharcodetaba[]={0xfe,0xfd,0xfb,0xf7,0xef, 0xdf,0xbf,0x7f};unsignedcharcodetabb[]={0x01,0x02,0x04,0x08,0x10,0

7、x20,0x40,0x80};voiddelay(void){unsignedchari,j;for(i=10;i>0;i--)for(j=248;j>0;j--);}voiddelay1(void){unsignedchari,j,k;for(k=10;k>0;k--)for(i=20;i>0;i--)for(j=248;j>0;j--);}voidmain(void) { unsignedchari,j; while(1) { for(j=0;j<3;j++)//fromlefttoright3time { for(i=0;i<8;i++) { P3=tab

8、a[i]; P1=0xf

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。