单片机实验资料大全

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、熟悉学习工具开发板

二、点亮LED

1.单片机及最小系统电路

1)电源电路

2)晶振电路

3)复位电路

2.74HC245和74HC138

74HC245的输入:

DB_0 即P0.0

DB_1 即P0.1

DB_2 即P0.2

DB_3 即P0.3

DB_4 即P0.4

DB_5 即P0.5

DB_6 即P0.6

DB_7 即P0.7

U3 74HC138的输入:

ADDR0即P1.0

ADDR1即P1.1

ADDR2即P1.2

ADDR3即P1.3 E3

ENLED即P1.4 E1 E2 3.跳线

4.LED

三极管基极端输入LEDS6是U3 74HC138的输出Y6

8个LED小灯阴极端的8个输入是74HC245的8个输出:DB 0 也就是P0.0

DB 1 也就是P0.1

DB 2 也就是P0.2

DB 3 也就是P0.3

DB 4 也就是P0.4

DB 5 也就是P0.5

DB 6 也就是P0.6

DB 7 也就是P0.7

5.点亮一个LED的程序

新建工程,添加.c文件,编辑编译,生成hex文件

编译成功会出现reg2.h,,双击可以打开

STP-ISP下载程序到板子,小灯被点亮

1)点亮第1个小灯,熄灭第1个小灯

2)点亮第2个小灯,熄灭第2个小灯

3)点亮第3个小灯,熄灭第3个小灯

4)点亮第1、2小灯,熄灭第1、2小灯

5)点亮第1、3、5、7小灯,熄灭第1、3、5、7小灯

三、闪烁LED

修改小灯闪烁的时间:低于20ms,大于50HZ,小灯的闪烁人眼看到是连续的

四、流水灯

1、用P0点亮小灯

2、依次点亮每个小灯,依次要赋给P0 的数值就是:0xFE、0xFD、0xFB、0xF7、0xEF、0xDF、0xBF、0x7F。

•左移<<右移>>

•左移,最低位填0补充;右移,最高位填0补充

•0xf0 11100000 01111000

流水灯程序

1.将流水灯左移理解透彻后,独立完成流水灯右移操作。

2.独立完成一个左移到头接着右移,右移到头再左移的花样流水灯程序。

五、定时计数器和数码管

开发板上最右边的小灯点亮一秒,熄灭一秒,也就是以0.5Hz 的频率进行闪烁。

写程序之前,我们要先来学会计算如何用定时器定时时间。

晶振是11.0592M,时钟周期就是1/11059200,机器周期是12/11059200

假如要定时20ms,就是0.02 秒,要经过x 个机器周期得到0.02 秒

我们来算一下x*12/11059200=0.02,得到x= 18432。

16 位定时器的溢出值是65536(因65535 再加1 才是溢出)

于是我们就可以这样操作,先给TH0 和TL0一个初始值,让它们经过18432 个机器周期后刚好达到65536,也就是溢出,溢出后可以通过检测TF0 的值得知,就刚好是0.02 秒。那么初值y = 65536 - 18432 = 47104,转成16 进制就是0xB800,也就是TH0 = 0xB8,TL0 = 0x00。

这样0.02 秒的定时我们就做出来了,细心的同学会发现,如果初值直接给一个0x0000,

一直到65536 溢出,定时器定时值最大也就是71ms 左右,那么我们想定时更长时间怎么办

呢?用你小学学过的逻辑,倍数关系就可以解决此问题。

使用定时器来实现延时,完成左右移动的流水灯的程序。

位选确定选择哪个数码管,段选确定被选中的数码管显示什么

了解数码管的原理,掌握数码管的真值表的计算方法

U3 74HC138的输入:

ADDR0即P1.0

ADDR1即P1.1

ADDR2即P1.2

ADDR3即P1.3

ENLED即P1.4

U374HC138的6个输出是6个数码管位选:

Y0 即LEDS0

Y1 即LEDS1

Y2 即LEDS2

Y3 即LEDS3

Y4 即LEDS4

Y5 即LEDS5

74HC245的8个输出是6个数码管段选:

DB 0 也就是P0.0

DB 1 也就是P0.1

DB 2 也就是P0.2

DB 3 也就是P0.3

DB 4 也就是P0.4

DB 5 也就是P0.5

DB 6 也就是P0.6

DB 7 也就是P0.7

2、数码管DS1显示1

3、用一个数码管间隔1秒钟静态循环显示0至F

编程实现数码管静态每隔1秒钟,静态显示9 8 7 6…0。

六、中断和7段数码管

1、动态显示0至999999

2、用switch实现上述功能

3、去鬼影

4、消隐

扩展:

1、尝试修改程序,让我们的数码管只显示有效位,也就是高位的0 不显示。

2、尝试写一个从999999 开始倒计时的程序,并且改用定时器T1 的中断来完成,通过写这个程序,熟练掌握定时器和中断的应用。

七、点阵LED

U4 74HC138的输入:

ADDR0即P1.0

ADDR1即P1.1

ADDR2即P1.2

ADDR3即P1.3=E1=0

ENLED即P1.4=E2=0 (((U3 74HC138的输入:

ADDR0即P1.0

ADDR1即P1.1

ADDR2即P1.2

ADDR3即P1.3=E3=1

ENLED即P1.4= E1 E2=0)))

相关文档
最新文档