单片机教程网
电脑版
提示:
原网页
已由神马搜索转码, 内容由
www.51hei.com
提供.
51单片机
24小时必答区
单片机教程
单片机DIY制作
STM32
更多导航↓
Cortex M3
模数电子
电子DIY制作
音响/功放
拆机乐园
Arduino
嵌入式OS
程序设计
论坛
嵌入式/单片机论坛
AVR单片机
AVR单片机pwm程序+仿真_数显
查看:
4416
|
回复:
3
AVR单片机pwm程序+仿真_数显
[复制链接]
电梯直达
楼主
ID:21069
发表于 2018-12-16 16:09
|
只看该作者
|
只看大图
#include< iom16v.h>
#define uchar unsigned char
#define uint unsigned int
uchar Table[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x79};
uchar Data1[4]={10,0,5,0};
uchar Data2[4]={3,9,1,0};
uchar Key1,Key2;
void DelayMs(uchar i)
{
uchar j;
for(;i!=0;i--)
{
for(j=150;j!=0;j--);
}
}
void Display(uchar *p)
{
uchar i,sel=0x01;
for(i=0;i<4;i++)
{
PORTC=sel;
PORTA=0xff-Table[p[i]];
DelayMs(2);
sel=sel<<1;
}
}
void Sub_Process(uchar *p)
{
uchar temp;
temp=p[1]*10+p[2];
if(temp!=0)
{
temp=temp-1;
p[1]=temp/10;
p[2]=temp%10;
}
}
void Key_Process()
{
if(Key1==1)
{
Add_Process(Data1);
Key1=0;
}
if(Key2==1)
{
Sub_Process(Data1);
Key2=0;
}
}
void Init_IO(void)
{
DDRA=0xff;
PORTA=0xff;
DDRC=0xff;
PORTC=0xff;
DDRB=0x00;
PORTB=0x00;
DDRD=0xff;
PORTD=0xff;
}
void main(void)
{
Init_IO();
TCCR1A=0xc3;
TCCR1B=0x02;
DelayMs(50);
while(1)
{
Key_Process();
Set_Process(Data1);
Display(Data1);
}
}
复制代码
完整代码见附件
pwm_数显.zip
(15.36 KB, 下载次数: 52)
评分
参与人数
3
黑币
+68
收起
理由
钻牛尖滴刘尖尖
+ 10
yoxi
+ 8
赞一个!
admin
+ 50
共享资料的黑币奖励!
查看全部评分
收藏
2
淘帖
顶
踩
回复
沙发
ID:73030
发表于 2018-12-26 17:52
|
只看该作者
不错,学习了,谢谢楼主分享。
回复
板凳
ID:368867
发表于 2019-5-30 10:20
|
只看该作者
赞一个,不错
回复
地板
ID:820812
发表于 2020-11-24 15:36
来自手机
|
只看该作者
不错,收藏了有用这芯片
回复
返回列表
手机版
|
小黑屋
|
51黑电子论坛
|
管理员QQ:125739409;技术交流QQ群281945664
Powered by
单片机教程网