久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
周期可調的單片機方波發生器仿真與源程序(帶數碼管顯示功能)
[打印本頁]
作者:
yuchen173
時間:
2018-1-14 14:34
標題:
周期可調的單片機方波發生器仿真與源程序(帶數碼管顯示功能)
利用單片機、串行口和
3
位數碼管,構建電腦設置周期可調的方波發生器。要求:
(
1
)周期范圍
200~500ms
,具體數值在數碼管上顯示,顯示方式不限,共陰共陽不限;
(
2
)從電腦鍵盤輸入方波周期值,單片機按此周期產生方波,并在虛擬示波器上觀察效果。
單片機方波發生器仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(17.55 KB, 下載次數: 97)
下載附件
2018-1-14 17:08 上傳
0.png
(14.37 KB, 下載次數: 85)
下載附件
2018-1-14 17:08 上傳
單片機源程序如下:
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
sbit L1 = P1^0;
sbit L2 = P1^1;
sbit L3 = P1^2;
sbit L4 = P1^3;
sbit OUT=P3^0;
uchar code dis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar get_value(void);
void display_s();
void timer_init();
void delay(uint z);
char scan(void) ;
uchar num=0;
uchar temp=0;
///////////////////
uint result=0;
bit flag=0;
uchar flag1=0;
uchar a=0,b=0,c=0;
uchar buf[4]={0,0,0,0};
uchar buffer;
void main()
{
timer_init() ; //初始化
while(1)
{
flag1=get_value(); //獲取確認的flag1
temp=result/2; //計算出周期一半
if(flag1==1)
{
TR0=1; //打開定時器
}
display_s(); //顯示
}
}
void timer_init() //方式一 定時1ms
{
TMOD=0X01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
TR0=0;
ET0=1;
EA=1;
}
void timer() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
num++;
if(num==temp)
{
OUT=~OUT; //取反輸出
num=0;
}
}
uchar get_value()
{
static uchar i=0;
uchar j=0;
P1 &= 0x0f;
if(P1 != 0x0f)
{
delay(10);
P1 &= 0x0f;
if(P1 != 0x0f)
{
if(flag==1)
{
if(scan()==10)//當按下確認鍵時進入
{
if((result <= 250)&&(result >= 50)) //判斷范圍
{
i=0;
flag=0;
return 1; //在范圍內則執行
}
else
{ //否則清零 重新開始
flag=0;
i=0;
result=0;
return 0;
}
}
buf[i] = scan(); //按鍵值放入數組中
i++;
result=0;
for(j=0;j<i;j++)
{
buffer = buf[j] ;
result = result*10 + buffer; //計算輸入值和
}
if(i==4)
{
i=0;
result=999;
flag=0;
}
}
if( scan()==11) //按下設置鍵 進入
{
flag=1;
flag1=0;
TR0=0;
result=0;
}
}
while(P1 != 0x0f)
{
P1 &= 0x0f;
}
}
return 0;
}
void display_s() //掃描顯示
{
a = result / 100;
b = result %100/10 ;
c = result % 10;
P2=0x04; //個位位選打開
delay(1);
P0=dis_code[c];
delay(1);
P0=0xff;
delay(1);
P2=0x02; //十位位選打開
delay(1);
P0=dis_code[b];
delay(1);
P0=0xff;
delay(1);
P2=0x01; //百位位選打開
delay(1);
P0=dis_code[a];
delay(1);
P0=0xff;
delay(1);
}
char scan(void) //按鍵鍵值掃描
{
uchar temp,i;
P1=0xef;
for(i=0;i<=3;i++)
{
if(L1==0)
{
delay(3);
if(L1==0)
{
return (i*4+0);
}
while(L1==0);
}
if(L2==0)
{
delay(3);
if(L2==0)
{
return (i*4+1);
}
while(L2==0);
}
if(L3==0)
{
delay(3);
if(L3==0)
{
return (i*4+2);
}
while(L3==0);
}
if(L4==0)
{
delay(3);
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
方波發生器.zip
(71.8 KB, 下載次數: 74)
2018-1-14 14:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
tianyii
時間:
2018-12-9 14:02
哥,這題有匯編語言的代碼嗎
作者:
tianyii
時間:
2018-12-9 14:04
有匯編語句的代碼嗎
作者:
samukongjian
時間:
2019-12-3 21:48
題目要求不是電腦鍵盤嗎?為什么你這里用的是矩陣鍵盤?
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美一级片在线观看
|
久久久国产一区
|
av免费看在线
|
亚洲91精品
|
久久精品国产久精国产
|
91久久
|
国产精品免费大片
|
国产成人精品久久二区二区91
|
久久久久久久久久久久久久国产
|
久久99精品视频
|
久久99深爱久久99精品
|
99久久精品国产一区二区三区
|
成人精品久久日伦片大全免费
|
中文字幕在线一区二区三区
|
亚洲精品国产区
|
中文字幕国产一区
|
亚洲精品2区
|
日韩在线精品视频
|
国产精品久久国产精品久久
|
亚洲永久精品国产
|
欧美日韩18
|
国产精品一区二
|
亚洲福利视频一区二区
|
国产精品久久免费观看
|
成人免费视频在线观看
|
欧美精品乱码久久久久久按摩
|
99re国产视频
|
少妇一级淫片免费播放
|
欧美一区二区三区
|
精品一区二区久久久久久久网站
|
日韩欧美在线免费
|
男女污污动态图
|
久久三区
|
精精国产xxxx视频在线播放7
|
欧美激情久久久
|
中文字幕av在线播放
|
亚洲一区二区三区在线观看免费
|
午夜影院在线观看免费
|
国产av毛片
|
a在线免费观看
|
亚洲av毛片成人精品
|