第十一节多个数码管动态显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十一节多个数码管动态显示
一、编写程序
步骤一:打开bascom-avr编程环境;
步骤二:新建空白编程文件;
步骤三:设置系统频率,系统的波特率
步骤四:输入程序
程序举例:
将下面程序在bascom-avr中编译及仿真
'——————————————————————————————————
'名称: 多个数码管动态显示程序
'目的: 多个数码管动态显示程序,了解I/0口及数码管。
'目标芯片: Mega16
'作者: 张恩锋
'编译环境: BASCOM-A VR 1.11.8.4
'protues 7仿真通过'———————————————————————————————————
$regfile = "m16def.dat" ' 单片机型号
$crystal = 8000000 ' 定义晶振频率
Config Porta = Output '定义A口为输出口Config Portb = Output
Dim I As Byte
Dim T As Byte
Dim S As Byte
Dim D As Byte
Dim Dled(16) As Byte '定义七段数码管显示数据数组
Restore Dataled7 '为读入数据准备,调用子程序Daima
For I = 1 To 16 '依次把0-F的显示值输入到数组Dled () Read Dled(i)
Next I
Do '死循环
S = &B00000001 '第一个显示数字的数码管为最低位
For I = 1 To 4 '在数码管上显示数字1-4循环4次
T = I + 1 '选择在数据数组中显示数字的对应数据
Porta = 0 '关数码管
Portb = S '数码管选择数据为二进制11111110 Porta = Dled(t) '显示数据
Waitms 1
Rotate S , Left , 1 '选择数码管
Next I '循环DO__LOOP Loop
End
Dataled7: 'LED 7段显示代码表Data &H3F , &H06 , &H5B , &H4F , &H66 , &H6D , &H7D , &H07 , &H7F , &H6F , &H77 , &H7C , &H39 , &H5E , &H79 , &H71
'——————————————————————————————————
'共阴极字形码
'&H3F 0
'&H06 1
'&H5B 2
'&H4F 3
'&H66 4
'&H6D 5
'&H7D 6
'&H07 7
'&H7F 8
'&H6F 9
'&H77 a
'&H7C b
'&H39 c
'&H5E d
'&H79 e
'&H71 f '——————————————————————————————————
步骤五:保存程序
步骤六:编译文件
如下图所示:在菜单栏中单击“compile program”或按F7键编译文件,若提示错误请认真检查并及时更正错误。
二、仿真模拟
在桌面中打开protues仿真软件(仿真为理想状态下运行,实际还有一点不同,后续章节中有介绍)
2.1 添加元件
点击新建文件
单击“P”从库中选取元件
在关键字中输入“7seg-mpx1-cc”添加一个共阴级数码管(因前面章节所用数码管达不到要求所以选用这一类型)
选择结果中的元件并双击。
同样的方法在关键字中输入“atmega16”添加A VR单片机
单击“确定”退出添加元件界面。
单击添加的元件,在编辑界面鼠标会变成笔状。
在编辑界面单击鼠标,会出现器件的外形,选择好器件所放位置并单击鼠标就可放置元件
单击鼠标后
同样的方法放置数码管。
2.2 线路连接
在器件的管脚上单击鼠标,当鼠标变成绿色笔状且在笔尖处出现小红方框就可拖动鼠标连接线路。同理,在把线拖到要连接的另一个元件的管脚时鼠标变成绿色笔状即可单击鼠标连接线路。
完成连接效果图:
2.3 仿真运行
双击单片机出现“编辑元件”界面
在program file这一栏中,找到前面编程所编译的扩展名为“.HEX”的文件并选择它
回到“编辑元件”界面点击确定。
最后,单击主界面左下角的“开始”按钮即可进行仿真,若不能运
行应仔细检查是否线路连接错误。
三、回味提升
1、改变延时时间,观察其变化
2、更改显示数字,多加几个数码管让其显示自己喜欢的数字,总结经验
3、其它尝试
。