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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机.docx

1、单片机实验一 驱动数码管#include sbit add=P20;sbit min=P21;sbit beg=P22;sbit cs =P27;sbit wor=P30;unsigned char tab10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delay(unsigned char ms) unsigned int i,j; for(i=0;ims;i+) for(j=0;j9) i=0; if(min=0) delay(10); if(min=0) while(min=0); i-; if(i0) i=9; ret

2、urn i;void main () unsigned char i,j; j=0; cs=1; while(1) j=key(j); P0=tabj; /显示设定的数 if(beg=0) for(i=0;i=j;i+) delay(500); P0=tabi; wor=0; while(add=1&min=1&beg=1) P0=tabj; delay(100); cs=cs; cs=1; wor=1; 实验二 键盘扫描#include #define uint unsigned int #define uchar unsigned char int xx=0; / sbit key =P2

3、0; char code seg 17 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff; char code duan4 = 0x01,0x02,0x04,0x08; char num4 = 16,16,16,16; void delay_ms(unsigned char ms ) int i; int j; for (i=0;ims;i+) for (j=0;j=0;i-) P2=duani; j=numi; if(j!=16) P0=segj; delay_ms(1

4、0); void main () char i,k; begain: P0=seg0; P2= 0x01; /初始化显示 for(i=0;i0;k-) numk=numk-1; num0=i; display(); i=keyscan(); 实验三 中断#include sbit yell=P20;sbit gree=P21;sbit red=P22;void delay (int ms) int i,j; for(i=0;ims;i+) for(j=0;j240;j+); void main() IE=0x85; IP=0x04; TCON=0x05; while(1) yell=yell;

5、 delay(200);void intt0() interrupt 0 char i; yell=1; red =0; gree=1; for(i=0;i10;i+) delay(200); red=red; red =1;void intt1() interrupt 2 char i; yell=1; gree =0; red =1; for(i=0;i10;i+) delay(200); gree=gree; gree =1;实验四 串行口通信发送#include void main() TMOD =0X20; /串口工作于方式1,定时器1工作于方式2 TH1 = 0XFA; TL1 =

6、 0XFA; SCON = 0x50; /不倍增,波特率4800 PCON = 0; TR1 = 1; while(1) SBUF=P1; while(TI=0); TI=0;接收#include void main() TMOD =0X20; /串口工作于方式1,定时器1工作于方式2 TH1 = 0XFA; TL1 = 0XFA; SCON = 0x50; /不倍增,波特率4800 PCON = 0; TR1 = 1; while(1) P2=SBUF; while(RI=0); RI=0; /接受 实验六 步进马达#include #define uint unsigned int#def

7、ine uchar unsigned charuchar code TAB= 0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;sbit go = P30;sbit back = P31;sbit fast = P02;sbit slow = P03;sbit stop = P34;uchar N = 10;void Delay(uint ms) uchar i; while(ms-) for(i=0;i120;i+); void SETP_MOTOR_GO(char N) /正传 uchar j; for(j=0;j0;j-) if(go = 0|stop =

8、0) break; P1 = TABj; Delay(N); void main() IE = 0X85; TCON = 0X05; P3=0xff; while(1) if(go = 0) while(back=1&stop=1) P0 = 0xfe; SETP_MOTOR_GO(N); else if(back = 0) while(go=1&stop=1) P0 = 0xfd; SETP_MOTOR_BACK(N); else P0 = 0xef; P1 = 0x03; void intfast() interrupt 0 /减速程序 IE = 0; /关中断 N+; if(N20) N

9、=20; fast=0; Delay(50); IE = 0X85; /打开中断void intslow() interrupt 2 /加速程序 IE = 0; N-; if(N=1) N=1; slow=0; Delay(50); IE = 0X85;实验七 倒计时60#include sbit key=P10;sbit rst=P11;sbit led=P17;char code seg 10 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;unsigned int num=0,second=60;void delay(unsigne

10、d char ms) unsigned char i,j; for(i=0;ims;i+) for(j=0;j120;j+); void main() begain: second=60; IE=0X8A; /开定时器0 TMOD = 0X21; /设置为模式1 TH0 =(65536-50000)/256; TL0 =(65536-50000)%256; TR0=0; /开始计数 while(1) if(key=0) TR0=TR0; /停止 开始 计数切换 / delay(10); while(key=0); /等待松手 if(rst=0) goto begain; P2=0x01; P0

11、=segsecond/10; delay(20); P2=0x02; P0=segsecond%10; delay(20); /显示 void T0_1(void) interrupt 1 TH0 =(65636-50000)/256; TL0 =(65636-50000)%256; /重新赋值 num+; if(+num=20) led=led; num=0; second-; if(second=0) second=60; 实验八 LED动态扫描#include code char right8=0x18,0x3C,0x7E,0xFF,0x3C,0x3C,0x3C,0x3C;code ch

12、ar left8 =0x3C,0x3C,0x3C,0x3C,0xFF,0x7E,0x3C,0x18;code char up8 =0x3C,0x3C,0x3C,0x3C,0xFF,0x7E,0x3C,0x18;code char down8 =0x18,0x3C,0x7E,0xFF,0x3C,0x3C,0x3C,0x3C;sbit upkey = P30;sbit downkey = P31;sbit leftkey = P32;sbit rightkey = P33;void delay(char ms) char i,j; for(i=0;ims;i+) for(j=0;j120;j+);

13、 void rightmove(char ms) char x,y,i,j; x=0x80; for(j=0;j=8;j+) y=x; for(i=0;i9;i+) P2=y; P1=righti; y=2*y; delay(10); P1= 0xff; P2= 0; x=x/2; delay(ms); void leftmove(char ms) char x,y,i,j; x=1; for(j=0;j=8;j+) y=x; for(i=0;i9;i+) P2=y; P1=lefti; y=2*y; delay(10); P1= 0xff; P2= 0; x=2*x; delay(ms);

14、void upmove(char ms) char x,y,i,j; x=1; for(j=0;j=8;j+) y=x; for(i=0;i9;i+) P1=y; P2=upi; y=2*y; delay(10); P2= 0xff; P2= 0; x=2*x; delay(ms); void downmove(char ms) char x,y,i,j; x=0x80; for(j=0;j=8;j+) y=x; for(i=0;i9;i+) P1=y; P2=downi; y=2*y; delay(10); P2= 0xff; P2= 0; x=x/2; delay(ms); void main() while(1) if(upkey=0) while(downkey=1&leftkey=1&rightkey=1) upmove(10); if(downkey=0) while(upkey=1&leftkey=1&rightkey=1) downmove(10); if(leftkey=0) while(downkey=1&upkey=1&rightkey=1) leftmove(10); if(rightkey=0) while(downkey=1&leftkey=1&upkey=1) rightmove(10);

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

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