电子设计竞赛论文-简易稳压电源的设计(7)

2019-06-05 12:23

sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit sbit

CLK7219 = P1^5; DIN7219 = P1^4;

// 7219输入时钟 // 7219数据输入帧信号 // 7219数据串行收入

//预置键指示灯

//自动扫描指示灯 //直流输出指示灯 //方波输出指示灯 //三角波输出指示灯

LOAD7219 = P1^6;

LED_PRESET = P0^0; LED_DC_MOD = P0^2; LED_SQU = P0^3; LED_TRI = P0^4; SET = P0^5;

LED_AUTO_SCAN = P0^1;

//预置键

//自动扫描键

//直流输出 //方波输出 //三角波输出

//自动扫描+ //自动扫描—

AUTO_SCAN = P0^6; DC_MOD = P0^7; SQU = P3^0; TRI = P3^1;

SCAN_SPEED = P3^2; //扫描速度控制键 SCAN_A = P3^6; SCAN_S = P3^5;

INCREASE = P3^4; DECREASE = P3^3; NUM_0 = P1^0; NUM_1 = P3^7; NUM_3 = P2^1; NUM_4 = P2^2; NUM_5 = P2^3; NUM_6 = P2^4; NUM_7 = P2^5; NUM_8 = P2^6; NUM_9 = P2^7; ENTER = P1^2;

//旋钮— //旋钮+ //数字1 //数字2 //数字3 //数字4 //数字5 //数字6 //数字7 //数字8 //数字9

//小数点

//数字0

NUM_2 = P2^0;

DECIMAL_POINT = P1^1;

//Enter键

/////////////////////////////////////////////////////////////////////// // 延时

///////////////////////////////////////////////////////////////////////

void Delay(uint nCount) //delay nCount us {

27

while(nCount--); }

void SetDAC0(int dat) {

uchar low; uchar high;

low = dat & 0xff;

high = (dat >> 8) & 0x0f;

DAC0L = low; DAC0H = high; }

void SetDAC1(int dat) {

uchar low; uchar high;

low = dat & 0xff;

high = (dat >> 8) & 0x0f;

DAC1L = low; DAC1H = high; }

/////////////////////////////////////////////////////////////////////// // 7219操作程序

/////////////////////////////////////////////////////////////////////// void Send7219(uchar add, uchar dat) {

uchar ADS, j;

LOAD7219 = 0; CLK7219 = 0;

ADS = add;

for(j = 0; j < 8; ++j) // send address {

DIN7219 = ADS & 0x80;

28

ADS <<= 1; CLK7219 = 0; CLK7219 = 1; }

ADS = dat;

for(j = 0; j < 8; ++j) // send data {

DIN7219 = ADS & 0x80; ADS <<= 1; CLK7219 = 0; CLK7219 = 1; }

CLK7219 = 0; LOAD7219 = 1; }

/////////////////////////////////////////////////////////////////////// // 4位数码管显示

/////////////////////////////////////////////////////////////////////// void DisplayLed(void) {

Send7219(0x01, DisBuf[0]); Send7219(0x02, DisBuf[1]); Send7219(0x03, DisBuf[2]); Send7219(0x04, DisBuf[3]); }

/////////////////////////////////////////////////////////////////////// // 定时器0中断

/////////////////////////////////////////////////////////////////////// void Timer0IntServe(void) interrupt 1 {

int vol; EA = 0; TR0 = 0; TL0 = 0xAF; TH0 = 0x3C; scan_counter++;

29

if(up==1) {

if(scan_counter==5) { scan_counter=0; if(i<99) { g_code=code_tab[i++]; SetDAC0(g_code); vol=g_code*0.02483; DisBuf[2]=Tab[vol/10]| 0x80; DisBuf[3]=Tab[vol]; } else g_code=code_tab[i]; SetDAC0(g_code); vol=g_code*0.02483; DisBuf[2]=Tab[vol/10]| 0x80; DisBuf[3]=Tab[vol]; } }

if(down==1) {

if(scan_counter==5) { scan_counter=0; if(i>0) { g_code=code_tab[i--]; SetDAC0(g_code); vol=g_code*0.02483; DisBuf[2]=Tab[vol/10]| 0x80; DisBuf[3]=Tab[vol]; } else g_code=code_tab[i]; SetDAC0(g_code); vol=g_code*0.02483; DisBuf[2]=Tab[vol/10]| 0x80;

30

DisBuf[3]=Tab[vol]; } } TR0=1; EA=1; }

/////////////////////////////////////////////////////////////////////// // 定时器1中断

/////////////////////////////////////////////////////////////////////// char squareLevel = 0;

void Timer1IntServe(void) interrupt 3 {

EA=0; TR1 = 0; TL1 = 0x18; TH1 = 0xFC; TR1 = 1;

if(squareLevel == 0) {

squareLevel = 1; DAC0L=0x00; DAC0H=0x00; }

else //(squareLevel == 1) {

squareLevel = 0; DAC0L=0xFF; DAC0H=0xFF; }

EA=1; }

/////////////////////////////////////////////////////////////////////// // ADC0转换结束中断

/////////////////////////////////////////////////////////////////////// void ADCIntServe() interrupt 15 {

31


电子设计竞赛论文-简易稳压电源的设计(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:【西大2017版】《城市园林绿地规划设计》网上作业及参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: