欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    单片机专业编程实例分析-100例汇总.doc

    • 资源ID:813515       资源大小:190KB        全文页数:142页
    • 资源格式: DOC        下载积分:17金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要17金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机专业编程实例分析-100例汇总.doc

    单片机编程实例单片机编程实例 100100 例大全例大全单片机编程实例单片机编程实例* *实例实例 1 1:使用:使用 P3P3 口流水点亮口流水点亮 8 8 位位 LEDLED#include#include /包含单片机寄存器的头文件包含单片机寄存器的头文件 / / 函数功能:延函数功能:延时一段时间时一段时间voidvoid delay(void)delay(void) unsignedunsigned charchar i,j;i,j;for(i=0;i#include /包含单片机寄存器的头文件包含单片机寄存器的头文件sfrsfr x=0xb0;x=0xb0; /P3/P3 口在存储器中的地址是口在存储器中的地址是 b0Hb0H, 通过通过 sfrsfr 可定义可定义80518051 内核单片机内核单片机/的所有内部的所有内部 8 8 位特殊功能寄存器位特殊功能寄存器, ,对地址对地址 x x 的操作也就是对的操作也就是对 P1P1 口口的操作的操作/ /函数功能:延时一段时间函数功能:延时一段时间/ /voidvoid delay(void)delay(void) unsignedunsigned charchar i,j;i,j;for(i=0;i#include /包含单片机寄存器的头文件包含单片机寄存器的头文件/ /函数功能:用整形数据延时一段时间函数功能:用整形数据延时一段时间/ /voidvoid int_delay(void)int_delay(void) /延时一段较长的时间延时一段较长的时间 unsignedunsigned intint m;m; /定义无符号整形变量,双字节数据,值域为定义无符号整形变量,双字节数据,值域为065535065535 for(m=0;m#include /包含包含 5151 单片机寄存器定义的头文件单片机寄存器定义的头文件voidvoid main(void)main(void) P1=0xfe;P1=0xfe; /P1=1111/P1=1111 1110B1110B,即,即 P1.0P1.0 输出低电平输出低电平 * *实例实例 5 5:用单片机控制一个灯闪烁:认识单片机的工作频率:用单片机控制一个灯闪烁:认识单片机的工作频率 #include#include /包含单片机寄存器的头文件包含单片机寄存器的头文件/ /函数功能:延时一段时间函数功能:延时一段时间/ /voidvoid delay(void)delay(void) /两个两个 voidvoid 意思分别为无需返回值,没有参数意思分别为无需返回值,没有参数传递传递 unsignedunsigned intint i;i; /定义无符号整数,最大取值范围定义无符号整数,最大取值范围 6553565535 for(i=0;i#include /包含单片机寄存器的头文件包含单片机寄存器的头文件/ / 函数功能:主函数函数功能:主函数 (C C 语言规定必须有也只能有语言规定必须有也只能有 1 1 个主函数)个主函数) / /voidvoid main(void)main(void) while(1)while(1) /无限循环无限循环 P1=0xff;P1=0xff; / P1=1111P1=1111 1111B,1111B,熄灭熄灭 LEDLEDP0=P1;P0=P1; / 将将 P1P1 口状态送入口状态送入 P0P0 口口P2=P1;P2=P1; / 将将 P1P1 口状态送入口状态送入 P2P2 口口P3=P1;P3=P1; / 将将 P1P1 口状态送入口状态送入 P3P3 口口 * *实例实例 7 7:用:用 P0P0 口、口、P1P1 口分别显示加法和减法运算结果口分别显示加法和减法运算结果 #include#includevoidvoid main(void)main(void) unsignedunsigned charchar m,n;m,n;m=43;m=43; /即十进制数即十进制数 2x16+11=432x16+11=43n=60;n=60; /即十进制数即十进制数 3x16+12=603x16+12=60P1=m+n;P1=m+n; /P1=103=0110/P1=103=0110 0111B,0111B,结果结果 P1.3P1.3、P1.4P1.4、P1.7P1.7 口的灯被口的灯被点亮点亮 P0=n-m;P0=n-m; /P0=17=0001/P0=17=0001 0001B,0001B,结果结果 P0.0P0.0、P0.4P0.4 的灯被熄灭的灯被熄灭 * *实例实例 8 8:用:用 P0P0、P1P1 口显示乘法运算结果口显示乘法运算结果#include#include /包含单片机寄存器的头文件包含单片机寄存器的头文件voidvoid main(void)main(void) unsignedunsigned charchar m,n;m,n;unsignedunsigned intint s;s;m=64;m=64;n=71;n=71;s=ms=m n;n; /s=64/s=64 71=4544,71=4544,需要需要 1616 位二进制数表示,高位二进制数表示,高 8 8 位送位送 P1P1 口,口,低低 8 8 位送位送 P0P0 口口/由于由于 4544=174544=17 256+192=H3256+192=H3 1616 1616 16+H216+H2 1616 16+H116+H1 16+H016+H0/两边同除以两边同除以 256256,可得,可得 17+192/256=H317+192/256=H3 16+H2+16+H2+(H1H1 16+H016+H0)/256/256/因此,高因此,高 8 8 位位 1616 进制数进制数 H3H3 16+H216+H2 必然等于必然等于 1717,即,即 45444544 除以除以 256256的商的商/低低 8 8 位位 1616 进制数进制数 H1H1 16+H016+H0 必然等于必然等于 192192,即,即 45444544 除以除以 256256 的余的余数数P1=s/256;P1=s/256; /高高 8 8 位送位送 P1P1 口口 ,P1=17=11H=0001P1=17=11H=0001 0001B,0001B, P1.0P1.0 和和 P1.4P1.4口灭,其余亮口灭,其余亮P0=s%256;P0=s%256; /低低 8 8 位送位送 P0P0 口口 , , P3=192=c0H=1100P3=192=c0H=1100 0000B,P3.1,P3.6,P3.70000B,P3.1,P3.6,P3.7 口灭,其余亮口灭,其余亮 * *实例实例 9 9:用:用 P1P1、P0P0 口显示除法运算结果口显示除法运算结果#include#include /包含单片机寄存器的头文件包含单片机寄存器的头文件voidvoid main(void)main(void) P1=36/5;P1=36/5; /求整数求整数P0=(36%5)P0=(36%5) 10)/5;10)/5; /求小数求小数while(1)while(1); ; /无限循环防止程序无限循环防止程序“跑飞跑飞” * *实例实例 1010:用自增运算控制:用自增运算控制 P0P0 口口 8 8 位位 LEDLED 流水花样流水花样#include#include /包含单片机寄存器的头文件包含单片机寄存器的头文件/ /函数功能:延时一段时间函数功能:延时一段时间/ /voidvoid delay(void)delay(void) unsignedunsigned intint i;i;for(i=0;i#include /包含单片机寄存器的头文件包含单片机寄存器的头文件 voidvoid main(void)main(void) P0=(4>0)/P0=(4>0)/将逻辑运算结果送将逻辑运算结果送 P0P0 口口while(1)while(1); ; /设置无限循环,防止程序设置无限循环,防止程序“跑飞跑飞” * *实例实例 1212:用:用 P0P0 口显示条件运算结果口显示条件运算结果#include#include /包含单片机寄存器的头文件包含单片机寄存器的头文件 voidvoid main(void)main(void) P0=(8>4)?8:4;/P0=(8>4)?8:4;/将条件运算结果送将条件运算结果送 P0P0 口,口,P0=8=0000P0=8=0000 1000B1000B while(1)while(1); ; /设置无限循环,防止程序设置无限循环,防止程序“跑飞跑飞” * *实例实例 1313:用:用 P0P0 口显示按位口显示按位“ “异或异或“ “运算结果运算结果 #include#include /包含单片机寄存器的头文件包含单片机寄存器的头文件 voidvoid main(void)main(void) P0=0xa20x3c;/P0=0xa20x3c;/将条件运算结果送将条件运算结果送 P0P0 口,口,P0=8=0000P0=8=0000 1000B1000B while(1)while(1); ; /设置无限循环,防止程序设置无限循环,防止程序“跑飞跑飞” * *实例实例 1616:用:用 P0P0 显示左移运算结果显示左移运算结果#include#include /包含单片机寄存器的头文件包含单片机寄存器的头文件 voidvoid main(void)main(void) P0=0x3b#include /包含单片机寄存器的头文件包含单片机寄存器的头文件sbitsbit F=P14;F=P14; /将将 F F 位定义为位定义为 P1.4P1.4sbitsbit X=P15;X=P15; /将将 X X 位定义为位定义为 P1.5P1.5sbitsbit Y=P16;Y=P16; /将将 Y Y 位定义为位定义为 P1.6P1.6sbitsbit Z=P17;Z=P17; /将将 Z Z 位定义为位定义为 P1.7P1.7voidvoid main(void)main(void) while(1)while(1) F=(X)F=(X) /将逻辑运算结果赋给将逻辑运算结果赋给 F F; ; * *实例实例 1818:用右移运算流水点亮:用右移运算流水点亮 P1P1 口口 8 8 位位 LEDLED #include#include /包含单片机寄存器的头文件包含单片机寄存器的头文件/ /函数功能:延时一段时间函数功能:延时一段时间/ /voidvoid delay(void)delay(void) unsignedunsigned intint n;n;for(n=0;n>1;P1=P1>>1; /每次循环每次循环 P1P1 的各二进位右移的各二进位右移 1 1 位,高位补位,高位补 0 0 delay();delay(); /调用延时函数调用延时函数 * *实例实例 1919:用:用 ifif 语句控制语句控制 P0P0 口口 8 8 位位 LEDLED 的流水方向的流水方向 #include#include /包含单片机寄存器的头文件包含单片机寄存器的头文件sbitsbit S1=P14;S1=P14; /将将 S1S1 位定义为位定义为 P1.4P1.4sbitsbit S2=P15;S2=P15; /将将 S2S2 位定义为位定义为 P1.5P1.5/ /函数功能:主函数函数功能:主函数/ /voidvoid main(void)main(void) while(1)while(1) if(S1=0)if(S1=0) /如果按键如果按键 S1S1 按下按下 P0=0x0f;P0=0x0f; /P0/P0 口高四位口高四位 LEDLED 点点亮亮 if(S2=0)if(S2=0) /如果按键如果按键 S2S2 按下按下 P0=0xf0;P0=0xf0; /P0/P0 口低四位口低四位 LEDLED 点点亮亮 * *实例实例 2020:用:用 swtichswtich 语句的控制语句的控制 P0P0 口口 8 8 位位 LEDLED 的点亮状态的点亮状态 #include#include /包含单片机寄存器的头文件包含单片机寄存器的头文件sbitsbit S1=P14;S1=P14; /将将 S1S1 位定义为位定义为 P1.4P1.4/ /函数功能:延时一段时间函数功能:延时一段时间/ /voidvoid delay(void)delay(void) unsignedunsigned intint n;n;for(n=0;n#include /包含单片机寄存器的头文件包含单片机寄存器的头文件 sbitsbit sound=P37;sound=P37; /将将 soundsound 位定义为位定义为 P3.7P3.7 / / 函数功能:延时形成函数功能:延时形成1600Hz1600Hz 音频音频/ / voidvoid delay1600(void)delay1600(void) unsignedunsigned charchar n;n;for(n=0;n#include /包含单片机寄存器的头文件包含单片机寄存器的头文件 / / 函数功能:延函数功能:延时约时约 60ms60ms (3(3 100100 200=60000s)200=60000s) / / voidvoid delay60ms(void)delay60ms(void) unsignedunsigned charchar m,n;m,n;for(m=0;m#include /包含单片机寄存器的头文件包含单片机寄存器的头文件/ /函数功能:延时约函数功能:延时约 60ms60ms (3(3 100100 200=60000s)200=60000s)/ /voidvoid delay60ms(void)delay60ms(void) unsignedunsigned charchar m,n;m,n;for(m=0;m#include /包含单片机寄存器的头文件包含单片机寄存器的头文件/ /函数功能:延时约函数功能:延时约 60ms60ms (3(3 100100 200=60000s)200=60000s)/ /voidvoid delay60ms(void)delay60ms(void) unsignedunsigned charchar m,n;m,n;for(m=0;m#include /包含单片机寄存器的头文件包含单片机寄存器的头文件/ /函数功能:延时约函数功能:延时约 150ms150ms (3(3 200200 250=150250=150 000s=150ms000s=150ms/ /voidvoid delay150ms(void)delay150ms(void) unsignedunsigned charchar m,n;m,n;for(m=0;m#includevoidvoid main(void)main(void) unsignedunsigned charchar p1,p1, p2;p2; /定义无符号字符型指针变量定义无符号字符型指针变量 p1,p2p1,p2 unsignedunsigned charchar i,j;i,j; /定义无符号字符型数据定义无符号字符型数据i=25;i=25; /给给 i i 赋初值赋初值 2525j=15;j=15;p1=p1= /使指针变量指向使指针变量指向 i i ,对指针初始化,对指针初始化p2=p2= /使指针变量指向使指针变量指向 j j ,对指针初始化,对指针初始化P0=P0= p1+p1+ p2;p2; / p1+p1+ p2p2 相当于相当于 i+j,i+j,所以所以 P0=25+15=40=0x28P0=25+15=40=0x28/则则 P0=0010P0=0010 1000B1000B,结果,结果 P0.3P0.3、P0.5P0.5 引脚引脚 LEDLED 熄灭,其余点亮熄灭,其余点亮 while(1)while(1); ; /无限循环,防止程序无限循环,防止程序“跑飞跑飞” * *实例实例 2727:用指针数组控制:用指针数组控制 P0P0 口口 8 8 位位 LEDLED 流水点亮流水点亮 #include#include/ /函数功能:延时约函数功能:延时约 150ms150ms (3(3 200200 250=150250=150 000s=150ms000s=150ms/ /voidvoid delay150ms(void)delay150ms(void) unsignedunsigned charchar m,n;m,n;for(m=0;m#include/ /函数功能:延时约函数功能:延时约 150ms150ms (3(3 200200 250=150250=150 000s=150ms000s=150ms/ /voidvoid delay150ms(void)delay150ms(void) unsignedunsigned charchar m,n;m,n;for(m=0;m#include/ / 函数功能:计算两个无符号整数的和函数功能:计算两个无符号整数的和/ / unsignedunsigned intint sum(intsum(int a,inta,int b)b) unsignedunsigned intint s;s;s=a+b;s=a+b;returnreturn (s);(s); / / 函数功能:主函数函数功能:主函数/ / voidvoid main(void)main(void) unsignedunsigned z;z;z=sum(2008,2009);z=sum(2008,2009);P1=z/256;P1=z/256; /取得取得 z z 的高的高 8 8 位位P0=z%256;P0=z%256; /取得取得 z z 的低的低 8 8 位位while(1)while(1); ; * *实例实例 3030:用有参函数控制:用有参函数控制 P0P0 口口 8 8 位位 LEDLED 流水速度流水速度 #include#include/ / 函数功能:延时一段时间函数功能:延时一段时间/ / voidvoid delay(unsigneddelay(unsigned charchar x)x) unsignedunsigned charchar m,n;m,n;for(m=0;m#include/ /函数功能:延时约函数功能:延时约 150ms150ms/ /voidvoid delay(void)delay(void) unsignedunsigned charchar m,n;m,n;for(m=0;m#include/ /函数功能:延时约函数功能:延时约 150ms150ms/ /voidvoid delay(void)delay(void) unsignedunsigned charchar m,n;m,n;for(m=0;m#include /包含包含 5151 单片机寄存器定义的头文件单片机寄存器定义的头文件unsignedunsigned charchar codecode Tab=0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F;Tab=0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F; /流水灯控流水灯控制码,该数组被定义为全局变量制码,该数组被定义为全局变量/ /函数功能:延时约函数功能:延时约 150ms150ms/ / voidvoid delay(void)delay(void) unsignedunsigned charchar m,n;m,n;for(m=0;m#include /包含包含 5151 单片机寄存器定义的头文件单片机寄存器定义的头文件unsignedunsigned charchar codecode str1str1 =“Temperature=“Temperature isis testedtested byby DS18B20“;/CDS18B20“;/C 语言中,字符串是作为字符数组来处理的语言中,字符串是作为字符数组来处理的unsignedunsigned charchar codecode str2str2 =“Now=“Now temperaturetemperature is:“;is:“; /所以,所以,字符串的名字就是字符串的首地址字符串的名字就是字符串的首地址unsignedunsigned charchar codecode str3str3 =“The=“The SystermSysterm isis designeddesigned byby ZhangZhang San“;San“;unsignedunsigned charchar codecode str4str4 =“The=“The datedate isis 2008-9-30“;2008-9-30“;unsignedunsigned charchar pp =str1,str2,str3,str4;=str1,str2,str3,str4; /定义定义 p4p4为指向为指向4 4 个字符串的字符型指针数组个字符串的字符型指针数组/ / 函数功能:延时约函数功能:延时约 150ms150ms/ / voidvoid delay(void)delay(void) unsignedunsigned charchar m,n;m,n;for(m=0;m#include /包含包含 5151 单片机寄存器定义的头文件单片机寄存器定义的头文件 #include#includevoidvoid main(void)main(void) while(1)while(1) P3=isalpha('_')?0xf0:0x0f;/P3=isalpha('_')?0xf0:0x0f;/条件运算,若条件运算,若'_''_'是英文字母,是英文字母,P3=0xf0P3=0xf0 * *实例实例 3636:内部函数:内部函数 intrins.hintrins.h 应用举例应用举例#include#include /包含包含 5151 单片机寄存器定义的头文件单片机寄存器定义的头文件 #include#include /包含函数包含函数 isalphaisalpha()声明的头文件()声明的头文件 / / 函函数功能:延时约数功能:延时约 150ms150ms/ / voidvoid delay(void)delay(void) unsignedunsigned charchar m,n;m,n;for(m=0;m#include /包含包含 5151 单片机寄存器定义的头文件单片机寄存器定义的头文件 #include#include /包含函数包含函数 isalphaisalpha()声明的头文件()声明的头文件 / / 函函数功能:延时约数功能:延时约 150ms150ms/ / voidvoid delay(void)delay(void) unsignedunsigned charchar m,n;m,n;for(m=0;m#include /包含包含 5151 单片机寄存器定义的头文件单片机寄存器定义的头文件 #include#include /包含函数包含函数 isalphaisalpha()声明的头文件()声明的头文件 voidvoid main(void)main(void) unsignedunsigned charchar str1str1 =“Now,=“Now, TheThe temperaturetemperature isis :“;:“;unsignedunsigned charchar str2str2 =“Now,=“Now, TheThe temperaturetemperature isis 3636 Centgrade:“;Centgrade:“; unsignedunsigned charchar i;i;i=strcmp(str1,str2);i=strcmp(str1,str2); /比较两个字符串,并将结果存入比较两个字符串,并将结果存入 i iif(i=0)if(i=0) /str1=str2/str1=str2P3=0x00;P3=0x00;elseelseif(istr2/str1>str2P3=0x0f;P3=0x0f;while(1)while(1); ; /防止程序防止程序“跑飞跑飞” * *实例实例 3939:宏定义应用举例:宏定义应用举例 2 2#include#include /包含包含 5151 单片机寄存器定义的头文件单片机寄存器定义的头文件# # definedefine F(a,b)F(a,b) (a)+(a)(a)+(a) (b)/256+(b)(b)/256+(b) /带参数的宏定义,带参数的宏定义,a a 和和b b 为形参为形参 voidvoid main(void)main(void) unsignedunsigned charchar i,j,k;i,j,k;i=40;i=40;j=30;j=30;k=20;k=20;P3=F(i,j+k);P3=F(i,j+k); /i/i 和和 j+kj+k 分别为实参,宏展开时,实参将替代宏定分别为实参,宏展开时,实参将替代宏定义中的形参义中的形参while(1)while(1); ; * *实例实例 4040:宏定义应用举例:宏定义应用举例 2 2#include#include#include#includevoidvoid main(void)main(void) P3_0=0;P3_0=0; /将将 P3.0P3.0 引脚置低电平,引脚置低电平,LEDLED 点亮点亮P3_1=0;P3_1=0; /将将 P3.0P3.0 引脚置低电平,引脚置低电平,LEDLED 点亮点亮P3_2=0;P3_2=0; /将将 P3.0P3.0 引脚置低电平,引脚置低电平,LEDLED 点亮点亮P3_3=0;P3_3=0; /将将 P3.0P3.0 引脚置低电平,引脚置低电平,LEDLED 点亮点亮P3_4=1;P3_4=1; /将将 P3.4P3.4 引脚置高电平,引脚置高电平,LEDLED 熄灭熄灭 P3_5=1;P3_5=1; /将将 P3.5P3.5 引脚置高电平,引脚置高电平,LEDLED 熄灭熄灭 P3_6=1;P3_6=1; /将将 P3.7P3.7 引引脚置高电平,脚置高电平,LEDLED 熄灭熄灭 P3_7=1;P3_7=1; /将将 P3.7P3.7 引脚置高电平,引脚置高电平,LEDLED 熄灭熄灭 while(1)while(1) ; ;* *实例实例 4141:宏定义应用举例:宏定义应用举例 3 3#include#include /包含包含 5151 单片机寄存器定义的头文件单片机寄存器定义的头文件#define#define MAXMAX 100100 /将将 MAXMAX 宏定义为字符串宏定义为字符串 100100voidvoid main(void)main(void) #if#if MAX>80MAX>80 /如果字符串如果字符串 100100 大于大于 8080P3=0xf0;P3=0xf0; /P3/P3 口低四位口低四位 LEDLED 点亮点亮#else#elseP3=0x0f;P3=0x0f; /否则,否则,P3P3 口高四位口高四位 LEDLED 点亮点亮#endif#endif /结束本次编译结束本次编译 / / 中断、定时器中断、定时器 中断、定时器中断、定时器中断、定时器中断、定时器 中断、定时器中断、定时器 / /* *实例实例 4242:用定时器:用定时器 T0T0 查询方式查询方式 P2P2 口口 8 8 位控制位控制 LEDLED 闪烁闪烁#include#include / 包含包含 5151 单片机寄存器定义的头文件单片机寄存器定义的头文件/ /函数功能:主函数函数功能:主函数/ / voidvoid main(void)main(void) / EA=1;EA=1; /开总中断开总中断/ ET0=1;ET0=1; /定时器定时器 T0T0 中断允许中断允许 TMOD=0x01;TMOD=0x01; /使用定时器使用定时器 T0T0 的的模式模式 1 1TH0=(65536-46083)/256;TH0=(65536-46083)/256; /定时器定时器 T0T0 的高的高 8 8 位赋初值位赋初值TL0=(65536-46083)%256;TL0=(65536-46083)%256; /定时器定时器 T0T0 的高的高 8 8 位赋初值位赋初值TR0=1;TR0=1; /启动定时器启动定时器 T0T0TF0=0;TF0=0;P2=0xff;P2=0xff;while(1)/while(1)/无限循环等待查询无限循环等待查询 while(TF0=0)while(TF0=0); ;TF0=0;TF0=0;P2=P2;P2=P2;TH0=(65536-46083)/256;TH0=(65536-46083)/256; /定时器定时器 T0T0 的高的高 8 8 位赋初值位赋初值 TL0=(65536-46083)%256;TL0=(65536-46083)%256; /定时器定时器 T0T0 的高的高 8 8 位赋初值位赋初值 * *实例实例 4343:用定时器:用定时器 T1T1 查询方式控制单片机发出查询方式控制单片机发出 1KHz1KHz 音频音频 #include#include / 包含包含 5151 单片机寄存器定义的头文件单片机寄存器定义的头文件 sbitsbit sound=P37;sound=P37; /将将 soundsound 位定义为位定义为 P3.7P3.7 引脚引脚/ / 函数功能:主函数函数功能:主函数/ / voidvoid main(void)main(void) / EA=1;EA=1; /开总中断开总中断/ ET0=1;ET0=1; /定时器定时器 T0T0 中断允许中断允许 TMOD=0x10;TMOD=0x10; /使用定时器使用定时器 T1T1 的的模式模式 1 1TH1=(65536-921)/256;TH1=(65536-921)/256; /定时器定时器 T1T1 的高的高 8 8 位赋初值位赋初值TL1=(65536-921)%256;TL1=(65536-921)%256; /定时器定时器 T1T1 的高的高 8 8 位赋初值位赋初值TR1=1;TR1=1; /启动定时器启动定时器 T1T1TF1=0;TF1=0;while(1)/while(1)/无限循环等待查询无限循环等待查询 while(TF1=0)while(TF1=0); ;TF1=0;TF1=0;sound=sound;sound=sound; /将将 P3.7P3.7 引脚输出电平取反引脚输出电平取反TH1=(65536-921)/256;TH1=(65536-921)/256; /定时器定时器 T0T0 的高的高 8 8 位赋初值位赋初值 TL1=(65536-TL1=(65536-921)%256;921)%256; /定时器定时器 T0T0 的高的高 8 8 位赋初值位赋初值 * *实例实例 4444:将计数器:将计数器 T0T0 计数的结果送计数的结果送 P1P1 口口 8 8 位位 LEDLED 显示显示 #include#include / 包含包含 5151 单片机寄存器定义的头文件单片机寄存器定义的头文件 sbitsbit S=P34;S=P34; /将将 S S 位定义为位定义为 P3.4P3.4 引脚引脚/ / 函数功能:主函数函数功能:主函数/ / voidvoid main(void)main(void) / EA=1;EA=1; /开总中断开总中断/ ET0=1;ET0=1; /定时器定时器 T0T0 中断允许中断允许 TMOD=0x02;TMOD=0x02; /使用定时器使用定时器 T0T0 的的模式模式 2 2TH0=256-156;TH0=256-156; /定时器定时器 T0T0 的高的高 8 8 位赋初值位赋初值TL0=256-156;TL0=256-156; /定时器定时器 T0T0 的高的高 8 8 位赋初值位赋初值TR0=1;TR0=1; /启动定时器启动定时器 T0T0while(1)/while(1)/无限循环等待查询无限循环等待查询 while(TF0=0)w

    注意事项

    本文(单片机专业编程实例分析-100例汇总.doc)为本站会员(一***)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开