ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:121.21KB ,
资源ID:7012885      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7012885.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机实验c语言编程.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机实验c语言编程.docx

1、单片机实验c语言编程流水灯效果:发关二级管依次独个被点亮,一直循环下去。语言程序如下:#include unsigned char i;unsigned char temp;void delay(void) /延时子程序unsigned char m,n,s;for(m=20;m0;m-)for(n=20;n0;n-)for(s=248;s0;s-);void main(void) /主程序while(1) /循环条件永远为真,以下程序一直执行下去。temp=0xfe;P3=temp; /直接对I/O 口P3 赋值,使.P3.0 输出低点平。delay(); /延时for(i=1;i8;i+)

2、 /实现灯的移动temp=(temp1)|0x01; /P3 口I/O 轮流低电平P3=temp;delay(); /延时,肉眼可以看到闪烁灯效果:发光二极管维持一闪一闪的状态。语言程序如下:#include /*第一行是一个文件包含处理。所谓文件包含是指一个文件将另外一个文件的内容全部包含进来,所以这里的程序虽然只有4 行,但C 编译器在处理的时候却要处理几十或几百行。这里程序中包含REG51.h文件的目的是为了要使用P1 这符号即通知C 编译器,程序中所写的P1 是指80C51 单片机的P1 端口而不是其它变量。*/void delay02s(void) /延时0.2 秒子程序unsign

3、ed char i,j,k; /定义3 个无符号字符型数据。for(i=20;i0;i-) /作循环延时for(j=20;j0;j-)for(k=248;k0;k-);void main(void) /每一个C 语言程序有且只有一个主函数,while(1) /循环条件永远为真,以下程序一直执行下去。P3_0=0; / I/O 口P3.0 输出低电平,小灯被点亮。delay02s(); /延时经过0.2 秒。P3_0=1; / I/O 口P3.0 输出高电平,小灯熄灭。delay02s(); /延时经过0.2 秒。按键识别效果:按下开关,D1变亮并保持。再按开关,D1熄灭,并保持。C语言程序如下

4、:#include sbit INT_0=P32; /定义按键的输入端注意此处按键判断使用的是扫/描方式而表示中断判断方式sbit D1=P30; /D1 小灯定义void delay10ms(void) /延时程序unsigned char i,j;for(i=20;i0;i-)for(j=248;j0;j-);key() /按键判断程序if(INT_0=0) /判断是否按下键盘delay10ms(); /延时,软件去干扰if(INT_0=0) /确认按键按下D1=!D1; /D1 亮灭交替变化while(INT_0=0); /按键锁定,每按一次D1 只变化一次.main()while(1)

5、 /永远循环,扫描判断按键是否按下key(); /对于此处CPU 对按键判断一直扫描;按键中断识别效果:一开始显示“”,每按一次开关,显示的数字就加。语言程序如下:#include unsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;unsigned char dispcount=0; /计数sbit gewei=P31; /个位选通定义sbit shiwei=P30; /十位选通定义void Delay(unsigned int tc) /延时程序while( tc != 0 )unsigned

6、 int i;for(i=0; i=10) /显示两位数shiwei=1;P2=tabledispcount/10;Delay(8);shiwei=0; gewei=1;P2=tabledispcount%10;Delay(5);gewei=0;else /显示一位数shiwei=0;gewei=1;P2=tabledispcount;Delay(8);void main() TCON=0x01; / INT0为0 电平触发 为1负边沿触发 IE=0x81; /开总中断和允许INT0外部中断while(1) /循环执行 LED(); /调用显示函数44 矩阵式键盘识别效果:按下不同的按键将显示

7、不同的内容,从右到左,从上到下,按键分别代表,语言程序如下:#include unsigned char code seg7code=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;unsigned char k;void delay10ms(void) /延时程序unsigned char i,j;for(i=20;i0;i-)for(j=248;j0;j-);void Getch ( )unsigned char X,Y,Z;P2=0xff;P2=0x0f; /先对P2 置数

8、行扫描if(P2!=0x0f) /判断是否有键按下delay10ms(); /延时,软件去干扰if(P2!=0x0f) /确认按键按下;X=P2; /保存行扫描时有键按下时状态P2=0xf0; /列扫描Y=P2; /保存列扫描时有键按下时状态Z=X|Y; /取出键值switch ( Z ) /判断键值(那一个键按下)case 0x77: k=0; break; /对键值赋值case 0x7b: k=1; break;case 0x7d: k=2; break;case 0x7e: k=3; break;case 0xb7: k=4; break;case 0xbb: k=5; break;ca

9、se 0xbd: k=6; break;case 0xbe: k=7; break;case 0xd7: k=8; break;case 0xdb: k=9; break;case 0xdd: k=10;break;case 0xde: k=11;break;case 0xe7: k=12;break;case 0xeb: k=13;break;case 0xed: k=14;break;case 0xee: k=15;break;void main(void)while(1) P2=0xff;Getch();P3=seg7codek; /查表LED 输出P1=0xf0; /输出相同的四位数据

10、。数码管动态显示效果:液晶显示器显示“”。语言程序如下:#include XX文库 - 让每个人平等地提升自我sbit qian=P10;sbit bai=P11;sbit shi=P12;sbit ge=P13;code unsigned char seg7code10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /显示段码void Delay(unsigned int tc) /延时程序while( tc != 0 ) /如果tc 为0 则终止延时unsigned int i; /局部正整数变量ifor(i=0; i100; i+)

11、; /执行400 次将耗时1 毫秒tc-; /tc 计数减一void Led(int date) /显示函数qian=0; /P1.0 输出低电平,选通千位数P3=seg7codedate/1000; /取出千位数,查表,输出。Delay(10); /延时qian=1; /销隐bai=0; /P1.1 输出低电平,选通百位数P3=seg7codedate%1000/100; /取出百位数,查表,输出。Delay(10); /延时bai=1; /销隐shi=0; /P1.2 输出低电平,选通十位数P3=seg7codedate%100/10; /取出十位数,查表,输出。Delay(10); /延

12、时shi=1; /销隐ge=0; /P1.3 输出低电平,选通十位数P3=seg7codedate%10; /取出个位数,查表,输出。Delay(10); /延时ge=1; /销隐main()int display_date=1234; /定义并赋值要显示的数据while(1)Led(display_date);/调用显示函数显示数据display_date数码管静态显示效果:液晶显示器最左边第一位将显示“”语言程序如下:#include sbit GE=P13;code unsigned char seg7code10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /显示段码main()unsigned char display_date=4; /定义并赋值要显示的数据while(1)P3=seg7codedisplay_date; /查表,输出GE=0; /P13 为低电平,相当于把数码管的4H 端接地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1