单片机实验资料大全
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)))