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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机.docx

1、单片机实验四一、 实验题目:当K1键按下后,首先使蜂鸣器响一声,然后使LED1-LED8完成3种闪亮的花样(自己定义),每一种花样循环3次,然后周而复始。二、 keil代码:/*当K1键按下后,首先使蜂鸣器响一声,然后使LED1- LED8完成3种闪亮的花样(自己定义),每一种花样循环 3次,然后周而复始。*/#includesbit P2_0=P20;/接蜂鸣器sbit P2_7=P27;sbit P1_0=P10;sbit P1_1=P11;sbit P1_2=P12;sbit P1_3=P13;sbit P1_4=P14;sbit P1_5=P15;sbit P1_6=P16;sbit

2、P1_7=P17; void DELAY(int time)/延时 while(time-) void BUZ_ON() if(P2_7=0) P2_0=1; else P2_0=0; void F1(void) int i;char data_group_mide5=0x00,0x18,0x24,0x42,0x81;/向两边延伸for(i=0;i5;i+) P1=data_group_midei; DELAY(20000); P1=0x00; void F2(void) int i; char data_group_left8=0xFF,0x7F,0x3F,0x0F,0x07,0x03,0x

3、01,0x00;/向左延伸for(i=0;i8;i+)P1=data_group_lefti;DELAY(20000); P1=0x00; void F3(void) int i;char date_group_right8=0x00,0x01,0x03,0x07,0x0f,0x3f,0x7f,0xff;/向右延伸for(i=0;i8;i+) P1=date_group_righti;DELAY(20000); P1=0x00; void main() unsigned int i; /每种花样循环三次 P2_0=0; P2_7=1; BUZ_ON(); P1=0x00; while(P2_7

4、=0) for(i=0;i3;i+)/花样1 F1(); for(i=0;i3;i+)/花样2 F2(); for(i=0;i3;i+)/花样3 F3(); 三、protues电路图:四、实验截图:5、实验小结:通过本次实验,我们熟悉了protues的编译环境,对以后的单片机学习有很大帮助。 实验五1、实验题目:程序启动后4位LED显示器滚动显示“-”,每按下1次K1键后,首先使蜂鸣器响一声。然后,依次使LED滚动显示CNT的计数值(0-9)。2、Keil代码:/*程序启动后4位LED显示器滚动显示“-”,每按下才1次K1键后,首先使蜂鸣器响一声。然后,依次使LED滚动显示CNT的计数值(0-

5、9)。1、按键K1采用中断来管理。(INT0采用边沿触发)2、中断服务程序完成四个功能: 1)消除按键K1抖动。 2)CNT计数。 3)查表将计数值转换成LED显示器的段代码。 4)将段代码分别放入4个显示缓冲单元。*/#include#define uchar unsigned char#define uint unsigned intsbit P2_7=P27;sbit P3_3=P33;uchar CORDING=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0,0xf9,0xa4,; /0,1,2,3,4.9,0,1,2的段码

6、int delayms(uint t) uint n;while(-t)n=200;while(-n);return 0;int main() uint CNT=0; P2_7=0; P3_3=1; P1=0xF7; while(1) if(P3_3=0) uint i; CNT+; P2_7=1; delayms(100); for(i=1;i10) CNT=CNT-10; P2_7=0; return 0; 3、protues电路图:4、实验截图:5、实验总结:通过本次实验,我们熟悉了CNT计数,学会了如何使LED灯上显示0-9数字。 实验六1、实验题目:两个数码管,K1,K2两个按键,完

7、成K1启动计数,K2暂停计数,每一秒钟数码管增加1,60秒钟后,数码管回归0,重新计数。 二、keil代码:/*两个数码管,K1,K2两个按键,完成K1启动计数,K2暂停计数,每一秒钟数码管增加1,60秒钟后,数码管回归0,重新计数。按键K1,K2采用中断来管理。(INT0采用边沿触发)*/#define uchar unsigned char#define uint unsigned int#includeuchar CNT=0;uchar m=0;sbit P3_7=P37;sbit P3_2=P32;sbit P0_0=P00;uchar CORDING=0x3F,0x06,0x5B,0

8、x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F; /0,1,2,3,4.9的段码void Delay(uint a) while(-a); void intproc() interrupt 0 TR0=0;void Time0() interrupt 1 m+; /中断一次,m加1 if(m=20) m=0; /中断次数清零 CNT+; /秒加1 if(CNT=60) CNT=0; P1=CORDINGCNT/10;/显示十位 Delay(10); P2=CORDINGCNT%10;/显示个位 Delay(10); void init() TMOD=0x01; /使用定时器

9、T0 使用方式1 TH0 = 0x3c; TL0 = 0xb0; /50ms中断一次 ET0=1; TR0=1; EX0=1; IT0=1; EA=1; void main() P1=0x3f; P2=0x3f; P3_7=1; while(1) if(P3_7=0) /控制是否开启 init(); 3、protues电路图:四、实验截图:5、实验总结:本次实验,我们用到了中断,按键K1,K2采用中断来管理。(INT0采用边沿触发),通过本次实验加强了中断的学习,更加有利于单片机的学习。 实验七一、实验题目:晶振12MHz,波特率1200,程序启动后单片机主动发出Hello Server,PC

10、使用串口助手应答单片机,单片机收到数据后,不做任何修改返回PC。二、keil代码:#include#define uchar unsigned char #define uint unsigned intuchar code table=HELLO SERVER!;uint flag = 0;uchar a,b;void init() TMOD = 0x20; TH1 = 0xFD; TL1 = 0XFD; SCON = 0X50; TR1 = 1; EA = 1; ES = 1;void SendByte(uchar ch) SBUF = ch; while(!TI); TI = 0;voi

11、d SendString(uchar code *str) while(*str) SendByte(*str+);void main() init(); SendString(HELLO SERVER!); while(1) if(flag = 1) ES = 0; SBUF = a; while(!TI); TI = 0; ES = 1; flag = 0; void ser() interrupt 4 if(RI = 1) RI = 0; a = SBUF; flag = 1; 三、protues电路图:四、实验截图:五6、实验总结:本次实验,我们利用了中断来实现,通过本次实验我们对中断有了更加深刻的了解,让我们在以后的为以后的学习之中打下了一定的基础。

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

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