嵌入式实验报告(51单片机)_第1页
嵌入式实验报告(51单片机)_第2页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验报告内容实验题目:P口输出实验实验目的:通过实验了解P口做为输入输出方式使用时,CPU对P口的操作方式实验要求:控制8个灯,完成从左到右然后再从右到左再从左到右依次的循序流水实验器材:计算机和普中科技STC89C52单片机电路板实验步骤/程序流程分析:程序源代码:#include reg52.h#includetypedef unsigned int u16;typedef unsigned char u8;#define led P2void delay(u16 i)while(i-);void main()u8 i;led=0 x7f;delay(50000);while(1)for(

2、i=0;i7;i+)led=_cror_(led,1);delay(50000);for(i=0;i7;i+)led=_crol_(led,1);delay(50000);实验结果分析:成绩评定:优秀(100-90分)良好(分)中等(分)及格(分)不及格(分)教师签名:年 月 日实验报告内容实验题目:定时器实验T0,T1 法0在数码管上显示出从200开始以1/10秒的速度往下递减直至1001以500MS速度进行流水灯从上至下移动,当数码管上数减到停止时灯全亮。实验器材:计算机和普中科技STC89C52单片机电路板实验步骤/程序流程分析:程序源代码:#include#include#define

3、 uint unsigned int#define uchar unsigned charsbit LSA=P22;sbit LSB=P23;sbit LSC=P24;uchar t0=0,t1,temp;uchar temp,bai,shi,ge;uint shu=200;uchar codesmgduan17=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;void delay(uint i)while(i-);void xianshi(uchar

4、 bai,uchar shi,uchar ge)LSA = 0;LSB=0;LSC=0;P0=smgduange;delay(250);P0=0 x00;LSA=1;LSB=0;LSC=0;P0=smgduanshi;delay(250);P0=0 x00;LSA=0;LSB=1;LSC=0;P0=smgduanbai;delay(250);P0=0 x00;void main()TMOD=0 x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=

5、1;ET1=1;TR0=1;TR1=1;temp=0 xfe;P2=0 xfe;while(1)xianshi(bai,shi,ge);void T0_time() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;t0+;if(t0=10)t0=1;temp=_crol_(temp,1);P2=temp; void T1_time() interrupt 3TH1=(65536-50000)/256;TL1=(65536-50000)%256;t1+;if(t1=2)t1=0;shu-;bai=shu/100;shi=shu%100

6、/10;ge=shu%10;if(shu=100)TR1=0;TR0=0;P2=0 x00;实验结果分析:成绩评定:优秀(100-90分)良好(分)中等(分)及格(分)不及格(分)教师签名:年 月 日实验报告内容实验题目:综合性实验实验目的:设计简单功能系统实验要求:以单片机为核心,设计数字秒表。设计要求计时范围:059分59.59秒,整数四位数和小数两位数显示;计时精度10毫秒;复位按钮,计时器清零,并做好下次及时准备;可以对三个对象(、)计时,具有启/B实验器材:计算机和普中科技STC89C52单片机电路板实验步骤/程序流程分析:程序源代码:#include#define uint uns

7、igned int#define uchar unsigned char#define DUAN (P0)/宏定义无符号整型/宏定义无符号字符型/宏定义数码管段代码/宏定义数码管位代码/定义启动/停止按键/定义复位/清零按键/定义计数/存储按键/定义计数/显示按键/定义蜂鸣器#define WEI(P2)sbit keystart_stop = P32;sbit keyrestsbit keyrecord= P33;= P34;sbit keydispaly = P35;sbit beepsbit led= P36;= P37;/定义uchar x,msec5,msec10,second,mi

8、nute;uchar msec,sec,min;/时间变量/显示变量uchar code table1 = 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;uchar code table2 = 0 x40,0 x79,0 x24,0 x30,0 x19,0 x12,0 x02,0 x58,0 x00,0 x10;/*函数名称: 延时函数 delay/共阳数码管数组不带点显示/共阳数码管带点显示功参能: 延时指定毫秒数: uchar x返 回 值: 无*/void delay(uchar x)uint b,c;for(b

9、= x;b0;b-)for(c = 110;c0;c-);/*函数名称: 定时器初始化函数 time_init(void)功能: 定时器初始化参数: 无返 回 值: 无*/void time_init(void)msec5=0;TMOD = 0 x01;TH0 = (65536-9174)/256;TL0 = (65536-9174)%256;ET0 = 1;TR0 = 1;EA = 1;/*函数名称: 显示函数 display()功参能: 数码管显示数: uchar msec,uchar sec,uchar min返 回 值: 无*/void display(uchar msec,uchar

10、 sec,uchar min)DUAN = table1(msec%10)%10;/ 0.01 秒WEI = 0 x01;delay(2);5.64%10=64%10=0.045.64/10=56%10=0.6WEI = 0 x00;DUAN = table1(msec/10)%10;/ 0.1 秒WEI = 0 x02;delay(2);WEI = 0 x00;DUAN = table2(sec%10); / 1 秒 564%10=6WEI = 0 x04;delay(2);WEI = 0 x00;DUAN = table1(sec/10); / 10 秒 564/10=56%10=6WEI

11、 = 0 x08;delay(2);WEI = 0 x00;DUAN = table1(min%10); / 1 分WEI = 0 x10;564/10=56%10=6delay(2);WEI = 0 x00;DUAN = table1(min/10); / 10 分WEI = 0 x20;564/10=56%10=6delay(2);WEI = 0 x00;/*函数名称: 蜂鸣器函数功参能: 蜂鸣器发声数: 无返 回 值: 无*/void beep_led()beep = 0;delay(600);beep = 1;delay(600);led = 0;delay(600);led = 1;

12、/*函数名称: 按键函数功参能: 调试按键的函数数: 无返 回 值: 无*/void keys()if(keystart_stop=0)delay(5);if(keystart_stop=0)TR0 = TR0;beep_led();while(!keystart_stop);if(keyrest=0)delay(5);if(keyrest=0)TR0 = 0;msec5=0;msec10=0,second=0;minute=0;beep_led();while(!keyrest);/*函数名称: 主函数功参能:数: 无返 回 值:*/void main()uchar jishu=0;ucha

13、r flag=0;uchar msec1=0,sec1=0,min1=0;uchar msec2=0,sec2=0,min2=0;time_init();while(1)keys(); / 键盘的扫描函数一定要放在 while循环里边msec=msec10;sec=second;min=minute;if(flag=1)display(msec1,sec1,min1);else if(flag=0)display(msec,sec,min);elsedisplay(msec2,sec2,min2);if(keyrecord=0)delay(5);if(keyrecord=0)beep_led(

14、);jishu+;if(jishu2)jishu=0;else if(jishu=1)msec1=msec10;sec1=second;min1=minute;else if(jishu=2)msec2=msec10;sec2=second;min2=minute;while(!keyrecord);if(keydispaly=0)delay(5);if(keydispaly=0)beep_led() ;flag+;if(flag2)flag=0;while(!keydispaly);/*函数名称: 中断函数功参能:数: 无返 回 值:*/void timer0 () interrupt 1TH0 = (6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论