
#include <reg52.h> //头文件
#include<绝洞intrins.h> //头文件 _nop_()
void sm(unsigned long ms)/****************************声明****************************/
void delay(void) /****************************声明****************************/
sbit P21=P2^1 // 打开段选
sbit P20=P2^0 // 打开位选
bit f=0//设定标志
timer2() interrupt 5 /**************************中断**************************/
{
static unsigned char t
TF2=0
t++
if(t==30) //预置值0x1000,溢出30次就是1秒钟,晶振22118400HZ
{
t=0
f=1//每次长时间的溢出就置一个标记?
}
}
void sm(unsigned long ms)/*****************************数码管扫描**************************/
{
unsigned char 派卖q,r=0 //定义
unsigned char l[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} //数组0,9,8,7,6,5,4,3,2,1
unsigned char xx[]={0,0}
unsigned char y[]={0x80,0x40} //数码管位选
xx[0]=ms%10//得出个位数值
xx[1]=ms/10%10// 得出十位数值
for(q=0q<2) //循环扫描
{
q++ // q加加
r++ // r加加
if(r==2) //
r=0 //
P1=y[r] //
P21=1 //打开位选 让显示个位还是十位
delay() 尘宏逗 // 延时
P21=0 //关闭位选
P20=1 // 打开段选 让显示数字几
P1=l[xx[r]] //
delay() //延时
P1=0xff //数码管短暂清零
delay() //延时
P20=0 // 关闭段选
}
}
void delay(void) /*******************************延时*************************/
{
unsigned char i //定义i
for(i=0i<255i++)//不断的加法运算
{
_nop_() /*延时*/
}
}
void main(void) /*****************************主程序******************************/
{
unsigned long a=0
RCAP2H =0x10 //
RCAP2L =0x00
TR2=1 //启动定时器
ET2=1 //打开定时器2中断
EA=1 //打开总中断
while(1)//让程序不断循环
{
if(f)//发现标记进入处理
{
f=0//清除标记
a++ //
if(a==99)//
a=0 //
}
sm(a)//
}
}
1、首先打开matlab软件,点击Simulink按钮打开Simulink仿真环境(需要一点时间)2、打开Simulink后,主界面如下所示:
3、点击Simulink界面中的File/New/Model,建立并保存模型文件:
4、薯枣仔在Simulink的左侧资源栏拖拽控件到model文件内并设置岩祥连线,
5、检查系统框图无误后点击运行按钮,大概几秒后仿真结束:
6、双击图中的示波器就可以查看系统仿数汪真输出
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)