实验四 中断及定时器∕计数器实验
一、实验目的
1.掌握单片机的中断系统、定时器的工作原理。 2.学会单片机中断系统、定时器的应用。 二、实验内容
1.采用单片机定时器实现1个LED的亮灭,周期为1s。
2. 采用单片机定时器实现4个LED的轮流亮灭,每个LED点亮时间为1s。 三、实验步骤
1.设计实验电路,画出电路原理图 2.按照 KEIL软件的使用步骤,建立工程。 3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。 4.用STC-ISP下载软件下载HEX文件到单片机系统。 5.运行、调试程序,观察实验结果。 四、实验参考电路和参考程序
1.实验1
#include
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
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