电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

Keil及C语言常用程序--精选文档

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

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

Keil及C语言常用程序--精选文档

在个人的单片机开发板c语言程序及模块设计总结目录Keil 软件的使用2*LED 显示输出*8一. 闪烁灯9二.广告灯的左移右移10三. 按键识别14四.数码管动态显示15五.4×4 矩阵式键盘识别17六按键中断识别19七.定时器 T0 的应用-9.9 秒计时设计21八.利用定时器产生乐曲23九数摸转换 ADC0804 的应用26十摸数转换 DAC0832的应用32十一24CO8 的读写操作35十二PC 机与单片机通信(RS232 协议)39十三.DS18B20 测量温度系统41十四.128X64 液晶显示器的基本应用45十五.标准键盘 PS2与单片机通信47十六,128X64无字库液晶4X4键盘输入使用(密码锁)51十七、串口下载线57*LED 显示输出*很明显,要点亮使发光二极管,必须使单片机的I/O口P1.0输出低电平。于是我们的任务就是编程序使P1.0输出地电平。#include<reg52.h> /*LED 显示输出 具体口输出*/sbit P1_0=P10; /*定义p1.0为p1_0 */sbit P1_1=P21; /*定义p2.1为p1_1 */sbit P1_2=P32;/*定义p3.2为p1_2 */sbit P1_3=P03;/*定义p0.3为p1_3 */main()P1_0=0;/*输出高电平 即:灯亮 */P1_1=0;P1_2=0;P1_3=0;#include<reg52.h> /* LED 显示输出 整体输出*/main()P1=0;/*输出高电平 */P2=0;P3=0;P0=0;AT89S52单片机从简单到复杂程序演示。一. 闪烁灯实验任务在 P1.0 端口上接一个发光二极管 L1,使 L1 在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。硬件电路与上面点亮小灯的连接完全相同。#include<reg52.h> /*闪烁灯*/del() /*延时0.2秒*/unsigned char i,j,k;for(i=20;i>0;i-)for(j=20;j>0;j-)for(k=248;k>0;k-);sbit P1_0=P10;main()while(1)/*永远为真,一直执行下去*/P1_0=0;del();P1_0=1;del();#include "reg52.h" /#define uchar unsigned char /#define uint unsigned int sbit P10=P10; void mDelay(unsigned int Delay) unsigned int i; for(;Delay>0;Delay-) for(i=0;i<124;i+) ; void main() for(;) P10=!P10; /取反 P1.0 mDelay(1000); /延时1秒。如果是2000那么是2秒 二.广告灯的左移右移实验任务做广告灯的左移右移,八个发光二极管分别接在单片机的P3.0P3.7接口上,输出“0”时,发光二极管亮,开始时P3.0P3.1P3.2P3.3P3.7P3.6P3.0亮,重复循环。(当然,四个输出口可以同时实现广告灯)硬件电路#include<reg52.h> /*广告灯的左移右移*/unsigned char i;unsigned char temp;unsigned char a,b;delay()/延时程序unsigned char m,n,s;for(m=20;m>0;m-)for(n=20;n>0;n-)for(s=248;s>0;s-);main()while(1)temp=0xfe;P3=P2=P0=P1=temp;/直接对1/0口p3赋值,使批p3.0输出低电平。delay();/延时for(i=1;i<8;i+)/实现广告灯的从右到左移动a=temp<<i;b=temp>>(8-i);P3=P2=P0=P1=a|b;delay();for(i=1;i<8;i+)/实现广告灯的从左到右移动a=temp>>i;b=temp<<(8-i);P3=P2=P0=P1=a|b;delay();、#include "reg52.h" #include "intrins.h" #define uchar unsigned char #define uint unsigned int void mDelay(unsigned int Delay) unsigned int i; for(;Delay>0;Delay-) for(i=0;i<124;i+) ; void main() unsigned char OutData=0xfe; for(;) P1=OutData; OutData=_crol_(OutData,1); / 循环左移 mDelay(1000); / 1000延时1s #include<reg52.h> /*广告灯的缩短*/unsigned char i;unsigned char temp;unsigned char a,b;delay()/延时程序unsigned char m,n,s;for(m=20;m>0;m-)for(n=20;n>0;n-)for(s=248;s>0;s-);main()while(1)temp=0xfe;P1=temp;/直接对1/0口p3赋值,使批p3.0输出低电平。delay();/延时for(i=1;i<8;i+)/实现广告灯的从右到左移动a=temp<<i;b=temp>>(8-i);P1=b;/P1=a|b;delay();for(i=1;i<8;i+)/实现广告灯的从左到右移动a=temp>>i;b=temp<<(8-i);P1=b;/P1=a|b;delay();三. 按键识别实验任务通过按下一次按键,使广告灯向左移动一位,直到最后一位,在向右移动。硬件电路(大家注意到这一个电路图与上一个实验的电路图只多了一个按键和一个5.1K的电阻。)实验原理从图中可以看出P2.1在按键没有按下时接的是高电平,按键按下时接的就是低电平了。所以我们只要判断P2.1的电平就可以知道按键是否被按下了。而在按键按下的过程中,由于抖动,将产生干扰,在按下的过程中,一旦有干扰过来,可能造成误触发过程,这并不是我们所想要的。因此在按键按下的时候,要把我们手上的干扰信号以及按键的机械接触等干扰信号给滤除掉,一般情况下,我们可以采用软件滤波的方法去除这些干扰信号,一般情况下,一个按键按下的时候,总是在按下的时刻存在着一定的干扰信号,按下之后就基本上进入了稳定的状态。我们在程序设计时,从按键被识别按下之后,延时5ms以上,从而避开了干扰信号区域,我们再来检测一次,看按键是否真得已经按下,若真得已经按下,这时肯定输出为低电平,若这时检测到的是高电平,证明刚才是由于干扰信号引起的误触发,CPU就认为是误触发信号而舍弃这次的按键识别过程。C语言源程序#include <reg52.h>sbit BY1=P21; /定义按键的输入端unsigned char count; /按键计数,每按一下,count 加1unsigned char temp;unsigned char a,b;void delay10ms(void) /延时程序unsigned char i,j;for(i=20;i>0;i-)for(j=248;j>0;j-);key() /按键判断程序if(BY1=0) /判断是否按下键盘delay10ms(); /延时,软件去干扰if(BY1=0) /确认按键按下count+; /按键计数加1if(count=8) /计8次重新计数 count=0; /将count 清零while(BY1=0);/按键锁定,每按一次count 只加1.move( ) a=temp<<count;b=temp>>(8-count);P3=a|b;main()count=0;temp=0xfe;P3=0xff;P3=temp;while(1)key();move();四.数码管动态显示实验任务P0端口接动态数码管的字形码笔段,P2端口接动态数码管的数位选择端,动态显示“1234”字样;硬件电路注意:a接P0.0;b接P0.1;c接P0.3注意:4H接P2.4;3H接P2.5;2H接P2.6;1H接P2.7实验原理 七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。LED 数码管的 a-dp 七个发光二极管因以不同亮暗的组合就能形成不同的字形,这种组合称之为字形码。下面给出共阴极的字形码:TKVZ,0 1 2 3 4 5 6 7 8 9 a b c d e f 0 0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e 1 2 3 4 5 6 7 8 9 a b c d e f C语言源程序#include <reg52.h> code unsigned char seg7code10= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /显示段码 数码管字跟:/0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x40,/ 0 1 2 3 4 5 6

注意事项

本文(Keil及C语言常用程序--精选文档)为本站会员(工****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

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




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.