收藏 分销(赏)

单片机原理及应用实验指导书.doc

上传人:仙人****88 文档编号:8160466 上传时间:2025-02-05 格式:DOC 页数:23 大小:103.50KB 下载积分:10 金币
下载 相关 举报
单片机原理及应用实验指导书.doc_第1页
第1页 / 共23页
单片机原理及应用实验指导书.doc_第2页
第2页 / 共23页


点击查看更多>>
资源描述
《单片机原理及应用》实验指导书 10 / 11 年 第 二 学期 姓名:___仲久妹______ 学号:___08125217 __ 班级:___08计Y2___ 指导教师:_____________ 计算机信息工程学院 计算机科学与工程系 2009年8月修订 目 录 实验一 P1口输入输出实验………………………………………………… 1 实验二 定时器实验…………………………………………………… 3 实验三 外部中断实验…………………………………………………… 5 实验四 串行口实验…………………………………………………… 7 实验五 键盘显示实验…………………………………………………… 9 实验六 数码管显示实验…………………………………………………… 11 实验七 A/D转换实验…………………………………………………… 13 21 实验一 P1口输入输出实验 一、 实验目的 掌握单片机I/O口的使用,掌握数据输入输出程序编制的方法。 二、 实验环境 硬件平台:TX-1C单片机学习板。 软件平台:keil软件 三、 实验内容与要求 P1口循环点亮8个发光二极管 四、 实验预习和准备 参考相关书籍,掌握TX-1C单片机学习板原理图。 五、 实验过程与结果 #include <reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char uchar temp; void delay(uint z); void main() { temp=0xfe; P1=temp; while (1){ temp=_crol_(temp,1); delay(600); P1=temp; } } void delay(uint z) { uint x,y; for (x=z;x>0;x--) for (y=20;y>0;y--); } 六、实验小结和体会 实验二 定时器实验 一、实验目的 掌握单片机定时器使用及其编程方法。 二、实验环境 硬件平台:TX-1C单片机学习板。 软件平台:keil软件 三、 实验内容与要求 P1口循环点亮8个发光二极管,循环间隔为2S。 四、 实验预习和准备 参考相关书籍,掌握TX-1C单片机学习板原理图。 五、 实验过程与结果 #include <reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char uchar temp,tt; void init(); void delay(uint z); void main() { temp=0xfe; P1=temp; init(); while (1){ if (tt==40) { tt=0; temp=_crol_(temp,1); delay(600); P1=temp; } } } void init() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void delay(uint z) { uint x,y; for (x=z;x>0;x--) for (y=110;y>0;y--); } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt++; } 六、实验小结和体会 实验三 外部中断实验 一、实验目的 学习外部中断技术的基本使用方法及中断处理的编程方法。 二、实验环境 硬件平台:TX-1C单片机学习板。 软件平台:keil软件 三、实验内容与要求 当有外部中断0时,发光二极管开始循环点亮,循环间隔2S,同时蜂鸣器响,到最好一个发光二级管后,灯全灭,同时蜂鸣器停止响声。 四、 实验预习和准备 参考相关书籍,掌握TX-1C单片机学习板原理图。 五、 实验过程与结果 #include <reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char uchar temp,tt; uchar tt1; sbit beep=P2^3;//蜂鸣 bit flag=0; void init(); void delay(uint z); void main() { temp=0xfe; P1=temp; init(); while (1){ if (flag==0) { beep=1; if (tt==40) { beep=0; tt=0; temp=_crol_(temp,1); tt1++; delay(600); P1=temp; } } else { beep=1; P1=0xff; } } } void init() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; EX0=1; } void delay(uint z) { uint x,y; for (x=z;x>0;x--) for (y=110;y>0;y--); } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt++; if(tt1==8) { tt1=0; flag=1; } } void timer1() interrupt 0 { TR0=0; } 六、实验小结和体会 实验四 串行口实验 一、实验目的 利用单片机串行口,实现与PC机的通讯,了解其工作原理。 二、实验环境 硬件平台:TX-1C单片机学习板。 软件平台:keil软件 三、实验内容与要求 由上位机发送1给单片机时,蜂鸣器以400ms频率发声,发2时以200ms频率发声,发3时以100ms频率发声,发4时关闲蜂鸣器。 四、实验预习和准备 参考相关书籍,掌握TX-1C单片机学习板原理图。 五、实验过程与结果 #include <reg52.h> #define uchar unsigned char #define uint unsigned int uchar temp,tt,time; sbit beep=P2^3;//蜂鸣 bit flag; void init(void); //void delay(uint z); void main() { init(); while(1) { if(flag==1) { ES=0; flag=0; SBUF=temp; while(!TI); TI=0; TR0=1; if (temp==1){ time=8; } else if(temp==2) { time=4; } else if (temp==3) { time=2; } else if (temp==4) { TR0=0; beep=1; } ES=1; } } } void init(void) { TMOD=0x21; TH1=0xFD; TL1=0xFD; TR0=1; TR1=1; SCON=0x50; EA=1; ES=1; ET0=1; beep=1; } void timer1() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt++; if(tt==time) { tt=0; beep=~beep; } } void serial() interrupt 4 { RI=0; temp=SBUF; P1=temp; flag=1; } 六、实验小结和体会 实验五 键盘显示实验 一、实验目的 1. 熟悉并掌握系统中扩展键盘显示接口的方法。 2. 掌握键盘显示的工作原理和编程的方法。 二、实验环境 硬件平台:TX-1C单片机学习板。 软件平台:keil软件 三、实验内容与要求 按下矩阵键盘某个按键,数码管上显示对应的按键编号。 四、实验预习和准备 参考相关书籍,掌握TX-1C单片机学习板原理图。 五、实验过程与结果 #include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; sbit wela=P2^7; sbit key1=P3^4; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; uchar num,temp,temp1; void init(); void delay(uint z); uchar keynum();//按第几个键 void display(uchar x);//显示按键 void main() { init(); while(1) { temp1=keynum(); //返回num display(temp1); //在数码管上显示 } } void init() { num=16; wela=1; P0=0xfe;//数码管第左一位 wela=0; dula=1; P0=0; dula=0; } void display(uchar x) { dula=1; P0=table[x]; dula=0; } uchar keynum() { //第一行 P3=0xfe; temp=P3; temp=temp&0xf0; //判断高4位是否有按下 while(temp!=0xf0) //有键按下 { delay(10);//消抖 temp=P3; temp=temp&0xf0; while(temp!=0xf0) { temp=P3; //在次付给temp,因为WHILE(TEMP!=0XFO)始终为正,则跳不出WHILE switch(temp) { case 0xee:num=0; break; case 0xde:num=1; break; case 0xbe:num=2; break; case 0x7e:num=3; break; } while(temp!=0xf0) //检查松手 { temp=P3; temp=temp&0xf0; } } } //第二行 P3=0xfd; temp=P3; temp=temp&0xf0; while(temp!=0xf0) { delay(10); temp=P3; temp=temp&0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { case 0xed:num=4; break; case 0xdd:num=5; break; case 0xbd:num=6; break; case 0x7d:num=7; break; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } } } //第三行 P3=0xfb; temp=P3; temp=temp&0xf0; while(temp!=0xf0) { delay(10); temp=P3; temp=temp&0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { case 0xeb:num=8; break; case 0xdb:num=9; break; case 0xbb:num=10; break; case 0x7b:num=11; break; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } } } //第四行 P3=0xf7; temp=P3; temp=temp&0xf0; while(temp!=0xf0) { delay(10); temp=P3; temp=temp&0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { case 0xe7:num=12; break; case 0xd7:num=13; break; case 0xb7:num=14; break; case 0x77:num=15; break; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } } } return num; } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } 六、实验小结和体会 实验六 数码管显示实验 一、实验目的 1.熟悉并掌握数码管显示原理。 2.掌握单片机定时器的应用。 二、实验环境 硬件平台:TX-1C单片机学习板。 软件平台:keil软件 三、实验内容与要求 数码上循环显示0~F,循环间隔为2S。 四、实验预习和准备 参考相关书籍,掌握TX-1C单片机学习板原理图。 五、实验过程与结果 #include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; sbit wela=P2^7; uchar tt,num; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(uint z); void init(); void main() { init(); while (1) { if (tt==20) { tt=0; dula=1; P0=table[num]; dula=0; num++; if (num==16) { num=0; } delay(100); } } } void init() { wela=1; P0=0xc0; wela=0; dula=1; P0=0; dula=0; TMOD=0x01; TH0=(65536-50000)/255; TL0=(65536-50000)%255; tt=0; num=0; EA=1; ET0=1; TR0=1; } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void timer0() interrupt 1 { TH0=(65536-50000)/255; TL0=(65536-50000)%255; tt++; } 六、实验小结和体会实验七 A/D转换实验 一、实验目的 掌握0809A/D转换芯片的硬件电路和软件编程。 二、实验环境 硬件平台:TX-1C单片机学习板。 软件平台:keil软件 三、实验内容与要求 调节可变电阻,通过发光二极管读出转换的对应数字量。 四、实验预习和准备 参考相关书籍,掌握TX-1C单片机学习板原理图。 五、实验过程与结果 六、实验小结和体会
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服