重庆科技学院单片机实验课程指导new - 图文 下载本文

实验四 中断及定时器∕计数器实验

一、实验目的

1.掌握单片机的中断系统、定时器的工作原理。 2.学会单片机中断系统、定时器的应用。 二、实验内容

1.采用单片机定时器实现1个LED的亮灭,周期为1s。

2. 采用单片机定时器实现4个LED的轮流亮灭,每个LED点亮时间为1s。 三、实验步骤

1.设计实验电路,画出电路原理图 2.按照 KEIL软件的使用步骤,建立工程。 3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。 4.用STC-ISP下载软件下载HEX文件到单片机系统。 5.运行、调试程序,观察实验结果。 四、实验参考电路和参考程序

1.实验1

#include #define THC0 0xee #define TLC0 0x00 sbit led0=P1^3; void main() {

TMOD=0x01; TH0=THC0; TL0=TLC0; TR0=1; ET0=1; EA=1; while(1); }

void timer0_ISR(void) interrupt 1 {

25/39

static unsigned char count=0; TL0=TLC0; TH0=THC0; count++;

if(count>=200) {

count=0; led0=!led0; } } 2.实验2

#include #define THC0 0xee #define TLC0 0x00 sbit led0=P1^3; sbit led1=P3^5; sbit led2=P3^6; sbit led3=P3^7; void main() {

TMOD=0x01; TL0=TLC0; TH0=THC0; TR0=1; ET0=1; EA=1; while(1); }

void timer0_ISR(void) interrupt 1 {

static unsigned char count=0,Bit=0; TL0=THC0; TH0=TLC0; count++;

if(count>=200) {

count=0; Bit++; if(Bit>=4) Bit=0;

P3=P3|0xf0; P1=P1|0x0f;

switch(Bit) {

26/39

case 0:led0=0;break;

case 1:led1=0;break; case 2:led2=0;break; case 3:led3=0;break; } } } 五、思考题

1.设计1个秒计数器,每秒计1次数,在LED上显示出来,计至16清零后重新计数。 2.在上题基础上用按键控制秒计数器的启停,按一次键开始计数,按2次停止计数,按3次又开始计数…。

27/39

实验五 数码管显示器实验

一、实验目的

1.掌握单片机的按键、数码管显示器的工作原理。 2.学会单片机独立式按键、数码管显示器的应用。 二、实验内容

1.在一个数码管上显示字符“1”。 2.在4个数码管上显示字符“1”、“2”、“3”、“4”。

3.设计一个2位10进制计数器,每秒加1,在LED上显示。 三、实验步骤

1.设计实验电路,画出电路原理图 2.按照 KEIL软件的使用步骤,建立工程。 3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。 4.用STC-ISP下载软件下载HEX文件到单片机系统。 5.运行、调试程序,观察实验结果。 四、实验参考电路和参考程序

1.参考电路

2.参考程序

#include \

#define THCO 0xee #define TLCO 0x0

unsigned char code Duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

//共阴极数码管,0-9段码表

28/39