找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2313|回复: 2
打印 上一主题 下一主题
收起左侧

Bascom avr数码管数字累加

[复制链接]
跳转到指定楼层
楼主
本帖最后由 红日888 于 2021-6-21 00:42 编辑

'这程序0是高电平
$regfile = "m16def.dat"                                     'ATMega16 单片机
$crystal = 8000000                                          '8兆赫晶振
Dim I As Long , L As Long
Dim Gw As Integer , Sw As Integer , Bw As Integer , Qw As Integer       '个位十位百位千位
'PortB 端口的8个引脚连接这个8个LED,
Config Porta = Output
Config Portb = Output
'=======================================================
Dim Value(19) As Byte                                       '数组中存的是0-9数字对应亮灯的值
Value(10) = &HC0                                            '数字"0"对应的数码管设置值
Value(11) = &HF9                                            '数字"1"对应的数码管设置值
Value(12) = &HA4                                            '数字"2"对应的数码管设置值
Value(13) = &HB0                                            '数字"3"对应的数码管设置值
Value(14) = &H99                                            '数字"4"对应的数码管设置值
Value(15) = &H92                                            '数字"5"对应的数码管设置值
Value(16) = &H82                                            '数字"6"对应的数码管设置值
Value(17) = &HF8                                            '数字"7"对应的数码管设置值
Value(18) = &H80                                            '数字"8"对应的数码管设置值
Value(19) = &H90                                            '数字"9"对应的数码管设置值
Do
   Waitms 10                                                '刷新延迟
   L = L + 1                                                '计算累加
   I = L \ 5                                                '降低数据变化频率
   I = I Mod 10000                                          '数值到10000后清0
   Qw = I \ 1000                                            '计算千位
   Bw = I Mod 1000                                          '计算百位
   Bw = Bw \ 100
   Sw = I Mod 100                                           '计算十位
   Sw = Sw \ 10
   Gw = I Mod 10                                            '计算个位
   '只点亮个位数码管PA3
   Porta = &B0111
   Portb = Value(gw + 10)                                   '设置个位数值
   Waitms 1
   '只点亮十位数码管PA2
   Porta = &B1011
   Portb = Value(sw + 10)                                   '设置十位数值
   Waitms 1
   '只点亮百位数码管PA1
   Porta = &B1101
   Portb = Value(bw + 10)                                   '设置百位数值
   Waitms 1
   '只点亮千位数码管PA0
   Porta = &B1110
   Portb = Value(qw + 10)                                   '设置千位数值
   Waitms 1
Loop
End

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:941018 发表于 2021-6-21 22:01 | 只看该作者
我这个板子的灯的输出都是0为点亮,1为灭,和这个不同的Porta要反过来试
回复

使用道具 举报

板凳
ID:342822 发表于 2021-6-22 00:00 | 只看该作者
终于搞明白了,你的板子数码管位选是加了反相器的~~~~0就是1,1就是0


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表